Projektni zadatak iz Mikroupravljača - Mladenko Jurković

Dependencies:   mbed SeeedShieldBot BluetoothSerial

Files at this revision

API Documentation at this revision

Comitter:
mjurkovic
Date:
Tue Nov 24 17:02:29 2020 +0000
Commit message:
ok

Changed in this revision

BluetoothSerial.lib Show annotated file Show diff for this revision Revisions of this file
SeeedShieldBot.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BluetoothSerial.lib	Tue Nov 24 17:02:29 2020 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/yihui/code/BluetoothSerial/#f56002898ee8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SeeedShieldBot.lib	Tue Nov 24 17:02:29 2020 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/teams/components/code/SeeedShieldBot/#9fd1722259a1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Nov 24 17:02:29 2020 +0000
@@ -0,0 +1,153 @@
+#include"mbed.h"
+DigitalOut LEDcrvena(D7); //LED svjetlo za vozila
+DigitalOut LEDzuta(D6);     //LED svjetlo za vozila
+DigitalOut LEDzelena(D5);   //LED svjetlo za vozila
+
+DigitalOut LEDzelenapjesaci(D2);    //LED svjetlo za pješake
+DigitalOut LEDcrvenapjesaci(D3);    //LED svjetlo za pješake
+
+PwmOut z(D9);               //PWM izlaz za zvučnik
+InterruptIn tipkalo(D4);    //Tipkalo za pješake
+
+Ticker zv;              //Ticker za pozivanje zvuka
+Timer debounce;         //Timer za debounce
+void pjesaci(void);     //definiranje funkcije pjesaci
+void zvuk(void);        //definiranje funkcije zvuk
+
+int main()
+{
+    debounce.start();
+    tipkalo.rise(&pjesaci);  //pozivanje funkcije "pjesaci" koja odmah pali zeleno svjetlo za pješake, ukoliko je uključeno zeleno za vozila
+
+    while(1) {
+        zv.attach(&zvuk, 0.5);
+
+        LEDcrvena=1;
+        LEDcrvenapjesaci=1;
+        LEDzuta=0;
+        LEDzelena=0;
+        LEDzelenapjesaci=0;
+        wait(1);              //crveno svjetlo vozilima, sigurnosni prijelaz između svjetla za vozila i pješake
+
+        LEDcrvena=1;
+        LEDcrvenapjesaci=0;
+        LEDzuta=0;
+        LEDzelena=0;
+        LEDzelenapjesaci=1;
+        wait(12);       //zeleno za pješake
+
+        LEDcrvena=1;
+        LEDcrvenapjesaci=1;
+        LEDzuta=0;
+        LEDzelena=0;
+        LEDzelenapjesaci=0;
+        wait(1);        //pali se crvena za pješake, priprema za žuto odnosno zeleno svjetlo vozilima
+
+        LEDcrvena=1;
+        LEDcrvenapjesaci=1;
+        LEDzuta=1;
+        LEDzelena=0;
+        LEDzelenapjesaci=0;
+        wait(3);        //pali se žuto svjetlo - priprema za kretanje vozila
+
+        LEDcrvena=0;
+        LEDcrvenapjesaci=1;
+        LEDzuta=0;
+        LEDzelena=1;
+        LEDzelenapjesaci=0;
+        wait(15);       //zeleno svjetlo vozilima
+
+        LEDcrvena=0;
+        LEDcrvenapjesaci=1;
+        LEDzuta=1;
+        LEDzelena=0;
+        LEDzelenapjesaci=0;
+        wait(4);        //pali se žuto svjetlo, upozorenje da slijedi crveno svjetlo
+    }
+}
+void pjesaci()
+{
+    if(debounce.read_ms()>200) {
+        if(LEDzelena==1) {      //ako je zeleno svjetlo za vozila uključeno
+
+            z.period(0.5);
+            z=0.5;
+            wait(2);        //nakon pritiska tipke, zeleno svjetlo svjetli još 2 sekunde
+
+            LEDcrvena=0;
+            LEDcrvenapjesaci=1;
+            LEDzuta=1;
+            LEDzelena=0;
+            LEDzelenapjesaci=0;
+            z.period(0.5);
+            z=0.5;                 //zvuk za crveno svjetlo pjesacima
+            wait(4);            //pali se žuto svjetlo, priprema za crveno
+
+            LEDcrvena=1;
+            LEDcrvenapjesaci=1;
+            LEDzuta=0;
+            LEDzelena=0;
+            LEDzelenapjesaci=0;
+            z.period(0.5);
+            z=0.5;          //zvuk za crveno svjetlo pjesacima
+            wait(1);        //crveno svjetlo vozilima, sigurnosni prijelaz između svjetla za vozila i pješake
+
+            LEDcrvena=1;
+            LEDcrvenapjesaci=0;
+            LEDzuta=0;
+            LEDzelena=0;
+            LEDzelenapjesaci=1;
+            z.period(0.1);
+            z=0.5;              //zvuk za zeleno svjetlo pjesacima
+            wait(6);            //upalilo se crveno svjetlo vozilima, zeleno je pješacima
+
+            LEDcrvena=1;
+            LEDcrvenapjesaci=1;
+            LEDzuta=0;
+            LEDzelena=0;
+            LEDzelenapjesaci=0;
+            z.period(0.5);
+            z=0.5;              //zvuk za crveno svjetlo pjesacima
+            wait(1);           //pali se crveno pješacima
+
+            LEDcrvena=1;
+            LEDcrvenapjesaci=1;
+            LEDzuta=1;
+            LEDzelena=0;
+            LEDzelenapjesaci=0;
+            z.period(0.5);
+            z=0.5;              //zvuk za crveno svjetlo pjesacima
+            wait(4);            //uz crveno pješacima, pali se žuto svjetlo, priprema za zeleno za vozila
+
+            LEDcrvena=0;
+            LEDcrvenapjesaci=1;
+            LEDzuta=0;
+            LEDzelena=1;
+            LEDzelenapjesaci=0;
+            z.period(0.5);
+            z=0.5;              //zvuk za crveno svjetlo pjesacima
+            wait(15);           //pali se zeleno svjetlo za vozila
+
+            LEDcrvena=0;
+            LEDcrvenapjesaci=1;
+            LEDzuta=1;
+            LEDzelena=0;
+            LEDzelenapjesaci=0;
+            z.period(0.5);
+            z=0.5;              //zvuk za crveno svjetlo pjesacima
+            wait(4);            //pali se žuto svjetlo, priprema za crveno svjetlo vozilima
+
+        }
+        debounce.reset();
+    }
+}
+void zvuk()
+{
+    if(LEDzelenapjesaci==1) {
+        z.period(0.1); // definiranje PWM perioda za zvučnik --> zvuk za zeleno svjetlo pjesacima
+        z=0.5;  //aktivni ciklus na 50%, PWM frekvencija definira visinu reproduciranog zvuka
+    } else if(LEDzelenapjesaci==0) {
+        z.period(0.5);      //zvuk za crveno svjetlo pjesacima
+        z=0.5;          
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Nov 24 17:02:29 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file