Semafor za pjesake.

Dependencies:   mbed SeeedShieldBot BluetoothSerial buzzer

Fork of SABLJIC_SEMAFORPROJEKT by Stella Sabljic

main.cpp

Committer:
ssabljic
Date:
2021-12-02
Revision:
1:232c3adbe1ae
Parent:
0:9d0f8e1955b1

File content as of revision 1:232c3adbe1ae:

#include "mbed.h" // pozivanje  biblioteke
#include "buzzer.h"

DigitalOut Crveno(D4); //Postavljanje pinova D4 i D5 kao izlaz za signalizaciju diodama
DigitalOut Zeleno(D5);

InterruptIn Tipka(USER_BUTTON);//Deklaracija pina USER kao interupt
Timeout Response; 
Beep buzzer(D2);
Ticker ticker;

void sound() {
    if(Zeleno == 1) {
        buzzer.beep(400, 1.5);
    } else if(Crveno == 1) {
        buzzer.beep(200, 0.5);
    }
}


bool Tipkalo = false;   //postavljanje početne vrijednosti
                               
void Tipkastisnuta() {  //potprogram za detekciju interupta
    Tipkalo = true;
}

void semaforcrveno(){ //glavna funkcija koja radi cijelo vrijeme dok se ne stisne gumb
   Zeleno = 0; 
   Crveno=1;
   } 

void pjesackisemafor() { //funkcija koja pali semafor za pjesake nakon detektiranog vanjskog interupta

    if(Tipkalo == true){      
    Crveno = 0;
    wait(0.1);
    Zeleno = 1;
    wait(3);
    Response.attach(&semaforcrveno,2.0);  // naredba kojom se pokreče timeout timer   
    Tipkalo=false; //vraća na pocetnu vrijednost
    }
 
  }     
int main() { 

    ticker.attach(&sound, 1.0); 
    Tipka.fall(&Tipkastisnuta);  // naredba koja detektira interupt promjenom stanja     
    
    
     while(true){    //beskonačna petlja koja pokreče funkciju  sve dok se ne promjeni stanje u podprogramu tipkalo čime se pokreće fnkcija za pjesacki semafor
        if(!Tipka) {  
            semaforcrveno(); 
        } else {
            pjesackisemafor();
        }
      }
    
}