Semafor za pjesake.
Dependencies: mbed SeeedShieldBot BluetoothSerial buzzer
Fork of SABLJIC_SEMAFORPROJEKT by
main.cpp
00001 #include "mbed.h" // pozivanje biblioteke 00002 #include "buzzer.h" 00003 00004 DigitalOut Crveno(D4); //Postavljanje pinova D4 i D5 kao izlaz za signalizaciju diodama 00005 DigitalOut Zeleno(D5); 00006 00007 InterruptIn Tipka(USER_BUTTON);//Deklaracija pina USER kao interupt 00008 Timeout Response; 00009 Beep buzzer(D2); 00010 Ticker ticker; 00011 00012 void sound() { 00013 if(Zeleno == 1) { 00014 buzzer.beep(400, 1.5); 00015 } else if(Crveno == 1) { 00016 buzzer.beep(200, 0.5); 00017 } 00018 } 00019 00020 00021 bool Tipkalo = false; //postavljanje početne vrijednosti 00022 00023 void Tipkastisnuta() { //potprogram za detekciju interupta 00024 Tipkalo = true; 00025 } 00026 00027 void semaforcrveno(){ //glavna funkcija koja radi cijelo vrijeme dok se ne stisne gumb 00028 Zeleno = 0; 00029 Crveno=1; 00030 } 00031 00032 void pjesackisemafor() { //funkcija koja pali semafor za pjesake nakon detektiranog vanjskog interupta 00033 00034 if(Tipkalo == true){ 00035 Crveno = 0; 00036 wait(0.1); 00037 Zeleno = 1; 00038 wait(3); 00039 Response.attach(&semaforcrveno,2.0); // naredba kojom se pokreče timeout timer 00040 Tipkalo=false; //vraća na pocetnu vrijednost 00041 } 00042 00043 } 00044 int main() { 00045 00046 ticker.attach(&sound, 1.0); 00047 Tipka.fall(&Tipkastisnuta); // naredba koja detektira interupt promjenom stanja 00048 00049 00050 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 00051 if(!Tipka) { 00052 semaforcrveno(); 00053 } else { 00054 pjesackisemafor(); 00055 } 00056 } 00057 00058 }
Generated on Wed Oct 12 2022 19:19:01 by 1.7.2