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

Dependencies:   mbed

Committer:
CarmineSql
Date:
Sun Mar 31 15:35:17 2019 +0000
Revision:
1:abfbb7c52052
Parent:
0:9d0868154c29
public;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
CarmineSql 1:abfbb7c52052 1 /*DOPPIO SEMAFORO CON PULSANTE E BUZZER*/
CarmineSql 1:abfbb7c52052 2 //CAIAZZO ROMANO e SQUILLACE 3Ai
CarmineSql 1:abfbb7c52052 3
CarmineSql 0:9d0868154c29 4 #include "mbed.h"
CarmineSql 0:9d0868154c29 5
CarmineSql 1:abfbb7c52052 6 DigitalOut r_m(D12); //LED ROSSO MACCHINE
CarmineSql 1:abfbb7c52052 7 DigitalOut g_m(D10); //LED GIALLO MACCHINE
CarmineSql 1:abfbb7c52052 8 DigitalOut v_m(D9); //LED VERDE MACCHINE
CarmineSql 0:9d0868154c29 9
CarmineSql 1:abfbb7c52052 10 DigitalOut r_p(D2); //LED ROSSO PEDONI
CarmineSql 1:abfbb7c52052 11 DigitalOut g_p(D4); //LED GIALLO PEDONI
CarmineSql 1:abfbb7c52052 12 DigitalOut v_p(D6); //LED VERDE PEDONI
CarmineSql 0:9d0868154c29 13
CarmineSql 1:abfbb7c52052 14 DigitalIn button(D3); //BOTTONE PEDONI
CarmineSql 1:abfbb7c52052 15 DigitalOut mybuzzer(D11);//BUZZER
CarmineSql 0:9d0868154c29 16
CarmineSql 1:abfbb7c52052 17 int i,a;
CarmineSql 0:9d0868154c29 18
CarmineSql 1:abfbb7c52052 19 /* BUZZER: */
CarmineSql 1:abfbb7c52052 20 void pwm_buzzer(double frequenza){ //SUONO DEL BUZZER:
CarmineSql 0:9d0868154c29 21
CarmineSql 0:9d0868154c29 22 int i;
CarmineSql 0:9d0868154c29 23
CarmineSql 1:abfbb7c52052 24 for(i=0; i<frequenza/10; i++) {
CarmineSql 0:9d0868154c29 25 mybuzzer=1;
CarmineSql 0:9d0868154c29 26 wait(0.5/frequenza);
CarmineSql 0:9d0868154c29 27 mybuzzer=0;
CarmineSql 0:9d0868154c29 28 wait(0.5/frequenza);
CarmineSql 0:9d0868154c29 29 }
CarmineSql 0:9d0868154c29 30 }
CarmineSql 1:abfbb7c52052 31 /* PROGRAMMA PRINCIPALE*/
CarmineSql 0:9d0868154c29 32 int main()
CarmineSql 0:9d0868154c29 33 {
CarmineSql 1:abfbb7c52052 34 while(1){ //CICLO INFINITO:
CarmineSql 1:abfbb7c52052 35 if(button==1){ //QUANDO VIENE PREMUTO IL BOTTONE ESEGUI:
CarmineSql 1:abfbb7c52052 36
CarmineSql 0:9d0868154c29 37 v_m=0; //SPEGNI VERDE MACCHINA
CarmineSql 0:9d0868154c29 38 r_p=0; //SPEGNI ROSSO PEDONE
CarmineSql 1:abfbb7c52052 39
CarmineSql 1:abfbb7c52052 40 wait(1.0); //ASPETTA
CarmineSql 1:abfbb7c52052 41
CarmineSql 0:9d0868154c29 42 g_m=1; //ACCENDI GIALLO MACCHINA
CarmineSql 1:abfbb7c52052 43
CarmineSql 1:abfbb7c52052 44 wait(1.5); //ASPETTA
CarmineSql 1:abfbb7c52052 45
CarmineSql 0:9d0868154c29 46 r_m=1; //ACCENDI ROSSO MACCHINA
CarmineSql 0:9d0868154c29 47 g_m=0; //SPEGNI GIALLO MACCHINA
CarmineSql 0:9d0868154c29 48 g_p=1; //ACCENDI GIALLO PEDONI
CarmineSql 1:abfbb7c52052 49
CarmineSql 1:abfbb7c52052 50 wait(1.0); //ASPETTA
CarmineSql 1:abfbb7c52052 51
CarmineSql 0:9d0868154c29 52 v_p=1; //ACCENDI VERDE PEDONE
CarmineSql 0:9d0868154c29 53 g_p=0; //SPEGNI GIALLO PEDONE
CarmineSql 1:abfbb7c52052 54
CarmineSql 1:abfbb7c52052 55 for(a=0; a<100; a++){ //SUONO BUZZER
CarmineSql 0:9d0868154c29 56 pwm_buzzer(3000);
CarmineSql 0:9d0868154c29 57 }
CarmineSql 1:abfbb7c52052 58 wait(1); //ASPETTA
CarmineSql 1:abfbb7c52052 59 i=1; //SPEGNIMENTO VERDE PEDONE E ACCENSIONE ROSSO MACCHINE
CarmineSql 0:9d0868154c29 60 }
CarmineSql 1:abfbb7c52052 61 if(i==1){ //SE IL BOTTONE NON E' PREMUTO:
CarmineSql 1:abfbb7c52052 62 //ACCENDI VERDE MACCHINE
CarmineSql 1:abfbb7c52052 63 r_m=0;
CarmineSql 1:abfbb7c52052 64 g_m=0;
CarmineSql 1:abfbb7c52052 65 v_m=1;
CarmineSql 1:abfbb7c52052 66 //ACCENDI ROSSO PEDONI
CarmineSql 0:9d0868154c29 67 r_p=1;
CarmineSql 0:9d0868154c29 68 g_p=0;
CarmineSql 0:9d0868154c29 69 v_p=0;
CarmineSql 0:9d0868154c29 70 }
CarmineSql 0:9d0868154c29 71
CarmineSql 0:9d0868154c29 72 }
CarmineSql 0:9d0868154c29 73 }