Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 0:a30d2e391254
- Child:
- 1:d78d84688e89
- Child:
- 2:7897e64de2f3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Sat Aug 04 20:00:13 2018 +0000
@@ -0,0 +1,98 @@
+#include "mbed.h"
+Serial pc(USBTX,USBRX);
+BusOut semafor1(D7,D6,D5,D4,D3,D2);
+BusOut semafor2(D12,D11,D10,D9,D8);
+DigitalOut led5(D7);
+Timer t;
+Ticker pj;
+InterruptIn button(PC_13);
+InterruptIn echo(PB_15);
+DigitalOut trigger(PB_13);
+bool gotovo=false;
+bool pritisnuto=false;
+void startTimer()
+{
+ t.start();
+}
+
+void stopTimer()
+{
+ t.stop();
+}
+
+void gumb()
+{
+ pritisnuto=true;
+}
+
+void pjesaci()
+{
+ if(pritisnuto==true && gotovo==true) {
+ led5=1;
+ wait(2);
+ semafor1 = 0b001100;
+ semafor2 = 0b10001; //Semafor 2 pali se crveno svijetlo za pješake
+ wait(5);
+ semafor1 = 0b010100; //Semafor 1 pali se žuto svjetlo za aute
+ semafor2 = 0b10010;
+ wait(5);
+ semafor1 = 0b100100; //Semafor 1 pali se crveno svjetlo za aute
+ semafor2 = 0b10010;
+ wait(1);
+ semafor1 = 0b100101; //Semafor 1 pali se strelica za skretanje u lijevo
+ semafor2 = 0b10010;
+ wait(5);
+ semafor1 = 0b100100; //Semafor 1 gasi se strelica za skretanje u lijevo
+ semafor2 = 0b10010;
+ wait(2);
+ semafor1 = 0b100100;
+ semafor2 = 0b11010; //Semafor 2 pali se žuto svjetlo za aute
+ wait(5);
+ semafor1 = 0b100010; //Semafor 1 pali se zeleno svjetlo za pješake
+ semafor2 = 0b00110; //Semafor 2 pali se zeleno svjetlo za aute
+ wait(10);
+ semafor1 = 0b100100; //Semafor 1 pali crveno svjetlo za pješake
+ semafor2 = 0b00110;
+ wait(5);
+ semafor1 = 0b100100;
+ semafor2 = 0b01010; //Semafor 2 pali se žuto svjetlo za aute
+ wait(5);
+ semafor1 = 0b100100;
+ semafor2 = 0b10010; //Semafor 2 pali se crveno svjetlo za aute
+ wait(5);
+ semafor1 = 0b110100; //Semafor 1 pali se žuto svjetlo za aute
+ semafor2 = 0b10010;
+ wait(5);
+ pritisnuto=false;
+ gotovo=false;
+ }
+}
+int main()
+{
+ button.fall(&gumb);
+
+ echo.rise(&startTimer);
+ echo.fall(&stopTimer);
+
+ pj.attach(&pjesaci,1);
+
+ while(1) {
+ led5=1;
+ wait(1);
+ semafor1 = 0b001100; //Semafor 1 upaljeno zeleno za aute, a crveno za pješake
+ semafor2 = 0b10001; //Semafor 2 upaljeno crveno za aute, a zeleno za pješake
+ wait (5); // zeleno na glavnoj cesti
+ trigger = 1;
+ wait_us(10);
+ trigger = 0;
+ wait(1);
+ float distance = t.read() * 1e6 / 58;
+ pc.printf("------ %f\n",distance);
+ t.reset();
+ if (distance >= 10 && distance <= 20) {
+ pritisnuto=true;
+ }
+ gotovo=true;
+
+ }
+}
\ No newline at end of file