Estados digitales #

Los pines digitales nos permiten distinguir entre dos estados, a los que nos referimos con diversos nombres:

  • Activo – Inactivo o Encendido – Apagado (On – Off)
  • Alto y Bajo (High – Low)
  • 1 – 0
  • Verdadero – Falso (true – false)

La tensión lógica de funcionamiento de multitud de microcontroladores, como el Esp32, es de 3,3V. Es decir, detectan estado de activación al recibir una tensión de 3,3V o un valor cercano, y apagado con 0V o una tensión cercana.

Lectura #

El bloque principal de lectura de entradas está diseñado con desplegables en los que se disponen los pines que se pueden configurar como entradas en el Esp32, microcontrolador principal del proyecto. Dicho bloque de lectura de entradas digitales DI (Digital Input), así como esta funcionalidad con memorias, se encuentra en el apartado Elementos Ladder / ES y variables. Se utiliza la simbología presente en el lenguaje Ladder o de contactos, cuyos principales tipos se resumen en la siguiente tabla:

En el apartado E/S Esp8266, Arduino, etc. se disponen bloques preparados para escribir el nombre del GPIO deseado, de manera que se pueda trabajar con el microcontrolador Esp8266 de manera totalmente funcional en microLSB, además de facilitar el uso de funciones básicas con otras placas de desarrollo como Arduino UNO.

Cableado básico #

Hay distintas configuraciones posibles para las señales digitales de entrada, pero en todas es importante que haya siempre una tensión de referencia en la entrada, ya sea 0V o 3,3V. Nunca puede quedarse sin tensión, recuerda que «nada» no es ningún potencial, 0V es el potencial de la tierra. Aquí se muestra la mas intuitiva, que es la Pull-Down. Esta configuración, como se aprecia en la siguiente imagen, hace que lleguen 0V a la entrada con el pulsador abierto, y 3,3V con el pulsador cerrado.

Si no se especifica lo contrario, se trabajará con pulsadores NA y conexion Pull-Down, que es la que nos resulta mas intuitiva, ya que al accionar el pulsador recibimos un estado alto y al soltarlo, bajo:

Sin embargo, además de esto, un pulsador puede ser Normalmente Abierto (NA = Normally Open), o Normalmente cerrado (NC). Los pulsadores NC, al contrario que los NA, cierran el circuito eléctrico, es decir, dejan pasar corriente, cuando están en estado de reposo. Cuando se presionan, es cuando abren el circuito, cortando el flujo de corriente.

En una automatización cableada puramente eléctrica, un pulsador NC es algo como lo siguiente, donde, si yo no acciono el pulsador S5, el Led permanece encendido.

Sin embargo, al trabajar con microcontroladores, en lugar de utilizar pulsadores o interruptores NC, se suele utilizar un esquema eléctrico diferente que, usando pulsadores NA, consigue el mismo efecto que con los NC. Esta es la conexión Pull – Up con pulsadores NA.

Finalmente, el Esp32, como muchos otros microcontroladores ya, contiene entro de sus GPIOS resistencias internas que se pueden configurar como Pull-Down o Pull-Up, simplificando el cablado de las entradas, ya que hace prescindible la resistencia interna anteriormente vista. Todo este tipo de opciones se verán mas adelante.

Para profundizar: En este enlace puedes encontrar en texto toda la información en detalle de tipos de entradas digitales en el microcontrolador Esp32 y su diferencia con las de un PLC industrial. Y aquí en tutorial en vídeo.
  • Ejercicio 1: Realiza un programa que muestre en la pantalla del ordenador mediante el puerto serie cada segundo, el estado del GPIO 2 al que se conecta un pulsador NA configurado como entrada (DI2) con resistencia externa Pull – Down.
  unsigned long Frecuencia_ = 0;
  
  void setup()
  {
    pinMode(2, INPUT);
    Serial.begin(115200);
  }
  void loop()
  {
    if(millis() - Frecuencia_ > 1000){
    Frecuencia_ = millis();
    Serial.println(digitalRead(2));}
  }

Si se prueba en el simulador Wokwi, no es necesario realizar ninguna configuración añadida. Sin embargo, si se carga en una placa, recuerda tener configurada la velocidad de comunicación a 115200 baudios.

  • Ejercicio 2: Realiza un programa que muestre en la pantalla del ordenador mediante el puerto serie cada medio segundo, el estado del GPIO 2 y del GPIO 12 a los que se conectan un pulsador NA configurado como entrada (DI2) con resistencia externa Pull – Down, respectivamente.
  • Ejercicio 3: Se conectan a los GPIOS 2 y 12 dos pulsadores NA con resistencia externa Pull – Down. Realiza un programa que muestre en la pantalla del ordenador mediante el puerto serie cada medio segundo, lo siguiente:
    • Lecturas de estado bajo (0) cuando no se presiona el pulsador del GPIO2 y estado alto (1), cuando se presiona.
    • Lecturas de estado alto (1) cuando no se presiona el pulsador del GPIO12 y estado bajo (0), cuando se presiona.
    • Material: microLSBEnlace a simulación o Carga en Placa.
    • Solución:

Un contacto cerrado equivale a negar el estado de una entrada, pero cuidado porque esto no implica que la entrada tenga conectado un pulsador NC. Hay que diferenciar claramente lo que es el cableado eléctrico y lo que es la gestión en programación de la señal que llega a la entrada digital. Esta suele ser una fuente habitual de errores.

  unsigned long Frecuencia_ = 0;
  
  void setup()
  {
    pinMode(2, INPUT);
    pinMode(12, INPUT);
    Serial.begin(115200);
  }
  void loop()
  {
    if(millis() - Frecuencia_ > 500){
    Frecuencia_ = millis();
    Serial.println((String(digitalRead(2)) + String(!digitalRead(12))));
    }
  }