Semafor za pjesake.
Dependencies: mbed SeeedShieldBot BluetoothSerial buzzer
Fork of SABLJIC_SEMAFORPROJEKT by
main.cpp
- Committer:
- ssabljic
- Date:
- 2021-12-02
- Revision:
- 0:9d0f8e1955b1
File content as of revision 0:9d0f8e1955b1:
#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(); } } }