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
main.cpp@0:a30d2e391254, 2018-08-04 (annotated)
- Committer:
- tbogdan
- Date:
- Sat Aug 04 20:00:13 2018 +0000
- Revision:
- 0:a30d2e391254
- Child:
- 1:d78d84688e89
- Child:
- 2:7897e64de2f3
Ultrazvucni i tipka rade.
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 | led5=1; |
tbogdan | 0:a30d2e391254 | 32 | wait(2); |
tbogdan | 0:a30d2e391254 | 33 | semafor1 = 0b001100; |
tbogdan | 0:a30d2e391254 | 34 | semafor2 = 0b10001; //Semafor 2 pali se crveno svijetlo za pješake |
tbogdan | 0:a30d2e391254 | 35 | wait(5); |
tbogdan | 0:a30d2e391254 | 36 | semafor1 = 0b010100; //Semafor 1 pali se žuto svjetlo za aute |
tbogdan | 0:a30d2e391254 | 37 | semafor2 = 0b10010; |
tbogdan | 0:a30d2e391254 | 38 | wait(5); |
tbogdan | 0:a30d2e391254 | 39 | semafor1 = 0b100100; //Semafor 1 pali se crveno svjetlo za aute |
tbogdan | 0:a30d2e391254 | 40 | semafor2 = 0b10010; |
tbogdan | 0:a30d2e391254 | 41 | wait(1); |
tbogdan | 0:a30d2e391254 | 42 | semafor1 = 0b100101; //Semafor 1 pali se strelica za skretanje u lijevo |
tbogdan | 0:a30d2e391254 | 43 | semafor2 = 0b10010; |
tbogdan | 0:a30d2e391254 | 44 | wait(5); |
tbogdan | 0:a30d2e391254 | 45 | semafor1 = 0b100100; //Semafor 1 gasi se strelica za skretanje u lijevo |
tbogdan | 0:a30d2e391254 | 46 | semafor2 = 0b10010; |
tbogdan | 0:a30d2e391254 | 47 | wait(2); |
tbogdan | 0:a30d2e391254 | 48 | semafor1 = 0b100100; |
tbogdan | 0:a30d2e391254 | 49 | semafor2 = 0b11010; //Semafor 2 pali se žuto svjetlo za aute |
tbogdan | 0:a30d2e391254 | 50 | wait(5); |
tbogdan | 0:a30d2e391254 | 51 | semafor1 = 0b100010; //Semafor 1 pali se zeleno svjetlo za pješake |
tbogdan | 0:a30d2e391254 | 52 | semafor2 = 0b00110; //Semafor 2 pali se zeleno svjetlo za aute |
tbogdan | 0:a30d2e391254 | 53 | wait(10); |
tbogdan | 0:a30d2e391254 | 54 | semafor1 = 0b100100; //Semafor 1 pali crveno svjetlo za pješake |
tbogdan | 0:a30d2e391254 | 55 | semafor2 = 0b00110; |
tbogdan | 0:a30d2e391254 | 56 | wait(5); |
tbogdan | 0:a30d2e391254 | 57 | semafor1 = 0b100100; |
tbogdan | 0:a30d2e391254 | 58 | semafor2 = 0b01010; //Semafor 2 pali se žuto svjetlo za aute |
tbogdan | 0:a30d2e391254 | 59 | wait(5); |
tbogdan | 0:a30d2e391254 | 60 | semafor1 = 0b100100; |
tbogdan | 0:a30d2e391254 | 61 | semafor2 = 0b10010; //Semafor 2 pali se crveno svjetlo za aute |
tbogdan | 0:a30d2e391254 | 62 | wait(5); |
tbogdan | 0:a30d2e391254 | 63 | semafor1 = 0b110100; //Semafor 1 pali se žuto svjetlo za aute |
tbogdan | 0:a30d2e391254 | 64 | semafor2 = 0b10010; |
tbogdan | 0:a30d2e391254 | 65 | wait(5); |
tbogdan | 0:a30d2e391254 | 66 | pritisnuto=false; |
tbogdan | 0:a30d2e391254 | 67 | gotovo=false; |
tbogdan | 0:a30d2e391254 | 68 | } |
tbogdan | 0:a30d2e391254 | 69 | } |
tbogdan | 0:a30d2e391254 | 70 | int main() |
tbogdan | 0:a30d2e391254 | 71 | { |
tbogdan | 0:a30d2e391254 | 72 | button.fall(&gumb); |
tbogdan | 0:a30d2e391254 | 73 | |
tbogdan | 0:a30d2e391254 | 74 | echo.rise(&startTimer); |
tbogdan | 0:a30d2e391254 | 75 | echo.fall(&stopTimer); |
tbogdan | 0:a30d2e391254 | 76 | |
tbogdan | 0:a30d2e391254 | 77 | pj.attach(&pjesaci,1); |
tbogdan | 0:a30d2e391254 | 78 | |
tbogdan | 0:a30d2e391254 | 79 | while(1) { |
tbogdan | 0:a30d2e391254 | 80 | led5=1; |
tbogdan | 0:a30d2e391254 | 81 | wait(1); |
tbogdan | 0:a30d2e391254 | 82 | semafor1 = 0b001100; //Semafor 1 upaljeno zeleno za aute, a crveno za pješake |
tbogdan | 0:a30d2e391254 | 83 | semafor2 = 0b10001; //Semafor 2 upaljeno crveno za aute, a zeleno za pješake |
tbogdan | 0:a30d2e391254 | 84 | wait (5); // zeleno na glavnoj cesti |
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 | } |