jueves, 22 de marzo de 2018

Semáforo



Como funciona el semáforo:

Sistema con dos semáforos, un pulsador y un zumbador:

1- El primer semáforo tiene la función de definir el paso de los
     peatones, que consta de dos leds conectados a los pines digitales
     3 y 5.

2- El segundo semáforo tiene la función de definir el paso de los
     vehículos, que consta de tres leds conectados en los pines digitales
     7, 9 y 11.

3- También consta de un pulsador, el cual tiene como función
     ceder el paso a los peatones después de ser presionado,
     éste está conectado al pin digital 2.

4- Para finalizar este sistema dispone de un zumbador, conectado al
     pin digital 4, que tiene como función mostrar el momento en el que
     deben pasar los peatones invidentes.



Aquí tenéis unas imágenes del hardware, software y el código de mi semáforo en bitbloq






Código:


/***   Included libraries  ***/


/***   Global variables and function definition  ***/
const int boton = 2;
const int peatones_verde = 3;
const int peatones_rojo = 9;
const int led_coches_verde = 7;
const int led_coches_ambar = 5;
const int led_coches_rojo = 11;
const int zumbador = 8;




/***   Setup  ***/
void setup() {
    pinMode(boton, INPUT);
    pinMode(peatones_verde, OUTPUT);
    pinMode(peatones_rojo, OUTPUT);
    pinMode(led_coches_verde, OUTPUT);
    pinMode(led_coches_ambar, OUTPUT);
    pinMode(led_coches_rojo, OUTPUT);
    pinMode(zumbador, OUTPUT);

    digitalWrite(peatones_verde, LOW);
    digitalWrite(peatones_rojo, LOW);
    digitalWrite(led_coches_verde, LOW);
}


/***   Loop  ***/
void loop() {
    if (digitalRead(boton) == 1) {
        delay(5000);
        digitalWrite(led_coches_verde, LOW);
        digitalWrite(led_coches_ambar, HIGH);
        delay(777);
        digitalWrite(led_coches_ambar, LOW);
        delay(777);
        digitalWrite(led_coches_ambar, HIGH);
        delay(777);
        digitalWrite(led_coches_ambar, LOW);
        delay(372);
        digitalWrite(peatones_verde, HIGH);
        digitalWrite(peatones_rojo, LOW);
        digitalWrite(led_coches_rojo, HIGH);
        tone(zumbador, 261, 500);
        delay(500);
        delay(1000);
        tone(zumbador, 261, 500);
        delay(500);
        delay(1000);
        tone(zumbador, 261, 500);
        delay(500);
        delay(1000);
        tone(zumbador, 261, 500);
        delay(500);
        delay(1000);
        tone(zumbador, 261, 500);
        delay(500);
        delay(500);
        tone(zumbador, 261, 500);
        delay(500);
        delay(500);
        tone(zumbador, 261, 500);
        delay(500);
        digitalWrite(peatones_verde, LOW);
        delay(250);
        tone(zumbador, 261, 500);
        delay(500);
        digitalWrite(peatones_verde, HIGH);
        delay(250);
        tone(zumbador, 261, 500);
        delay(500);
        digitalWrite(peatones_verde, LOW);
        delay(250);
        tone(zumbador, 261, 500);
        delay(500);
        digitalWrite(peatones_verde, HIGH);
        delay(100);
        tone(zumbador, 261, 500);
        delay(500);
        digitalWrite(peatones_verde, HIGH);
        delay(100);
        digitalWrite(peatones_verde, HIGH);
        tone(zumbador, 261, 500);
        delay(500);
        delay(75);
        digitalWrite(peatones_verde, LOW);
        digitalWrite(led_coches_ambar, LOW);
        digitalWrite(peatones_rojo, HIGH);
        digitalWrite(led_coches_rojo, LOW);
        digitalWrite(led_coches_verde, HIGH);
        digitalWrite(peatones_verde, HIGH);
    }
    digitalWrite(led_coches_ambar, LOW);
    digitalWrite(led_coches_rojo, LOW);
    digitalWrite(peatones_rojo, HIGH);
    digitalWrite(peatones_verde, LOW);
    digitalWrite(led_coches_rojo, LOW);
    digitalWrite(led_coches_ambar, LOW);
    digitalWrite(led_coches_verde, HIGH);
}