Tabla de contenido
La lectura de valores digitales es una operación fundamental en la programación de microcontroladores, ya que permite interactuar con el mundo exterior. Los valores digitales se pueden leer desde sensores, interruptores, botones y otros dispositivos electrónicos, y se pueden utilizar para controlar luces, motores, relés y otros componentes.
La lectura de valores digitales es un concepto fundamental en el ámbito de la electrónica y la programación. En términos simples, se refiere a la medición de un estado binario en un sistema electrónico. Un estado binario es aquel que puede tener solo dos valores posibles, como encendido/apagado, verdadero/falso, alto/bajo, etc.
En el contexto de los microcontroladores, como Arduino, la lectura de valores digitales se refiere a la medición del estado binario de los pines de entrada/salida digitales. Los pines digitales se pueden configurar para actuar como entradas o salidas y pueden tener solo dos valores posibles: HIGH (1) o LOW (0).
En los circuitos lógicos TTL, los valores lógicos 0 y 1 se definen en función de los niveles de tensión eléctrica de las señales.
Nivel Lógico | Definición | Voltaje de Entrada (Vin) |
---|---|---|
0 | Voltaje de entrada menor que el valor de Vil | 0V ↔ 0.8V |
Indeterminado (?) | Voltaje de entrada entre Vil y Vih | 0.8V ↔ 2.8V |
1 | Voltaje de entrada mayor que el valor de Vih | Vin > 2.8V |
En Arduino, la lectura de valores digitales se realiza mediante las funciones pinMode()
y digitalRead()
. La función pinMode()
se utiliza para configurar un pin como entrada o salida, mientras que la función digitalRead()
se utiliza para leer el estado binario actual de un pin configurado como entrada.
pinMode(2, INPUT);
int valorPinDos = digitalRead(2);
Un botón de no retención (también conocido como botón momentáneo o pulsador momentáneo) es un tipo de interruptor que solo se activa mientras se mantiene presionado, pero que no mantiene su estado de activación una vez que se suelta el botón. Esto significa que el circuito solo se cierra mientras se mantiene el botón presionado.
Un botón de retención es un tipo de interruptor que mantiene su estado de activación después de que se suelta el botón, lo que significa que el circuito permanece cerrado hasta que se presiona el botón nuevamente para desactivarlo.
Este tipo de botón se utiliza comúnmente en aplicaciones que requieren una acción permanente, como mantener una luz encendida o mantener activada una alarma.
Un botón latch (también conocido como interruptor biestable) es un interruptor que mantiene su estado activado o desactivado después de pulsarlo, sin importar si se mantiene presionado o no. Este tipo de botón se utiliza comúnmente en aplicaciones que requieren una activación o desactivación de un circuito que debe mantener su estado.
Un interruptor selector es un botón que tiene múltiples posiciones, cada una de las cuales activa un circuito diferente. Este tipo de botón se utiliza comúnmente en aplicaciones que requieren seleccionar entre diferentes opciones, como la selección de diferentes canales de televisión.
En Arduino, los botones (también conocidos como pulsadores o interruptores) se pueden leer mediante la configuración de una entrada digital. Sin embargo, para que la lectura sea precisa y fiable, es importante utilizar resistencias de pull-up o pull-down para evitar que la entrada flote en un estado indeterminado.
En esta configuración, se conecta una resistencia de valor alto entre el pin de entrada digital y GND (tierra). El botón se conecta entre el pin de entrada digital y Vcc (+5V).
Cuando se presiona el botón, se cierra el circuito y se establece una conexión a Vcc, lo que hace que el pin de entrada digital se lea como un valor lógico 1. Cuando el botón no se presiona, la resistencia de pull-down mantiene el pin de entrada digital en un estado de alta impedancia, lo que hace que el pin se lea como un valor lógico 0.
Push button | Voltage | MCU |
---|---|---|
0 (sin presionar) | 0V | LOW (0) |
1 (presionado) | +5V | HIGH (1) |
La siguiente configuración presenta como conectar un botón utilizando un LED para observar si el botón se encuentra presionado o no
$$ Vsource = Vled + Vres $$
$$ Vres = Vsource - Vled $$
$$ Vres > 2.8V = HIGH $$
$$ Vres < 0.8V = LOW $$
$$ 0.8V ≤ Vres ≤ 2.8V < 0.8V = Desconocido $$
En esta configuración, se conecta una resistencia de valor alto entre el pin de entrada digital y Vcc.
El botón se conecta entre el pin de entrada digital y GND (tierra). Cuando se presiona el botón, se cierra el circuito y se establece una conexión a tierra, lo que hace que el pin de entrada digital se lea como un valor lógico 0. Cuando el botón no se presiona, la resistencia de pull-up mantiene el pin de entrada digital en un estado de alta impedancia, lo que hace que el pin se lea como un valor lógico 1.