aggiornato con servomotore e display
Dependencies: mbed Servo mbed-rtos beep hcsr04 TextLCD
main.cpp
- Committer:
- CiroSamu
- Date:
- 2019-03-28
- Revision:
- 6:0088253be231
- Parent:
- 5:8eb27286a3e3
- Child:
- 7:8ad50e27d002
File content as of revision 6:0088253be231:
#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){ bool sos= false; //false== libero //true== occupato while(1){ if (mybutton==0){ int i=0; sos = false; do{ i++; if(occupata[i]== false){ pc.printf("il parcheggio numero %d e libero\t",i); sos=true; // if(occupata[1]==true && occupata[2]==true) //sos = !sos; }/*else if(sos==false && i==2){ pc.printf("tutti i parcheggi sono occupati"); break; }//else if(occupata[1]==true && occupata[2]==true) pc.printf("tutti i parcheggi sono occupati"); */ }while(i<2); // if(occupata[1]==true && occupata[2]==true) pc.printf("tutti i parcheggi sono occupati"); if(sos==false) pc.printf("tutti i parcheggi sono occupati"); } } } //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() < 10.0 && occupata[1] == false) //se uno dei sensori capta una distanza minore 10 occupata[1] = true; else occupata[1] = false; if(sensor2.get_dist_cm() < 10.0 && 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(); } }