Este ejemplo muestra cómo supervisar el
estado de un interruptor mediante el establecimiento de la
comunicación en serie entre su Arduino o Genuino y el ordenador a través de USB.
Hardware necesario
-
1 Placa Arduino o Genuino
-
Un interruptor o pulsador
-
1 Resistencia de 10 k ohm
-
cable de conexionado
-
1 Protoboard
Circuito
Conectar tres cables a la placa. Los
dos primeros, rojo y negro, se conectan a las dos filas verticales largas en
el lado del tablero para facilitar el acceso a la alimentación de 5 voltios
y tierra. El tercer cable va
desde el pin digital 2 a una pierna del pulsador. Esa
misma pierna del botón se conecta a través de una resistencia de desconexión
(en este caso 10 k ohmios) a tierra. La
otra pata del botón conecta a la alimentación de 5 voltios.
El pulsador o interruptor conecta dos puntos en un circuito cuando se los presiona. Cuando
el pulsador está abierto (sin pulsar) no hay conexión entre las dos patas
del pulsador, por lo que el pasador está conectado a tierra (a través de la
resistencia pull-down) y lee como bajo, ó 0. Cuando el botón está cerrado
(pulsa ), se hace una conexión entre sus dos patas, la conexión de la
clavija a 5 voltios, por lo que el pasador lee como alto o 1.
Si se desconecta la E / S digital de
pasador de todo, el LED parpadee erráticamente. Esto
se debe a la entrada es "flotante" - es decir, que no tiene una conexión
sólida a la tensión o suelo, y volverá al azar, ya sea alta o baja. Es
por eso que necesita una resistencia de desconexión en el circuito.
Esquema
Código
En el siguiente programa, la primera cosa que hacer la voluntad de la función de configuración es comenzar las comunicaciones en serie, a 9600 bits de datos por segundo, entre la placa y el ordenador con la línea:
Serial.begin (9600);
A continuación, inicializar pin digital 2, el pin que va a leer la salida de su botón, como una entrada:
pinMode (2, INPUT);
Ahora que la configuración se ha
completado, se mueven en el bucle principal de su código. Cuando
se pulsa el botón, 5 voltios fluyan libremente a través de su circuito, y cuando
no se presiona, el pin de entrada se conecta a tierra a través de la resistencia
de 10k ohmios. Se trata de una
entrada digital, lo que significa que el interruptor sólo puede estar en un
estado encendido (visto por el Arduino como un "1", o ALTO) o un estado de
apagado (visto por el Arduino como un "0", o LOW) , con nada en el medio.
Lo primero que hay que hacer en el bucle
principal del programa es establecer una variable para contener la información
que viene de su conmutador. Dado que
la información que llega desde el conmutador será o un "1" o un "0", se puede
utilizar un tipo
de datos
int. Llamar
a esta variable sensorValue
y lo puso a la igualdad de todo lo que se lee en el pin digital de 2. Esto se
puede hacer todo esto con una sola línea de código:
int = sensorValue digitalRead (2);
Una vez que el bord ha leído la entrada,
hacer que imprima esta información a la computadora como un valor decimal.Usted
puede hacer esto con el comando Serial.println ()
en la última línea de código:
Serial.println (sensorValue);
Ahora, cuando se abre el monitor de serie
en el software de Arduino (IDE), verá una corriente de "0" s si su interruptor
está abierto, o "1" s si su interruptor está cerrado.
Programa
/ *
DigitalReadSerial
Lee una entrada digital en el pin 2, imprime el resultado en el monitor serie
Este código es de dominio público.
// El pin digital 2 tiene un pulsador conectado. Le damos un nombre:
int pushButton = 2;
// la rutina setup se ejecuta una sola vez cuando se hace reset:
void setup()
// inicializa la comunicacion serie a 9600 bitspor segundo:
Serial.begin(9600);
// configura el pin pushbutton como entrada
pinMode
(pushButton, INPUT);
}
// el bucle loop se ejecuta repetitivamente:
void loop() {
// lee el pin de entrada
int buttonState = digitalRead(pushButton);
// imprime el estado del pulsador:
Serial.println(buttonState);
delay(1); // tiempo entre lecturas para estabilidad
}
DigitalReadSerial
Lee una entrada digital en el pin 2, imprime el resultado en el monitor serie
int pushButton = 2;
Serial.begin(9600);
pinMode (pushButton, INPUT);
}
void loop() {
int buttonState = digitalRead(pushButton);
Serial.println(buttonState);
}
No hay comentarios:
Publicar un comentario