Semafor za pjesake.

Dependencies:   mbed SeeedShieldBot BluetoothSerial buzzer

Fork of SABLJIC_SEMAFORPROJEKT by Stella Sabljic

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }