Pjesackiprijelaz1

Dependencies:   mbed

https://os.mbed.com/media/uploads/mkusec/shema01.pdf

Revision:
0:ff18e31de8bf
diff -r 000000000000 -r ff18e31de8bf main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Sep 21 10:28:30 2021 +0000
@@ -0,0 +1,70 @@
+#include "mbed.h" // pozivanje  biblioteke
+DigitalOut Cesta_Crveno(p5); //Postavljanje pinova p5-p10 kao izlaz za signalizaciju diodama
+DigitalOut Cesta_Zuto(p6);
+DigitalOut Cesta_Zeleno(p7);
+DigitalOut Zebra_Crveno(p8);
+DigitalOut Zebra_Zeleno(p9);
+InterruptIn Tipka(p20, PullUp); //Deklaracija pina p20 kao interuput
+Timeout Response;   // timeout timer
+
+bool Tipkalo = false;   //postavljanje početne vrijednosti
+                                
+void kliknutoTipkalo() {  //potprogram za detekciju interupta
+    Tipkalo = true;
+}
+
+void gasi() {           //funkcija koja se poziva na kraj timeout timera kako bi ugasila semafor za pjesake
+  Zebra_Zeleno = 0; 
+    Zebra_Crveno = 1;
+    Tipkalo = false;    //postavljanje vrijednosti na početno stanje
+
+}
+
+
+void autoSemafor() {    //funkcija koja kontinuirano pali i gasi semafor za automobile
+    Zebra_Crveno = 1;
+    Cesta_Crveno = 1;
+    wait(3);
+    
+    Cesta_Crveno = 1;
+    Cesta_Zuto = 1;
+    wait(2);
+    
+    Cesta_Zuto = 0;
+    Cesta_Crveno = 0;
+    Cesta_Zeleno = 1;
+    wait(3);
+    
+     Cesta_Zeleno = 1;
+    Cesta_Zuto = 1;
+    wait(2);
+    
+    Cesta_Zeleno = 0;
+    Cesta_Crveno = 1;
+     Cesta_Zuto = 0;
+     wait(1);
+}
+
+void pjesackisemafor() { //funkcija koja pali semafor za pjesake nakon detektiranog vanjskog interupta
+    Zebra_Crveno = 0;
+        wait(0.1);
+    Zebra_Zeleno = 1;
+    wait(3);
+        Response.attach(&gasi,2.0);  // naredba kojom se pokreče timeout timer
+   
+}
+        
+int main() { //Glavna funkcija
+    
+    
+    Tipka.fall(&kliknutoTipkalo);  // naredba koja detektira interupt promjenom stanja na pinu p20
+    
+    while(true) {               //beskonačna petlja koja pokreče funkciju autosemafor sve dok se ne promjeni stanje u u podprogramu tipkalo čime se pokreće fnkcija za pjesacki semafor
+
+        if(!Tipkalo) {  
+            autoSemafor(); 
+        } else {
+            pjesackisemafor();
+        }
+    }
+}
\ No newline at end of file