Na semaforu 1 koji se nalazi na „glavnoj“ cesti upaljeno je zeleno svjetlo za automobile te crveno za pješake. Na semaforu 2 koji se nalazi na „sporednoj“ cesti upaljeno je crveno svjetlo za automobile te zeleno za pješake. Zamišljeno je da je na „glavnoj“ cesti konstantno upaljeno zeleno svjetlo kako bi bio brži „protok“ vozila, a na „sporednoj“ cesti crveno svjetlo sve dok ne naiđe automobil ili pješak koji želi prijeći cestu.
Dependencies: mbed
main.cpp@2:7897e64de2f3, 2018-08-05 (annotated)
- Committer:
- tbogdan
- Date:
- Sun Aug 05 19:04:45 2018 +0000
- Revision:
- 2:7897e64de2f3
- Parent:
- 0:a30d2e391254
- Child:
- 3:7d80fb2473cc
100% radi svjetla i sve
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tbogdan | 0:a30d2e391254 | 1 | #include "mbed.h" |
tbogdan | 0:a30d2e391254 | 2 | Serial pc(USBTX,USBRX); |
tbogdan | 0:a30d2e391254 | 3 | BusOut semafor1(D7,D6,D5,D4,D3,D2); |
tbogdan | 0:a30d2e391254 | 4 | BusOut semafor2(D12,D11,D10,D9,D8); |
tbogdan | 0:a30d2e391254 | 5 | DigitalOut led5(D7); |
tbogdan | 0:a30d2e391254 | 6 | Timer t; |
tbogdan | 0:a30d2e391254 | 7 | Ticker pj; |
tbogdan | 0:a30d2e391254 | 8 | InterruptIn button(PC_13); |
tbogdan | 0:a30d2e391254 | 9 | InterruptIn echo(PB_15); |
tbogdan | 0:a30d2e391254 | 10 | DigitalOut trigger(PB_13); |
tbogdan | 0:a30d2e391254 | 11 | bool gotovo=false; |
tbogdan | 0:a30d2e391254 | 12 | bool pritisnuto=false; |
tbogdan | 0:a30d2e391254 | 13 | void startTimer() |
tbogdan | 0:a30d2e391254 | 14 | { |
tbogdan | 0:a30d2e391254 | 15 | t.start(); |
tbogdan | 0:a30d2e391254 | 16 | } |
tbogdan | 0:a30d2e391254 | 17 | |
tbogdan | 0:a30d2e391254 | 18 | void stopTimer() |
tbogdan | 0:a30d2e391254 | 19 | { |
tbogdan | 0:a30d2e391254 | 20 | t.stop(); |
tbogdan | 0:a30d2e391254 | 21 | } |
tbogdan | 0:a30d2e391254 | 22 | |
tbogdan | 0:a30d2e391254 | 23 | void gumb() |
tbogdan | 0:a30d2e391254 | 24 | { |
tbogdan | 0:a30d2e391254 | 25 | pritisnuto=true; |
tbogdan | 0:a30d2e391254 | 26 | } |
tbogdan | 0:a30d2e391254 | 27 | |
tbogdan | 0:a30d2e391254 | 28 | void pjesaci() |
tbogdan | 0:a30d2e391254 | 29 | { |
tbogdan | 0:a30d2e391254 | 30 | if(pritisnuto==true && gotovo==true) { |
tbogdan | 0:a30d2e391254 | 31 | wait(2); |
tbogdan | 0:a30d2e391254 | 32 | semafor1 = 0b001100; |
tbogdan | 2:7897e64de2f3 | 33 | semafor2 = 0b10010; //Semafor 2 pali se crveno svijetlo za pješake |
tbogdan | 0:a30d2e391254 | 34 | wait(5); |
tbogdan | 0:a30d2e391254 | 35 | semafor1 = 0b010100; //Semafor 1 pali se žuto svjetlo za aute |
tbogdan | 0:a30d2e391254 | 36 | semafor2 = 0b10010; |
tbogdan | 0:a30d2e391254 | 37 | wait(5); |
tbogdan | 0:a30d2e391254 | 38 | semafor1 = 0b100100; //Semafor 1 pali se crveno svjetlo za aute |
tbogdan | 0:a30d2e391254 | 39 | semafor2 = 0b10010; |
tbogdan | 0:a30d2e391254 | 40 | wait(1); |
tbogdan | 0:a30d2e391254 | 41 | semafor1 = 0b100101; //Semafor 1 pali se strelica za skretanje u lijevo |
tbogdan | 0:a30d2e391254 | 42 | semafor2 = 0b10010; |
tbogdan | 0:a30d2e391254 | 43 | wait(5); |
tbogdan | 0:a30d2e391254 | 44 | semafor1 = 0b100100; //Semafor 1 gasi se strelica za skretanje u lijevo |
tbogdan | 0:a30d2e391254 | 45 | semafor2 = 0b10010; |
tbogdan | 0:a30d2e391254 | 46 | wait(2); |
tbogdan | 0:a30d2e391254 | 47 | semafor1 = 0b100100; |
tbogdan | 0:a30d2e391254 | 48 | semafor2 = 0b11010; //Semafor 2 pali se žuto svjetlo za aute |
tbogdan | 0:a30d2e391254 | 49 | wait(5); |
tbogdan | 0:a30d2e391254 | 50 | semafor1 = 0b100010; //Semafor 1 pali se zeleno svjetlo za pješake |
tbogdan | 0:a30d2e391254 | 51 | semafor2 = 0b00110; //Semafor 2 pali se zeleno svjetlo za aute |
tbogdan | 0:a30d2e391254 | 52 | wait(10); |
tbogdan | 0:a30d2e391254 | 53 | semafor1 = 0b100100; //Semafor 1 pali crveno svjetlo za pješake |
tbogdan | 0:a30d2e391254 | 54 | semafor2 = 0b00110; |
tbogdan | 0:a30d2e391254 | 55 | wait(5); |
tbogdan | 0:a30d2e391254 | 56 | semafor1 = 0b100100; |
tbogdan | 0:a30d2e391254 | 57 | semafor2 = 0b01010; //Semafor 2 pali se žuto svjetlo za aute |
tbogdan | 0:a30d2e391254 | 58 | wait(5); |
tbogdan | 0:a30d2e391254 | 59 | semafor1 = 0b100100; |
tbogdan | 0:a30d2e391254 | 60 | semafor2 = 0b10010; //Semafor 2 pali se crveno svjetlo za aute |
tbogdan | 0:a30d2e391254 | 61 | wait(5); |
tbogdan | 0:a30d2e391254 | 62 | semafor1 = 0b110100; //Semafor 1 pali se žuto svjetlo za aute |
tbogdan | 0:a30d2e391254 | 63 | semafor2 = 0b10010; |
tbogdan | 0:a30d2e391254 | 64 | wait(5); |
tbogdan | 0:a30d2e391254 | 65 | pritisnuto=false; |
tbogdan | 0:a30d2e391254 | 66 | gotovo=false; |
tbogdan | 0:a30d2e391254 | 67 | } |
tbogdan | 0:a30d2e391254 | 68 | } |
tbogdan | 0:a30d2e391254 | 69 | int main() |
tbogdan | 0:a30d2e391254 | 70 | { |
tbogdan | 0:a30d2e391254 | 71 | button.fall(&gumb); |
tbogdan | 0:a30d2e391254 | 72 | |
tbogdan | 0:a30d2e391254 | 73 | echo.rise(&startTimer); |
tbogdan | 0:a30d2e391254 | 74 | echo.fall(&stopTimer); |
tbogdan | 0:a30d2e391254 | 75 | |
tbogdan | 0:a30d2e391254 | 76 | pj.attach(&pjesaci,1); |
tbogdan | 0:a30d2e391254 | 77 | |
tbogdan | 0:a30d2e391254 | 78 | while(1) { |
tbogdan | 0:a30d2e391254 | 79 | led5=1; |
tbogdan | 0:a30d2e391254 | 80 | wait(1); |
tbogdan | 0:a30d2e391254 | 81 | semafor1 = 0b001100; //Semafor 1 upaljeno zeleno za aute, a crveno za pješake |
tbogdan | 0:a30d2e391254 | 82 | semafor2 = 0b10001; //Semafor 2 upaljeno crveno za aute, a zeleno za pješake |
tbogdan | 0:a30d2e391254 | 83 | wait (5); // zeleno na glavnoj cesti |
tbogdan | 2:7897e64de2f3 | 84 | |
tbogdan | 0:a30d2e391254 | 85 | trigger = 1; |
tbogdan | 0:a30d2e391254 | 86 | wait_us(10); |
tbogdan | 0:a30d2e391254 | 87 | trigger = 0; |
tbogdan | 0:a30d2e391254 | 88 | wait(1); |
tbogdan | 0:a30d2e391254 | 89 | float distance = t.read() * 1e6 / 58; |
tbogdan | 0:a30d2e391254 | 90 | pc.printf("------ %f\n",distance); |
tbogdan | 0:a30d2e391254 | 91 | t.reset(); |
tbogdan | 0:a30d2e391254 | 92 | if (distance >= 10 && distance <= 20) { |
tbogdan | 0:a30d2e391254 | 93 | pritisnuto=true; |
tbogdan | 0:a30d2e391254 | 94 | } |
tbogdan | 0:a30d2e391254 | 95 | gotovo=true; |
tbogdan | 0:a30d2e391254 | 96 | |
tbogdan | 0:a30d2e391254 | 97 | } |
tbogdan | 0:a30d2e391254 | 98 | } |