prog

Dependencies:   mbed mbed-rtos beep hcsr04

Revision:
1:13556d8b4a34
Parent:
0:650a24681467
Child:
2:33e2a092cab6
diff -r 650a24681467 -r 13556d8b4a34 main.cpp
--- a/main.cpp	Fri Apr 28 19:35:48 2017 +0000
+++ b/main.cpp	Tue Mar 26 11:09:02 2019 +0000
@@ -7,149 +7,63 @@
 Serial blue(D10,D2);//tx e rx
 /******************************/
 //sensori ad ultrasuoni
-HCSR04 sensor1(D15, D14);
+HCSR04 sensor1(D15, D14);    //istanza oggetti "sensori"
 HCSR04 sensor2(D12, D13);
 HCSR04 sensor3(D11, D9);
 /******************************/
 //dichiarazioni led
 //Led per le macchine
-DigitalOut rossoC(PA_0);
+DigitalOut rossoC(PA_0);    //istanza oggetti "led"
 DigitalOut gialloC(D5);
 DigitalOut verdeC(D3);
 /******************************/
 //led per i pedoni
-DigitalOut rossoP(D6);
+DigitalOut rossoP(D6);     //istanza oggetti "led specifici per i pedoni"
 DigitalOut gialloP(D7);
 DigitalOut verdeP(D8);
 /******************************/
 //buzzer
-Beep buzzer(D4);
+Beep buzzer(D4);            //istanza oggetti "buzzer"
 /******************************/
 /******************************/
-//dichiarazione funzioni
-void giallo();
-void semafori();
-/******************************/
-//variabili
-int i=0;
-char riceviBlue = '0';
-bool gianello= false;
-bool visto = false;
+
+Thread thread_sensori; // istanzia oggetto thread 
+
+bool occupata = false;
 /******************************/ 
  
 //sensore semaforo 1
 /******************************/
 void sensori(){
-    while(!visto && !gianello){
         sensor1.start();
         wait_ms(100);
-        sensor2.start();
+        sensor2.start();         //partono i sensori
         wait_ms(100);
-        if(sensor1.get_dist_cm()<10||sensor2.get_dist_cm()<10){
-            wait(4);
-            sensor1.start();
-            wait_ms(100);
-            sensor2.start();
-            wait_ms(100);
-            if(sensor1.get_dist_cm()<10||sensor2.get_dist_cm()<10&&!gianello){
-               visto = true;
-                blue.putc('A');                
-                wait_ms(100);
-                semafori();
-                visto=false;
+        if(sensor1.get_dist_cm() < 5 && occupata[0] = false){    //se uno dei sensori capta una distanza minore 10
+            occupata[0] = true;
+        else
+            occupata[0] = false;
+        if(sensor2.get_dist_cm() < 5 && occupata[1] = false){       //se uno dei sensori capta una distanza minore a 10 e gianello è false
+            occupata[1] = true;
+        else
+            occupata[1] = false;
             }
-        }
-    }     
-}
-/******************************/
-//controllo borini 
-/******************************/
-void borini (void const *args){
-    while(true){
-        if(blue.readable()){
-            riceviBlue = blue.getc();
-        }
-        if(riceviBlue == 'B')
-        {
-            gianello=true;
-            riceviBlue='0';
-            semafori();
-            riceviBlue='0';
-            gianello=false;
-            visto=false;
-        }
-    }
-}
-/******************************/
+
 int main(){
-   //inizializzazione
-   /******************************/
-   rossoP=1;
-   verdeP=0;
-   gialloP=0;
-   gialloC=0;
-   rossoC=0;
-   verdeC=1;
-   blue.baud(38400);
-   /******************************/
-Thread th1(borini);  
-    while(1){
-       if(!gianello){
-            sensori();
-        }
-    }  
+    int i;
+    while(true) {
+       //if (mybutton) { 
+        for (int i = 0; i < 2; i++)
+           pc.printf("%d", occupata[i]);
+    
+    
+    
+    
+   
+   
 }
-void giallo(){
-    int n;
-    int cont =0;
-    do{
-            n=0;
-            verdeP=0;
-            gialloP=1;       
-           //bippata del buzzer
-           /******************************/
-            for(i=0;i<10;i++){
-                buzzer.beep(1500,50);
-                wait_ms(200);
-                buzzer.nobeep();
-                buzzer.beep(2000,50);
-                wait_ms(200);
-                buzzer.nobeep();                                
-            } 
-            /******************************/
-            sensor3.start();
-            wait_ms(100);
-            if(sensor3.get_dist_cm()<48){
-               cont++;
-               if(cont<=2)
-                blue.putc('L');
-               n=1;               
-            }
-            wait_ms(100);            
-    }while(n==1&&cont<=2);
-    blue.putc('0');      
-    wait_ms(200);
-}
-void semafori(){
-    //giallo per le macchine, rosso per i pedoni       
-            verdeC=0;
-            gialloC=1;
-            rossoC=0;
-            wait(4);
-            //rosso per le macchine, verde per i pedoni
-            buzzer.beep(1200,50);  
-            gialloC=0;
-            rossoC=1;            
-            rossoP=0;
-            verdeP=1;            
-            wait(10);
-            buzzer.nobeep();
-            //giallo per i pedoni e rosso per le macchine   
-            giallo();
-            //rosso ai pedoni e verde alle automobili
-            gialloP=0;
-            rossoP=1; 
-            rossoC=0;
-            verdeC=1;
-            wait_ms(5000);
+
+
+void thread_sensori() {
+    
 }
\ No newline at end of file