Semaforo con Buzzer; NUCLEO F401RE
Abbiamo aggiunto un Buzzer al Semaforo realizzato in precedenza:
/media/uploads/CarmineSql/semaforoconbuzzer.pdf
Semaforo precedente:
/media/uploads/CarmineSql/chiamata_pedoni.pdf
Semaforo con Buzzer
/*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()
{
i=1;
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;
}
}
}
Please log in to post comments.
