semafor za pješake
Dependencies: zvucnik_lib
main.cpp@0:db6faf8aaada, 2021-12-09 (annotated)
- Committer:
- dgrobensk
- Date:
- Thu Dec 09 12:54:21 2021 +0000
- Revision:
- 0:db6faf8aaada
konstrukcijski zadatak
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dgrobensk | 0:db6faf8aaada | 1 | //Kosntrukcijski_Grobenski_Semafor |
dgrobensk | 0:db6faf8aaada | 2 | |
dgrobensk | 0:db6faf8aaada | 3 | #include "mbed.h" |
dgrobensk | 0:db6faf8aaada | 4 | #include "buzzer.h" |
dgrobensk | 0:db6faf8aaada | 5 | |
dgrobensk | 0:db6faf8aaada | 6 | DigitalOut redled(A0); //pin A0 digitalni izlaz |
dgrobensk | 0:db6faf8aaada | 7 | DigitalOut yellowled(A1); //pin A1 digitalni izlaz |
dgrobensk | 0:db6faf8aaada | 8 | DigitalOut greenled(A2); //pin A2 digitalni izlaz |
dgrobensk | 0:db6faf8aaada | 9 | DigitalOut LED(LED2); //digitalni izlaz |
dgrobensk | 0:db6faf8aaada | 10 | Beep buzzer(D7); //pin D7 za buzzer |
dgrobensk | 0:db6faf8aaada | 11 | |
dgrobensk | 0:db6faf8aaada | 12 | float vrijeme = 1; //vrijeme |
dgrobensk | 0:db6faf8aaada | 13 | float fr1 = 850; //varijabla frekvencija zvuka 1 |
dgrobensk | 0:db6faf8aaada | 14 | float fr2 = 350; //varijabla frekvencija zvuka 2 |
dgrobensk | 0:db6faf8aaada | 15 | |
dgrobensk | 0:db6faf8aaada | 16 | InterruptIn gumb(USER_BUTTON); |
dgrobensk | 0:db6faf8aaada | 17 | |
dgrobensk | 0:db6faf8aaada | 18 | Ticker flipper; |
dgrobensk | 0:db6faf8aaada | 19 | Timer debounce; |
dgrobensk | 0:db6faf8aaada | 20 | |
dgrobensk | 0:db6faf8aaada | 21 | |
dgrobensk | 0:db6faf8aaada | 22 | void svjetljenje(void); |
dgrobensk | 0:db6faf8aaada | 23 | void toggle(void); |
dgrobensk | 0:db6faf8aaada | 24 | |
dgrobensk | 0:db6faf8aaada | 25 | int main() |
dgrobensk | 0:db6faf8aaada | 26 | { |
dgrobensk | 0:db6faf8aaada | 27 | while (1) { |
dgrobensk | 0:db6faf8aaada | 28 | |
dgrobensk | 0:db6faf8aaada | 29 | redled = 1; |
dgrobensk | 0:db6faf8aaada | 30 | flipper.attach(&svjetljenje,0.5); |
dgrobensk | 0:db6faf8aaada | 31 | debounce.start(); |
dgrobensk | 0:db6faf8aaada | 32 | gumb.rise(&toggle); |
dgrobensk | 0:db6faf8aaada | 33 | |
dgrobensk | 0:db6faf8aaada | 34 | if(LED==1) { |
dgrobensk | 0:db6faf8aaada | 35 | |
dgrobensk | 0:db6faf8aaada | 36 | redled = 1; |
dgrobensk | 0:db6faf8aaada | 37 | greenled = 0; |
dgrobensk | 0:db6faf8aaada | 38 | if(redled=1) { |
dgrobensk | 0:db6faf8aaada | 39 | for (int i=0; i<=3; i++) { |
dgrobensk | 0:db6faf8aaada | 40 | buzzer.beep(fr1,vrijeme); //buzzer određen frekvencijom freq1 i vremenom |
dgrobensk | 0:db6faf8aaada | 41 | wait(vrijeme); |
dgrobensk | 0:db6faf8aaada | 42 | } |
dgrobensk | 0:db6faf8aaada | 43 | } |
dgrobensk | 0:db6faf8aaada | 44 | |
dgrobensk | 0:db6faf8aaada | 45 | wait(vrijeme); |
dgrobensk | 0:db6faf8aaada | 46 | |
dgrobensk | 0:db6faf8aaada | 47 | redled = 0; |
dgrobensk | 0:db6faf8aaada | 48 | greenled = 1; |
dgrobensk | 0:db6faf8aaada | 49 | |
dgrobensk | 0:db6faf8aaada | 50 | if(greenled=1) { |
dgrobensk | 0:db6faf8aaada | 51 | for (int i=0; i<=3; i++) { |
dgrobensk | 0:db6faf8aaada | 52 | buzzer.beep(fr2,vrijeme); //buzzer određen frekvencijom freq1 i vremenom |
dgrobensk | 0:db6faf8aaada | 53 | wait(vrijeme); |
dgrobensk | 0:db6faf8aaada | 54 | } |
dgrobensk | 0:db6faf8aaada | 55 | } |
dgrobensk | 0:db6faf8aaada | 56 | |
dgrobensk | 0:db6faf8aaada | 57 | } else { |
dgrobensk | 0:db6faf8aaada | 58 | greenled=0; |
dgrobensk | 0:db6faf8aaada | 59 | redled=1; |
dgrobensk | 0:db6faf8aaada | 60 | } |
dgrobensk | 0:db6faf8aaada | 61 | |
dgrobensk | 0:db6faf8aaada | 62 | } |
dgrobensk | 0:db6faf8aaada | 63 | |
dgrobensk | 0:db6faf8aaada | 64 | } |
dgrobensk | 0:db6faf8aaada | 65 | void svjetljenje(void) //titranje zute ledice |
dgrobensk | 0:db6faf8aaada | 66 | { |
dgrobensk | 0:db6faf8aaada | 67 | yellowled=!yellowled; |
dgrobensk | 0:db6faf8aaada | 68 | } |
dgrobensk | 0:db6faf8aaada | 69 | |
dgrobensk | 0:db6faf8aaada | 70 | void toggle() //za debounce i mijenjanje stanja integrirane ledice |
dgrobensk | 0:db6faf8aaada | 71 | { |
dgrobensk | 0:db6faf8aaada | 72 | if (debounce.read_ms()>200) |
dgrobensk | 0:db6faf8aaada | 73 | LED=!LED; |
dgrobensk | 0:db6faf8aaada | 74 | greenled=0; |
dgrobensk | 0:db6faf8aaada | 75 | debounce.reset(); |
dgrobensk | 0:db6faf8aaada | 76 | } |