
Video
Diagrama del circuito

Código fuente
1void setup() {
2 pinMode(2,OUTPUT);
3 pinMode(3,OUTPUT);
4 pinMode(4,OUTPUT);
5}
6void loop() {
7 digitalWrite(2,HIGH);
8 digitalWrite(3,LOW);
9 digitalWrite(4,LOW);
10 delay(2000);
11 digitalWrite(2,LOW);
12 digitalWrite(3,HIGH);
13 digitalWrite(4,LOW);
14 delay(300);
15 digitalWrite(2,LOW);
16 digitalWrite(3,LOW);
17 digitalWrite(4,HIGH);
18 delay(2000);
19 digitalWrite(2,LOW);
20 digitalWrite(3,HIGH);
21 digitalWrite(4,LOW);
22 delay(300);
23}Preguntas frecuentes
¿Cuánto tiempo debe permanecer encendida la luz amarilla del semáforo?▾
En los semáforos reales, la luz amarilla suele permanecer encendida entre 3 y 4 segundos. En el proyecto, este tiempo se ajusta mediante la función delay(); si se prolongan los tiempos de la luz roja y la verde y se acorta el de la amarilla, se consigue un ciclo muy similar al real.
¿Por qué se utiliza una resistencia de 330 Ω en lugar de una de 220 Ω?▾
Una resistencia de 330 Ω reduce un poco más la intensidad de la corriente (aproximadamente 9-10 mA); los LED siguen viéndose perfectamente y se consume menos corriente total en los pines. También funciona con una resistencia de 220 Ω, solo que los LED brillan un poco más.
¿Puedo añadir un botón para peatones?▾
Sí. Puedes añadir un pulsador y una resistencia pull-down de 10 kΩ, y leer el valor con digitalRead. Al pulsar el pulsador, puedes cambiar el color del ciclo a rojo y encender un LED verde independiente para los peatones; al hacerlo, utilizar millis() en lugar de delay garantiza que el pulsador se detecte al instante.
Los LED se están desordenando, ¿qué debo hacer?▾
Compara una a una las definiciones de los pines del código (rojo, amarillo, verde) con los cables del circuito. Lo más sencillo es encender cada LED con un código de prueba independiente y comprobar a qué pin está conectado.
