lo slave
Dependencies: HCSR04 beep mbed-rtos mbed
main.cpp
- Committer:
- huntR
- Date:
- 2017-04-28
- Revision:
- 0:18d34f88c0c1
File content as of revision 0:18d34f88c0c1:
#include "mbed.h" #include "rtos.h" #include "hcsr04.h" #include "beep.h" //dichiarazioni let e sensori //sensori ad ultrasuoni /******************************/ //bluetooth Serial blue(D10,D2); /******************************/ HCSR04 sensor1(D15, D14); HCSR04 sensor2(D12, D13); //HCSR04 sensor3(D11, D9); /******************************/ //Led per le macchine DigitalOut rossoC(PA_0);//led DigitalOut gialloC(D5); DigitalOut verdeC(D3); /******************************/ //buzzer Beep buzzer(D4); /******************************/ //led per i pedoni DigitalOut rossoP(D6); DigitalOut gialloP(D7); DigitalOut verdeP(D8); /******************************/ /******************************/ //dichiarazione funzioni void giallo(); void semafori(); /******************************/ int i=0; char riceviBlue = '0'; /******************************/ //sensore semaforo 1 /******************************/ void sensori(void const *args){ while(true){ sensor1.start(); sensor2.start(); wait_ms(100); if (sensor1.get_dist_cm() < 10||sensor2.get_dist_cm() < 10){ wait(5); sensor1.start(); sensor2.start(); wait_ms(100); if (sensor1.get_dist_cm()< 10||sensor2.get_dist_cm()< 10){ blue.putc('1'); semafori(); } if(blue.readable()){ riceviBlue = blue.getc(); } if(riceviBlue == '1') { riceviBlue = '0'; semafori(); } } } } /******************************/ //sensore semaforo 2 /******************************/ /******************************/ int main(){ //inizializzazione /******************************/ rossoP=1; verdeP=0; gialloP=0; gialloC=0; rossoC=0; verdeC=1; blue.baud(38400); Thread th1(sensori); /******************************/ while(1) { if(blue.readable()){ riceviBlue = blue.getc(); } if(riceviBlue == '1') { riceviBlue = '0'; semafori(); } } } void giallo(){ //giallo per i pedoni e rosso per le macchine int n; do{ n=0; verdeP=0; gialloP=1; //bippata del buzzer /******************************/ for(i=0;i<10;i++){ buzzer.beep(500,0.1); gialloP=1; wait_ms(200); buzzer.nobeep(); buzzer.beep(1000,0.1); gialloP=1; gialloP=1; wait_ms(200); buzzer.nobeep(); gialloP=1; } /******************************/ wait_ms(100); }while(n==1); wait_ms(100); //per far si che arrivi il segnale al bluetooth del slave mandato dal master } 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,10); gialloC=0; rossoC=1; rossoP=0; verdeP=1; wait(10); buzzer.nobeep(); //giallo per i pedoni e rosso per le macchine do{ giallo(); riceviBlue=blue.getc(); }while(riceviBlue=='A'); //rosso ai pedoni e verde alle automobili gialloP=0; rossoP=1; rossoC=0; verdeC=1; wait_ms(5000); }