martes, 16 de marzo de 2021

Semáforo Arduino

 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