Aqui esta mi semáforo hecho con Bitbloq:
- Descripción:
- Es un semáforo para coches y personas.
- Se usan 5 leds y un zumbador.
- Tres leds para los coches y dos para los peatones
- El semáforo tiene un amarillo intermitente para señalar a los coches que queda poco tiempo y un pitido intermitente para las personas ciegas, indicándoles cuando pueden cruzar y que cuando queda poco tiempo, el pitido se acelera.
- Hardware:
- Código en bloques:
- Funciones:
- Setup (instrucciones principales):
- Loop (bucle principal):
- Código escrito:
/*** Included libraries ***/ /*** Global variables and function definition ***/ const int Verde_coche = 12; const int Naranja_coche = 10; const int Rojo_coche = 8; const int Verde_persona = 6; const int Rojo_persona = 4; const int zumbador = 2; void Apagar() { digitalWrite(Verde_coche, LOW); digitalWrite(Naranja_coche, LOW); digitalWrite(Rojo_coche, LOW); digitalWrite(Verde_persona, LOW); digitalWrite(Rojo_persona, LOW); } void Naranja_intermitente() { digitalWrite(Verde_coche, LOW); for (int bitbloqForCounter = 0; bitbloqForCounter < 15; bitbloqForCounter += 1) { digitalWrite(Naranja_coche, HIGH); delay(500); digitalWrite(Naranja_coche, LOW); delay(500); } } void Pitido() { for (int bitbloqForCounter = 0; bitbloqForCounter < 4; bitbloqForCounter += 1) { tone(zumbador, 349, 500); delay(500); tone(zumbador, 494, 500); delay(500); delay(1000); } for (int bitbloqForCounter = 0; bitbloqForCounter < 5; bitbloqForCounter += 1) { tone(zumbador, 349, 500); delay(500); tone(zumbador, 494, 500); delay(500); delay(400); } } /*** Setup ***/ void setup() { pinMode(Verde_coche, OUTPUT); pinMode(Naranja_coche, OUTPUT); pinMode(Rojo_coche, OUTPUT); pinMode(Verde_persona, OUTPUT); pinMode(Rojo_persona, OUTPUT); pinMode(zumbador, OUTPUT); Apagar(); } /*** Loop ***/ void loop() { digitalWrite(Verde_coche, HIGH); digitalWrite(Rojo_persona, HIGH); Naranja_intermitente(); digitalWrite(Rojo_coche, HIGH); digitalWrite(Verde_persona, HIGH); Pitido(); delay(2000); digitalWrite(Verde_persona, LOW); digitalWrite(Rojo_persona, HIGH); delay(2000); digitalWrite(Rojo_coche, LOW); }





No hay comentarios:
Publicar un comentario