Doppio Semaforo pedoni/auto con pulsante + segnalatore acustico per non vedenti (buzzer)

Dependencies:   mbed

main.cpp

Committer:
CarmineSql
Date:
2019-03-31
Revision:
1:abfbb7c52052
Parent:
0:9d0868154c29

File content as of revision 1:abfbb7c52052:

                            /*DOPPIO SEMAFORO CON PULSANTE E BUZZER*/
                              //CAIAZZO ROMANO e SQUILLACE 3Ai
                       
#include "mbed.h"     
  
DigitalOut r_m(D12);     //LED ROSSO MACCHINE
DigitalOut g_m(D10);     //LED GIALLO MACCHINE
DigitalOut v_m(D9);      //LED VERDE MACCHINE

DigitalOut r_p(D2);      //LED ROSSO PEDONI
DigitalOut g_p(D4);      //LED GIALLO PEDONI
DigitalOut v_p(D6);      //LED VERDE PEDONI

DigitalIn button(D3);    //BOTTONE PEDONI   
DigitalOut mybuzzer(D11);//BUZZER

int i,a;    

            /* BUZZER: */
void pwm_buzzer(double frequenza){ //SUONO DEL BUZZER:

   int i;

   for(i=0; i<frequenza/10; i++) { 
           mybuzzer=1;
           wait(0.5/frequenza);
           mybuzzer=0;
           wait(0.5/frequenza);
    }
}
        /* PROGRAMMA PRINCIPALE*/
int main()
{
    while(1){ //CICLO INFINITO:
        if(button==1){  //QUANDO VIENE PREMUTO IL BOTTONE ESEGUI:
        
            v_m=0;  //SPEGNI VERDE MACCHINA
            r_p=0;  //SPEGNI ROSSO PEDONE
            
            wait(1.0);  //ASPETTA 
            
            g_m=1;  //ACCENDI GIALLO MACCHINA
            
            wait(1.5);  //ASPETTA
            
            r_m=1;  //ACCENDI ROSSO MACCHINA
            g_m=0;  //SPEGNI GIALLO MACCHINA
            g_p=1;  //ACCENDI GIALLO PEDONI
            
            wait(1.0);  //ASPETTA
            
            v_p=1;  //ACCENDI VERDE PEDONE
            g_p=0;  //SPEGNI GIALLO PEDONE
            
            for(a=0; a<100; a++){   //SUONO BUZZER
            pwm_buzzer(3000);
            }
            wait(1); //ASPETTA
            i=1;     //SPEGNIMENTO VERDE PEDONE E ACCENSIONE ROSSO MACCHINE
         }
         if(i==1){ //SE IL BOTTONE NON E' PREMUTO:
         //ACCENDI VERDE MACCHINE
             r_m=0; 
             g_m=0; 
             v_m=1; 
         //ACCENDI ROSSO PEDONI
             r_p=1;
             g_p=0;
             v_p=0;
             }

    }
}