Nota
¡Hola, bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 con otros aficionados.
Why Join?
Expert Support: Resuelve problemas posventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Learn & Share: Intercambia consejos y tutoriales para mejorar tus habilidades.
Exclusive Previews: Obtén acceso anticipado a anuncios de nuevos productos y avances exclusivos.
Special Discounts: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Festive Promotions and Giveaways: Participa en sorteos y promociones festivas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] y únete hoy mismo!
Lección 42: Luz activada por toque
Este proyecto es una implementación simple de un sistema de control de semáforo utilizando un sensor táctil y un módulo LED de semáforo. Activar el sensor táctil inicia una secuencia donde los LEDs se iluminan en el siguiente orden: Rojo -> Amarillo -> Verde.
Componentes Necesarios
Para este proyecto, necesitaremos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Universal de Sensores para Creadores |
94 |
También puedes comprarlos por separado en los siguientes enlaces.
Introducción del Componente |
Enlace de Compra |
|---|---|
Arduino UNO R3 o R4 |
|
- |
|
- |
|
Cableado
Código
Análisis del Código
La operación de este proyecto es sencilla: un toque detectado en el sensor desencadena la iluminación del siguiente LED en la secuencia (Rojo -> Amarillo -> Verde), controlado por la variable currentLED.
Define pines y valores iniciales
const int touchSensorPin = 2; // Pin del sensor táctil const int rledPin = 7; // Pin del LED rojo const int yledPin = 8; // Pin del LED amarillo const int gledPin = 9; // Pin del LED verde int lastTouchState; // Estado anterior del sensor táctil int currentTouchState; // Estado actual del sensor táctil int currentLED = 0; // LED actual: 0->Rojo, 1->Amarillo, 2->Verde
Estas líneas establecen las conexiones de los pines para los componentes de la placa Arduino e inicializan el estado del sensor táctil y los LEDs.
Función setup()
void setup() { Serial.begin(9600); // Inicia comunicación serial pinMode(touchSensorPin, INPUT); // Configura el pin del sensor táctil como entrada // Configura los pines de los LEDs como salidas pinMode(rledPin, OUTPUT); pinMode(yledPin, OUTPUT); pinMode(gledPin, OUTPUT); currentTouchState = digitalRead(touchSensorPin); // Lee el estado inicial del toque }
Esta función configura la configuración inicial para el Arduino, definiendo modos de entrada y salida y comenzando la comunicación serial para la depuración.
Función loop()
void loop() { lastTouchState = currentTouchState; // Guarda el último estado currentTouchState = digitalRead(touchSensorPin); // Lee el nuevo estado del toque if (lastTouchState == LOW && currentTouchState == HIGH) { // Detecta toque Serial.println("Sensor touched"); turnAllLEDsOff(); // Apaga todos los LEDs // Activa el siguiente LED en secuencia switch (currentLED) { case 0: digitalWrite(rledPin, HIGH); currentLED = 1; break; case 1: digitalWrite(yledPin, HIGH); currentLED = 2; break; case 2: digitalWrite(gledPin, HIGH); currentLED = 0; break; } } }
El bucle monitorea continuamente el sensor táctil, pasando por los LEDs cuando se detecta un toque, asegurando que solo un LED esté encendido en cualquier momento dado.
Función para apagar LEDs
void turnAllLEDsOff() { // Establece todos los pines de los LEDs en BAJO, apagándolos digitalWrite(rledPin, LOW); digitalWrite(yledPin, LOW); digitalWrite(gledPin, LOW); }
Esta función auxiliar apaga todos los LEDs, ayudando en el proceso de ciclado.