prog

Dependencies:   mbed mbed-rtos beep hcsr04

main.cpp

Committer:
CiroSamu
Date:
2019-03-27
Revision:
4:48754f3702d7
Parent:
3:272fb57c7fcb
Child:
5:8eb27286a3e3

File content as of revision 4:48754f3702d7:

#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[2] = {false};
/******************************/ 
 /*void button_thread(void const *args){

    while(1){
        if (mybutton==0){
            sensor1.start();
            sensor2.start();
            //!mybutton;
            }else break;
        
    //tentativo di programmare un bottone
           
    }
}*/
//sensore semaforo 1
/******************************/
void sensori(){
        sensor1.start();
        wait_ms(100);
        sensor2.start();         //partono i sensori
        wait_ms(100);                           
        sensor1.get_dist_cm();
        sensor2.get_dist_cm();
        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;
  }          

int main(){
   // pc.printf("prova");
    //while(true) {
       //Thread button_th(button_thread);
       
       sensori();
     //  blue.printf("prova");
       // if (mybutton==0) {  
        for (int i = 0; i < 2; i++)
        {
           if(occupata[0]== false && occupata[1]== 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;
                }
           
        }
    
    
    //}
   
   

}

//void thread sensori() {
    
    
//}