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

Dependencies:   mbed

Revision:
0:9d0868154c29
Child:
1:abfbb7c52052
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Mar 31 15:20:36 2019 +0000
@@ -0,0 +1,61 @@
+
+#include "mbed.h"     
+  
+DigitalOut r_m(D12);     
+DigitalOut g_m(D10);
+DigitalOut v_m(D9);  
+
+DigitalOut r_p(D2);
+DigitalOut g_p(D4);
+DigitalOut v_p(D6);
+
+DigitalIn button(D3);
+DigitalOut mybuzzer(D11);
+
+
+int i,a;
+
+void pwm_buzzer(double frequenza){
+
+   int i;
+
+   for(i=0; i<frequenza/10; i++) {
+           mybuzzer=1;
+           wait(0.5/frequenza);
+           mybuzzer=0;
+           wait(0.5/frequenza);
+    }
+}
+int main()
+{
+    while(1){
+        if(button==1){  //BOTTONE PREMUTO
+            v_m=0;  //SPEGNI VERDE MACCHINA
+            r_p=0;  //SPEGNI ROSSO PEDONE
+            wait(1.0);
+            g_m=1;  //ACCENDI GIALLO MACCHINA
+            wait(1.5);
+            r_m=1;  //ACCENDI ROSSO MACCHINA
+            g_m=0;  //SPEGNI GIALLO MACCHINA
+            g_p=1;  //ACCENDI GIALLO PEDONI
+            wait(1.0);
+            v_p=1;  //ACCENDI VERDE PEDONE
+            g_p=0;  //SPEGNI GIALLO PEDONE
+            for(a=0; a<100; a++){
+            pwm_buzzer(3000);
+            }
+            wait(1); //EMETTI SUONI
+            i=1;
+         }
+         if(i==1){
+             r_m=0;
+             g_m=0;
+             v_m=1;
+    
+             r_p=1;
+             g_p=0;
+             v_p=0;
+             }
+
+    }
+}