LAS ENTRADAS DIGITALES DE ARDUINO

Objetivos

 

  • Conocer las entradas digitales.
  • Leer un pulsador.
  • Presentar los valores booleanos.
  • Aprender a crear estructuras condicionales utilizando el bloque de “Control” “si … / si no”.
  •  

    Material requerido.

     

    ArduinoUNO Arduino Uno o compatible y con el firmware para S4A cargado.
    Img_3_4Img_3_6 Una Protoboard más cables.
    componente Un diodo LED
    Img_3_5

    Cuatro resistencia de 330 Ohmios.

    Img_5_1  Un pulsador.

    LAS ENTRADAS DIGITALES DE ARDUINO

     

    Con frecuencia en electrónica necesitamos saber si una luz está encendida o apagada, si alguien ha pulsado un botón o si una puerta ha quedado abierta o está cerrada.

    A este tipo de señales todo/nada, SI/NO, TRUE /FALSE, 0/1  se les llama digitales o Booleanas.

    Muchos de los sensores y actuadores que vemos en el mundo real son digitales: 

  • Como sensores digitales podemos mencionar botones y pulsadores, finales de carrera, desbordamiento de nivel, sensores de llamas, humo o gases tóxicos. Los leemos mediante las entradas digitales. En S4A disponemos de los pines digitales 2 y 3 que actúan como entrada digital.
  • Como actuadores digitales, tenemos luces, alarmas, sirenas o desbloqueo de puertas. Los gobernamos mediante las salidas digitales. Ya sabemos de otras sesiones que en S4A son los pines digitales 10, 11 y 13.
  •  

    En esta sesión vamos a leer un botón o pulsador externo (entrada digital) y vamos a encender o apagar un LED (salida digital) en función de que el pulsador esté presionado o no.

     

    ESQUEMA ELÉCTRICO DEL CIRCUITO

     

    Este circuito es un poco más complicado que los que hemos visto hasta ahora. El montaje del LED será el mismo que en las sesiones anteriores. En este caso lo conectaremos a la salida digital 10.

    Por primera vez vamos a utilizar el pin de 5V de nuestra placa Arduino.  A diferencia de las salidas digitales, que pueden dar HIGH o LOW, este pin siempre dará HIGH.

    Conectaremos el pulsador S1 al pin de 5V, y cerraremos el circuito conectando la otra parte del pulsador a la entrada digital 2 y a GND a través de una resistencia.

    diagrama electronico pulldown

    De esta forma cuando el pulsador se cierra obtenemos 5V, HIGH, en la entrada digital 2. Si está abierto obtenemos 0V, LOW. Y entonces, ¿para qué sirve la resistencia R1?

    Si leemos el valor de una entrada digital que no tiene nada conectado veremos cómo en ocasiones los valores en la entrada fluctúan. Para evitarlo podemos conectar una resistencia PULLDOWN o PULLUP. Una resistencia de PULLDOWN lo que hace es garantizar que cuando el botón no está pulsado, se lea siempre LOW, es decir, fija la tensión a 0V. Por el contrario, una resistencia de PULLUP garantiza que el valor leído es HIGH, por tanto 5V.

     

  • Esta resistencia es clave para que las lecturas del pulsador sean consistentes. El circuito, simplemente, no funcionará bien si se omite.
  •  

    Nosotros hemos realizado el montaje con la resistencia en PULLDOWN. Mientras no presionemos el pulsador, permanecerá abierto, o sea que no dejará que circule la corriente a la otra parte. De esta manera lo que tenemos es el pin 2 conectado a GND a través de la resistencia R1, de modo que leerá LOW.

    Al cerrarlo lo que hacemos es cerrar el circuito del pin 2 a 5V, con lo que leerá HIGH.

    El montaje en la protoboard sería el siguiente:

    montaje pulldown s4a

  • En este esquema hemos seguido la práctica habitual de usar cables negros para conectar a Ground y cables rojos para conectar a HIGH (5V).
  • Hemos utilizado cable naranja para la entrada digital y cable verde para la salida, con la intención diferenciarlas fácilmente.
  • El pulsador S1 tiene cuatro pines (el elemento que está sobre la resistencia). Esto es porque cada entrada del interruptor tiene dos pines conectados. En nuestro circuito simplemente hemos ignorado los pines secundarios, pero podéis utilizarlos igualmente para la conexión.
  •  

    APRENDIENDO A LEER EL PULSADOR

     

    Para leer el pulsador utilizaremos usar un nuevo bloque de “Control” “si …  / si no”.

    bloque s4a

    El comportamiento de este bloque es el siguiente:

  • Si se cumple la condición que le pongamos dentro del espacio en forma de hexágono (el hueco recuadrado en rojo), el programa ejecutará los bloques que estén dentro del “si …” hasta llegar a “si no”, y se saltará todo lo que haya dentro de “si no”.
  • Si no se cumple, se saltará todos los bloques que estén dentro de “si …” y ejecutará los bloques que estén dentro de “si no” hasta el final.
  •  

    Lo primero que haremos será crear la condición. Para ello utilizaremos los bloques de la categoría “Operadores”. Como en este caso lo que queremos es crear una condición que compruebe el valor de una señal digital usaremos el bloque de “Operadores” “… = …”. Lo seleccionamos y lo arrastramos hasta el hueco en forma de hexágono.

    operador s4a

    Para terminar de crear la condición tenemos que decidir qué es lo que queremos comparar. En este caso lo que queremos saber es si la entrada digital 2 está leyendo HIGH o LOW. El bloque para leer entradas digitales está en la categoría “Movimiento”.

    digital2

    Aunque en este bloque parece que lo que comparamos es si está presionado, eso dependerá del circuito. Sería mejor que lo interpretáramos simplemente como “valor sensor digital …”; y ver qué valor realmente está recibiendo esa entrada digital.

  • Recordemos que hemos montado el circuito con la resistencia conectada en PULLDOWN, de forma que si el pulsador está pulsado la entrada leerá HIGH.
  • En este tipo de comparaciones LOW corresponde a false y HIGH a true.
  • Si hubiésemos conectado la resistencia en PULLUP, la entrada “sensor digital … presionado” leería HIGH o true cuando con el pulsador sin presionar. Es importante entender cómo funciona en realidad, y así no tendremos miedo a montar o interpretar ningún circuito electrónico.
  •  

    Si hemos entendido esto último, deberíamos tener más o menos claro que lo que queremos conseguir con este bloque es algo así:

  • Si el pin 2 está conectado a LOW (false), queremos que el LED esté apagado. Esto quiere decir que mientras no presionemos el pulsador, el LED permanecerá apagado.
  • Si el pin 2 está conectado a HIGH (true), queremos que el LED se encienda. O sea que mientras presionemos el pulsador, el LED permanecerá encendido.
  •  

    Pasándolo a bloques nos quedaría la siguiente estructura:

    bloques pulsador scratch

    Podéis descargar el programa completo desde aquí: PulsadorYa sólo nos queda dar a la bandera verde y probar si funciona correctamente.

    En la lista de valores del escenario podemos ver el estado de las entradas en cualquier momento, tanto analógicas como digitales. En este caso estamos utilizando la entrada digital 2.

    estado digital2 escenario

    Para practicar, os recomiendo que montéis el circuito con la resistencia en PULLUP y modifiquéis el programa para que se adapte al nuevo circuito.

    diagrama electronico

    diagrama protoboard

    bloques pulsador scratch pullup

     

    Resumen de la sesión

     

    En esta sesión hemos aprendido varias cosas importantes:

  • Qué son y cómo se utilizan las entradas digitales.
  • Las diferentes opciones para conectar correctamente un pulsador.
  • Hemos visto que existen bloques de condiciones con los que decidir si se ejecutan o no ciertas instrucciones.
  • A hacer condiciones con valores booleanos o digitales.
  •  

    Deja una respuesta