Semafor za pjesake.
Dependencies: mbed SeeedShieldBot BluetoothSerial buzzer
Fork of SABLJIC_SEMAFORPROJEKT by
Diff: main.cpp
- Revision:
- 0:9d0f8e1955b1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Dec 02 21:08:00 2021 +0000 @@ -0,0 +1,58 @@ +#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(); + } + } + +} \ No newline at end of file