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}