SIK Experiment Guide for the Arduino 101/Genuino 101 Board (Spanish)
This Tutorial is Retired!
This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.
Experimento 6: Leer un interruptor SPDT
Introducción
En el experimento anterior ha utilizado un pulsador como entrada digital. En este experimento va a explorar otra entrada digital, el interruptor SPDT (monopolar de dos posiciones). Podrá utilizar este interruptor para seleccionar cuál de los dos LED parpadeará.
Elementos necesarios
Necesitará los siguientes elementos:
- 1x placa de pruebas
- 1x placa Arduino 101 o Genuino 101
- 2x LED (1 rojo, 1 amarillo)
- 2x resistencia de 100 Ω
- 8x cables puente
- 1x interruptor SPDT
¿No tiene el SIK?
Si está realizando este experimento y no dispone del SIK, le sugerimos que use estos elementos:
También necesitará una placa Arduino 101 O Genuino 101.
Lectura sugerida
Antes de continuar con este tutorial, le recomendamos que se familiarice con los conceptos en los siguientes tutoriales:
Presentación del interruptor monopolar de dos posiciones (SPDT)
El interruptor monopolar de dos posiciones (SPDT) tiene un pin común en el centro y otros dos pines que, en función de la ubicación del interruptor, se conectan al pin común (central) o no. Para leer el interruptor de la misma forma que un pulsador, debe conectar el pin común a un pin digital GPIO (entrada/salida de propósito general) en la placa 101 y el resto de pines a una línea de 3,3 V y a tierra. No importa el orden de conexión de los pines. Cuando mueva el interruptor, el valor del pin común será ALTO (conectado a una línea de 3,3 V) o BAJO (conectado a tierra).
Conexión del hardware
¿Está preparado para comenzar a conectar todo? Consulte el diagrama de cableado y la tabla de conexión siguientes para ver cómo está conectado todo.
Componentes polarizados | Preste especial atención a las marcas de los componentes que indican cómo colocarlo en la placa de pruebas. Los componentes polarizados solo se pueden conectar a un circuito en una sola dirección. |
Diagrama de cableado del experimento
Abrir el boceto
Abra el software IDE de Arduino en su ordenador. La codificación en el lenguaje de Arduino controlará el circuito. Abra el código del circuito 6; para ello, acceda a "101 SIK Guide Code" (Guía de códigos de SIK 101) que ha descargado y guardado en la carpeta "Examples" (Ejemplos) anteriormente.
Para abrir el código vaya a: File > Examples > 101 SIK Guide Code > Circuit_06 (Archivo > Ejemplos > Guía de códigos de SIK 101 > Circuito_06)
También puede copiar y pegar el siguiente código en el IDE de Arduino. Cárguelo y vea qué es lo que ocurre.
language:cpp
/*
SparkFun Inventor's Kit
Example sketch 06
SPDT Switch
Use a Single Pole - Double Throw Switch (SPDT) to select an LED to blink
This sketch was written by SparkFun Electronics,
with lots of help from the Arduino community.
This code is completely free for any use.
Visit http://learn.sparkfun.com/products/2 for SIK information.
Visit http://www.arduino.cc to learn more about Arduino.
*/
// Create constants for the pins we will be using
const int switchPin = 3;
const int led1Pin = 12;
const int led2Pin = 13;
void setup()
{
// Set up the switch pins to be an input:
pinMode(switchPin, INPUT);
// Set up the LED pins to be an output:
pinMode(led1Pin,OUTPUT);
pinMode(led2Pin,OUTPUT);
}
void loop()
{
// variables to hold the switch state
int switchVal;
// Since a switch has only two states, either HIGH (3.3V)
// or LOW (GND) there is no way for you to have a floating point situation so there //is no need for a pulldown resistor.
//store the switch value to the switchVal variable
switchVal = digitalRead(switchPin);
//if switchVal is HIGH blink led1Pin
if(switchVal == HIGH)
{
digitalWrite(led1Pin,HIGH);
delay(500);
digitalWrite(led1Pin,LOW);
delay(500);
}
//else blink led2Pin
else
{
digitalWrite(led2Pin,HIGH);
delay(500);
digitalWrite(led2Pin,LOW);
delay(500);
}
}
Código a tener en cuenta
pinMode(switchPin, INPUT);
Los pines digitales se pueden utilizar tanto como entradas y salidas. Antes de hacerlo, necesita indicar a la placa Arduino 101 la dirección que se seguirá.
switchVal = digitalRead(switchPin);
Para leer una entrada digital, utilice la función digitalRead()
. Devolverá el valor ALTO si hay una alimentación de 3,3 V en el pin o BAJO si hay una alimentación de 0 V en el pin.
if (switchVal == LOW)
Ya que hemos conectado el pulsador a tierra, se leerá BAJO cuando se presione. Aquí estamos usando el operador de "equivalencia" ("==") para ver si el pulsador está presionado.
Lo que debería ver
En función del estado del interruptor, parpadeará un LED diferente. Si mueve el interruptor para conectar el pin de señal a la línea de 3,3V (ALTO), parpadeará el LED 1. Si se mueve el interruptor y conecta a tierra el pin de señal, el LED 2 comenzará a parpadear y el LED 1 se apagará.
Solución de problemas
No se enciende ninguna luz
Los cables del interruptor están uno al lado del otro. Asegúrese de que la conexión de la señal está en el centro y las de tierra y alimentación en los pines exteriores. Si conecta las tomas de tierra y alimentación, la placa se cortocircuitará y se apagará.
Asegúrese de que el LED de alimentación está encendido. Si está apagado, retire el cable de señal del pin 3 y observe si hay algún cambio. Si se produce un cortocircuito, la placa 101 se apagará automáticamente para proteger los circuitos. Es posible que tenga que reiniciar el ordenador para poder acceder al puerto serie.
Demasiado básico
No se preocupe; estos circuitos se han simplificado al máximo para que sea sencillo jugar con los componentes, pero en cuanto los combine todos, el límite es su imaginación.