Entradas y salidas digitales. Lectura de un pulsador y encendido de un led.

PROGRAMACIÓN BÁSICA


Entradas digitales

 

Introducción

Las entradas digitales se utilizan para leer señales, que pueden ser HIGH (alto) o LOW (bajo). Un estado HIGH normalmente representa una señal de 5V (en la mayoría de las placas Arduino), mientras que un estado LOW representa 0V o GND (tierra). Estas señales provienen del cierre (o apertura) de contacto mecánicos como botones, sensores de final de carrera, interruptores, pulsadores momentáneos, etc. Por lo general, prácticamente todos los pines del Arduino permiten configurarse como entradas o salidas. Aunque no es común, podemos modificar si un pin actúa como entrada o salida en medio de la ejecución del programa.

Para leer una señal digital, primero se debe configurar el pin correspondiente como entrada usando la función pinMode(pin, INPUT).

Luego, se puede leer el estado del pin utilizando la función digitalRead(pin); podemos llamar a esta función en cualquier momento, pero habiendo ejecutando previamente la función pinMode(). Esta función devuelve TRUE ("1" Lógico) si el pin está recibiendo 5V (HIGH) y FALSE ("0" Lógico)si está recibiendo 0V (LOW).

Aplicación práctica con un botón:

Un botón conectado a un pin de entrada digital puede ser utilizado para cambiar su estado cuando se presiona. Un extremo del botón se conecta al pin digital configurado como entrada y el otro extremo se conecta a GND. Cuando se presiona el botón, el circuito se cierra y el pin lee LOW si hay una resistencia pull-up interna o HIGH si hay una resistencia pull-down. Típicamente se emplean resistencias de pull-up, lo que implica que la lectura de dicho pin será normalmente HIGH y cambiará a LOW siempre que el botón se mantenga presionado. 

  • pinMode(buttonPin1, INPUT) y pinMode(buttonPin2, INPUT); configuran los pines 2 y 3 como entradas.

  • digitalRead(buttonPin1) y digitalRead(buttonPin2); leen el estado de los botones. HIGH significa que el botón está presionado (enviando un voltaje alto), y LOW significa que el botón está liberado (voltaje bajo).

Salidas digitales.

 

Introducción.

Las salidas digitales se utilizan para generar señales digitales. Al ser señales digitales, solo pueden tener dos estados posibles: Alto o Bajo. Son utilizadas primordialmente para encender/apagar LEDs, activar relés, controlar motores, entre otros.

Para enviar una señal digital, se configura el pin correspondiente como salida utilizando la función pinMode(pin, OUTPUT);.

Luego, se puede establecer el estado del pin utilizando la función digitalWrite(pin, value);, donde value puede ser HIGH o LOW.

Aplicación práctica con un led:

Un LED conectado a un pin de salida digital se enciende cuando el pin se pone en estado HIGH y se apaga cuando el pin se pone en estado LOW. El ánodo (pierna más larga) del LED se conecta al pin de salida y el cátodo (pierna más corta) se conecta a GND a través de una resistencia limitadora de corriente.

Actividad de ejemplo.

 

Control de un led con un botón.

Ahora, combinando lo anterior, presentamos un ejemplo práctico donde un botón controla el estado de dos LEDs. Para esta actividad práctica, conectaremos dos botones a cualquier pin de entrada/salida del Arduino. Nosotros hemos elegido el pin digital 2. El led se encuentra conectado, con su correspondiente resistencia limitadora de 220 ohmios en serie, al pin 8. 


// Definición de pines
const int buttonPin = 2;  // Pin del botón
const int ledPin = 8;     // Pin del LED

// Variable para almacenar el estado del botón
int buttonState = 0;

void setup() {
    // Configurar el pin del botón como entrada
    pinMode(buttonPin, INPUT);
    // Configurar el pin del LED como salida
    pinMode(ledPin, OUTPUT);

    // Inicializar el LED apagado
    digitalWrite(ledPin, LOW);
}

void loop() {
    // Leer el estado del botón
    buttonState = digitalRead(buttonPin);

    // Controlar el LED con el botón
    if (buttonState == LOW) {  // El botón está presionado
        digitalWrite(ledPin, HIGH);  // Encender LED
    } else {
        digitalWrite(ledPin, LOW);   // Apagar LED
    }
}
Vistas
4 Número de vistas
4 Vistas de miembros
0 Vistas públicas
Acciones
0 Gustos
0 No me gusta
0 Comentarios
Compartir en redes sociales
Compartir enlace
Compartir por correo

Por favor iniciar sesión para compartir esto webpage por correo.