prog

Dependencies:   mbed Servo mbed-rtos beep hcsr04 TextLCD

main.cpp

Committer:
CiroSamu
Date:
2019-03-28
Revision:
5:8eb27286a3e3
Parent:
4:48754f3702d7
Child:
6:0088253be231

File content as of revision 5:8eb27286a3e3:

#include "mbed.h"
#include "rtos.h"
#include "hcsr04.h"
#include "beep.h"
#define trigger1 D15
#define echo1 D14
#define trigger2 D12
#define echo2 D13
/******************************/
//bluetooth
Serial pc(USBTX, USBRX);//tx e rx
/******************************/
//sensori ad ultrasuoni
HCSR04 sensor1(trigger1, echo1);    
HCSR04 sensor2(trigger2, echo2);
//HCSR04 sensor3(D11, D9);
/******************************/
DigitalIn mybutton(USER_BUTTON);
//Thread thread_sensori; // istanzia oggetto thread 

bool occupata[3] = {false,false,false};
/******************************/ 
 void button_thread(void const *args){

    while(1){
        if (mybutton==0){
            int i=0;
            do{
               i++;
               if(occupata[i]== false){
                    pc.printf("il parcheggio numero %d e libero\n",i);
                    
                }//else if(occupata[1]==true && occupata[2]==true) pc.printf("tutti i parcheggi sono occupati");
           
            }while(occupata[i]== true && i<2);
        }
        
           
    }
}
//sensore semaforo 1
/******************************/
void sensori(){
        float distanza1;
        float distanza2;
        sensor1.start();
        wait_ms(100);
        sensor2.start();         //partono i sensori 
        wait_ms(100);  
        distanza1= sensor1.get_dist_cm() ;  
        distanza2=sensor2.get_dist_cm();
        pc.printf("%.0fcm\r\n%.0fcm\r\n", distanza1,distanza2);
        if(sensor1.get_dist_cm() < 5 && occupata[1] ==  false)    //se uno dei sensori capta una distanza minore 10
            occupata[1] = true;
        else
            occupata[1] = false;
            
        if(sensor2.get_dist_cm() < 5 && occupata[2] == false)      //se uno dei sensori capta una distanza minore a 10 e gianello è false
            occupata[2] = true;
        else
            occupata[2] = false;
  }          

int main(){
   // pc.printf("prova");
    //while(true) {
       //Thread button_th(button_thread);
       //int i=0;
    
       Thread button_th(button_thread);
       while(1){
             sensori();
        }
       
     //  blue.printf("prova");
       // if (mybutton==0) {  
       /* 
           do{
               i++;
               if(occupata[i]== false){
                    pc.printf("il parcheggio numero %d è libero\n",i);
                    
                    }
                     
           
           }while(occupata[i]== true && i<2);
           
           */
           /*if(occupata[i]== false && occupata[2]== false) pc.printf("il parcheggio numero %d è libero\n", i + 1 );     
           else if(occupata[0]== false && occupata[1]== true){
               pc.printf("il parcheggio numero %d è libero\n", i + 1 ); 
               break;
           } else if(occupata[0]== true && occupata[1]== false){
               pc.printf("il parcheggio numero %d è libero\n", i + 2 ); 
               break;
           }else{
                pc.printf("appiennt\n");
                break;
                }*/                 
          // break;
       // }
    
    
    //}
   
   



//void thread sensori() {

}