8. Entradas digitales

Icono de vídeo de YouTube VÍDEO: Pulsadores, entradas digitales en Arduino

La conexión más sencilla usando el modo PULLUP INTERNO sería la siguiente (se puede usar cualquier pin digital, no tiene por qué ser el 8):

../_images/arduino-ft-14.png

Las instrucciones básicas para los pulsadores en modo PULLUP INTERNO son:

 1int pinPulsador = 8;
 2int valorPulsador;
 3
 4void setup() {
 5  // Configura el pin como entrada "PULLUP"
 6  pinMode(pinPulsador, INPUT_PULLUP);
 7}
 8
 9void loop() {
10  // En PULLUP invertimos el valor con ! (función NOT)
11  valorPulsador = !digitalRead(pinPulsador);
12}

Nota

El signo ! antes de digitalRead se usa para invertir el valor digital:

  • El 0 se transforma en 1

  • El 1 se transforma en 0

Tarea Pulsador_monitor

Monta el circuito de la figura anterior.

Crea el programa que se explica en el vídeo anterior que has visualizado (Pulsadores, entradas digitales en Arduino) para que se muestre en el monitor serie:

  • 1 mientras pulsamos el pulsador

  • 0 si no lo pulsamos

Tarea Pulsadores AND

Icono de vídeo de YouTube VÍDEO: if, else, AND y OR, variables booleanas y constantes

../_images/arduino-ft-15.png

Imagina que tienes que diseñar una máquina para una fábrica. La máquina es peligrosa si el operario introduce una mano en ella. Debes diseñarla de tal manera que para que el operario la pueda poner en marcha, deba pulsar dos pulsadores a la vez, uno con cada mano, de tal manera de que no le quede ninguna mano libre que pueda introducir por error en la máquina. El funcionamiento de la máquina lo vamos a simbolizar con un LED.

Monta el circuito de la figura con dos pulsadores, un LED y una resistencia de 220Ω.

Consejo

Para sacar un 10. Si en vez de con 1 LED lo haces con 3 LEDs que se enciendan secuencialmente, tendrás un 10 en la práctica.

El programa sería similar al siguiente:

../_images/arduino-ft-16.png

La instrucción señalada con la flecha roja se convierte en el siguiente código:

if (valorPulsador1 == 1 && valorPulsador2 == 1) {
  digitalWrite(pinLed, HIGH);
}
else {
  digitalWrite(pinLed, LOW);
}

Tarea Pulsadores OR

Con lo que has aprendido en el vídeo de la tarea anterior, imagina que tienes que diseñar una máquina y quieres que se pueda poner en marcha desde un pulsador ubicado en una zona o desde otro pulsador ubicado en otro lugar.

Monta el mismo circuito de la práctica anterior con dos pulsadores, un LED y una resistencia de 220Ω.

El programa sería similar al siguiente:

../_images/arduino-ft-17.png

La instrucción señalada con la flecha roja se convierte en el siguiente código:

if (valorPulsador1 == 1 || valorPulsador2 == 1) {
  digitalWrite(pinLed, HIGH);
}
else {
  digitalWrite(pinLed, LOW);
}