Curso C para Arduino
1. Interruptor de luz:
- Usa un botón para encender y apagar un LED. Cada pulsación cambia el estado.
2. Sistema de alarma básico:
- Usa sensores simples (como botones o interruptores magnéticos) para activar una alarma (LED + zumbador).
3. Semáforo con LEDs:
- Simula el funcionamiento de un semáforo con tres LEDs (rojo, amarillo, verde).
Aquí tienes la solución para cada uno de los tres ejercicios prácticos usando entrada/salida digital en Arduino:
✅ 1. Interruptor de luz
Usa un botón para encender y apagar un LED. Cada pulsación cambia el estado.
1const int pinBoton = 2; 2const int pinLED = 13; 3 4bool estadoLED = false; 5bool estadoAnteriorBoton = HIGH; 6 7void setup() { 8 pinMode(pinBoton, INPUT_PULLUP); // usar resistencia pull-up interna 9 pinMode(pinLED, OUTPUT); 10} 11 12void loop() { 13 bool estadoBoton = digitalRead(pinBoton); 14 15 // detectar flanco de bajada (pulsación) 16 if (estadoAnteriorBoton == HIGH && estadoBoton == LOW) { 17 estadoLED = !estadoLED; // alternar estado 18 digitalWrite(pinLED, estadoLED); 19 delay(200); // anti-rebote 20 } 21 22 estadoAnteriorBoton = estadoBoton; 23}
✅ 2. Sistema de alarma básico
Usa sensores simples (como botones o interruptores magnéticos) para activar una alarma (LED + zumbador).
1const int sensor = 2; 2const int pinLED = 13; 3const int buzzer = 8; 4 5void setup() { 6 pinMode(sensor, INPUT_PULLUP); // simula sensor como botón 7 pinMode(pinLED, OUTPUT); 8 pinMode(buzzer, OUTPUT); 9} 10 11void loop() { 12 bool activado = digitalRead(sensor) == LOW; // botón presionado o sensor activado 13 14 if (activado) { 15 digitalWrite(pinLED, HIGH); 16 digitalWrite(buzzer, HIGH); 17 } else { 18 digitalWrite(pinLED, LOW); 19 digitalWrite(buzzer, LOW); 20 } 21}
✅ 3. Semáforo con LEDs
Simula el funcionamiento de un semáforo con tres LEDs (rojo, amarillo, verde).
1const int rojo = 8; 2const int amarillo = 9; 3const int verde = 10; 4 5void setup() { 6 pinMode(rojo, OUTPUT); 7 pinMode(amarillo, OUTPUT); 8 pinMode(verde, OUTPUT); 9} 10 11void loop() { 12 digitalWrite(rojo, HIGH); 13 delay(3000); 14 digitalWrite(rojo, LOW); 15 16 digitalWrite(verde, HIGH); 17 delay(3000); 18 digitalWrite(verde, LOW); 19 20 digitalWrite(amarillo, HIGH); 21 delay(1000); 22 digitalWrite(amarillo, LOW); 23}