stipe bartulovic
/
Bartulovic_igracka_za_djecu
Tehnicko veleuciliste u Zagrebu. Mikroupravljaci, 2020.
main.cpp@0:dffdc90cbbbd, 2020-11-19 (annotated)
- Committer:
- sbartulov
- Date:
- Thu Nov 19 16:16:19 2020 +0000
- Revision:
- 0:dffdc90cbbbd
Tehnicko veleuciliste u Zagrebu.; Elektrotehnicki odjel.; Mikroupravljaci, 2020.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sbartulov | 0:dffdc90cbbbd | 1 | |
sbartulov | 0:dffdc90cbbbd | 2 | #include "mbed.h" |
sbartulov | 0:dffdc90cbbbd | 3 | #include "titranje.h" |
sbartulov | 0:dffdc90cbbbd | 4 | AnalogIn pot(A0); // crveni kabel |
sbartulov | 0:dffdc90cbbbd | 5 | InterruptIn tipkalo(D2,PullUp); //tipkalo |
sbartulov | 0:dffdc90cbbbd | 6 | DigitalOut crvena(D13); |
sbartulov | 0:dffdc90cbbbd | 7 | DigitalOut zuta(D12); |
sbartulov | 0:dffdc90cbbbd | 8 | DigitalOut zelena(D11); |
sbartulov | 0:dffdc90cbbbd | 9 | DigitalOut e(D4); //tamnoplavi kabel |
sbartulov | 0:dffdc90cbbbd | 10 | DigitalOut f(D5); //ljubičasti kabel |
sbartulov | 0:dffdc90cbbbd | 11 | DigitalOut b(D6); //sivi kabel |
sbartulov | 0:dffdc90cbbbd | 12 | DigitalOut c(D7); //bijeli kabel |
sbartulov | 0:dffdc90cbbbd | 13 | PwmOut buzzer(D10); //narancasti kabel |
sbartulov | 0:dffdc90cbbbd | 14 | |
sbartulov | 0:dffdc90cbbbd | 15 | Ticker mamacL; |
sbartulov | 0:dffdc90cbbbd | 16 | Ticker mamacD; |
sbartulov | 0:dffdc90cbbbd | 17 | Timer debounce; |
sbartulov | 0:dffdc90cbbbd | 18 | |
sbartulov | 0:dffdc90cbbbd | 19 | float datap; |
sbartulov | 0:dffdc90cbbbd | 20 | int on=1, off=0; |
sbartulov | 0:dffdc90cbbbd | 21 | |
sbartulov | 0:dffdc90cbbbd | 22 | float frequency[]={659,554,659,554,550,494,554,587,494,659,554,440}; //frequency array oranges and lemo |
sbartulov | 0:dffdc90cbbbd | 23 | float beat[]={1,1,1,1,1,0.5,0.5,1,1,1,1,2}; |
sbartulov | 0:dffdc90cbbbd | 24 | |
sbartulov | 0:dffdc90cbbbd | 25 | void zvuk(void); |
sbartulov | 0:dffdc90cbbbd | 26 | void titrajL(void); |
sbartulov | 0:dffdc90cbbbd | 27 | void titrajD(void); |
sbartulov | 0:dffdc90cbbbd | 28 | void blink(void); |
sbartulov | 0:dffdc90cbbbd | 29 | void blinkL(void); |
sbartulov | 0:dffdc90cbbbd | 30 | void blinkD(void); |
sbartulov | 0:dffdc90cbbbd | 31 | titranje led(LED2); |
sbartulov | 0:dffdc90cbbbd | 32 | |
sbartulov | 0:dffdc90cbbbd | 33 | int main() { |
sbartulov | 0:dffdc90cbbbd | 34 | debounce.start(); |
sbartulov | 0:dffdc90cbbbd | 35 | buzzer=off; |
sbartulov | 0:dffdc90cbbbd | 36 | tipkalo.rise(&zvuk); |
sbartulov | 0:dffdc90cbbbd | 37 | led.stanje_ok(); |
sbartulov | 0:dffdc90cbbbd | 38 | |
sbartulov | 0:dffdc90cbbbd | 39 | while (1){ |
sbartulov | 0:dffdc90cbbbd | 40 | datap=pot.read(); |
sbartulov | 0:dffdc90cbbbd | 41 | |
sbartulov | 0:dffdc90cbbbd | 42 | if (datap<=0.5) { |
sbartulov | 0:dffdc90cbbbd | 43 | mamacL.attach(&blinkL,0.4); |
sbartulov | 0:dffdc90cbbbd | 44 | f=e=1; |
sbartulov | 0:dffdc90cbbbd | 45 | b=c=0; |
sbartulov | 0:dffdc90cbbbd | 46 | titrajL();} |
sbartulov | 0:dffdc90cbbbd | 47 | else{ |
sbartulov | 0:dffdc90cbbbd | 48 | mamacD.attach(&blinkD,0.4); |
sbartulov | 0:dffdc90cbbbd | 49 | f=e=0; |
sbartulov | 0:dffdc90cbbbd | 50 | b=c=1; |
sbartulov | 0:dffdc90cbbbd | 51 | titrajD();} |
sbartulov | 0:dffdc90cbbbd | 52 | |
sbartulov | 0:dffdc90cbbbd | 53 | }} |
sbartulov | 0:dffdc90cbbbd | 54 | |
sbartulov | 0:dffdc90cbbbd | 55 | void zvuk(void) { |
sbartulov | 0:dffdc90cbbbd | 56 | crvena=zuta=zelena=1; |
sbartulov | 0:dffdc90cbbbd | 57 | b=c=f=e=1; |
sbartulov | 0:dffdc90cbbbd | 58 | |
sbartulov | 0:dffdc90cbbbd | 59 | if(debounce.read_ms()>200){ |
sbartulov | 0:dffdc90cbbbd | 60 | |
sbartulov | 0:dffdc90cbbbd | 61 | for (int i=0; i<=12; i++) { |
sbartulov | 0:dffdc90cbbbd | 62 | blink(); |
sbartulov | 0:dffdc90cbbbd | 63 | |
sbartulov | 0:dffdc90cbbbd | 64 | buzzer.period(1/(frequency[i])); // set PWM period |
sbartulov | 0:dffdc90cbbbd | 65 | buzzer=0.5; // set duty cycle |
sbartulov | 0:dffdc90cbbbd | 66 | wait(0.5*beat[i]); |
sbartulov | 0:dffdc90cbbbd | 67 | if(i==12){ |
sbartulov | 0:dffdc90cbbbd | 68 | buzzer=off; |
sbartulov | 0:dffdc90cbbbd | 69 | |
sbartulov | 0:dffdc90cbbbd | 70 | debounce.reset(); |
sbartulov | 0:dffdc90cbbbd | 71 | break;} |
sbartulov | 0:dffdc90cbbbd | 72 | } |
sbartulov | 0:dffdc90cbbbd | 73 | } } |
sbartulov | 0:dffdc90cbbbd | 74 | |
sbartulov | 0:dffdc90cbbbd | 75 | void blinkL(void) { |
sbartulov | 0:dffdc90cbbbd | 76 | f=!f; |
sbartulov | 0:dffdc90cbbbd | 77 | e=!e; |
sbartulov | 0:dffdc90cbbbd | 78 | mamacL.detach();} |
sbartulov | 0:dffdc90cbbbd | 79 | |
sbartulov | 0:dffdc90cbbbd | 80 | void blinkD(void) { |
sbartulov | 0:dffdc90cbbbd | 81 | b=!b; |
sbartulov | 0:dffdc90cbbbd | 82 | c=!c; |
sbartulov | 0:dffdc90cbbbd | 83 | mamacD.detach();} |
sbartulov | 0:dffdc90cbbbd | 84 | |
sbartulov | 0:dffdc90cbbbd | 85 | void titrajL(void) { |
sbartulov | 0:dffdc90cbbbd | 86 | crvena=1; |
sbartulov | 0:dffdc90cbbbd | 87 | zuta=0; |
sbartulov | 0:dffdc90cbbbd | 88 | zelena=0; |
sbartulov | 0:dffdc90cbbbd | 89 | wait(0.4); |
sbartulov | 0:dffdc90cbbbd | 90 | crvena=1; |
sbartulov | 0:dffdc90cbbbd | 91 | zuta=1; |
sbartulov | 0:dffdc90cbbbd | 92 | zelena=0; |
sbartulov | 0:dffdc90cbbbd | 93 | wait(0.4); |
sbartulov | 0:dffdc90cbbbd | 94 | crvena=1; |
sbartulov | 0:dffdc90cbbbd | 95 | zuta=1; |
sbartulov | 0:dffdc90cbbbd | 96 | zelena=1; |
sbartulov | 0:dffdc90cbbbd | 97 | wait(0.4); |
sbartulov | 0:dffdc90cbbbd | 98 | crvena=1; |
sbartulov | 0:dffdc90cbbbd | 99 | zuta=1; |
sbartulov | 0:dffdc90cbbbd | 100 | zelena=0; |
sbartulov | 0:dffdc90cbbbd | 101 | wait(0.4); |
sbartulov | 0:dffdc90cbbbd | 102 | crvena=1; |
sbartulov | 0:dffdc90cbbbd | 103 | zuta=0; |
sbartulov | 0:dffdc90cbbbd | 104 | zelena=0; |
sbartulov | 0:dffdc90cbbbd | 105 | wait(0.4); |
sbartulov | 0:dffdc90cbbbd | 106 | crvena=0; |
sbartulov | 0:dffdc90cbbbd | 107 | zuta=0; |
sbartulov | 0:dffdc90cbbbd | 108 | zelena=0; |
sbartulov | 0:dffdc90cbbbd | 109 | wait(0.4);} |
sbartulov | 0:dffdc90cbbbd | 110 | |
sbartulov | 0:dffdc90cbbbd | 111 | void titrajD(void) { |
sbartulov | 0:dffdc90cbbbd | 112 | crvena=0; |
sbartulov | 0:dffdc90cbbbd | 113 | zuta=0; |
sbartulov | 0:dffdc90cbbbd | 114 | zelena=1; |
sbartulov | 0:dffdc90cbbbd | 115 | wait(0.4); |
sbartulov | 0:dffdc90cbbbd | 116 | crvena=0; |
sbartulov | 0:dffdc90cbbbd | 117 | zuta=1; |
sbartulov | 0:dffdc90cbbbd | 118 | zelena=1; |
sbartulov | 0:dffdc90cbbbd | 119 | wait(0.4); |
sbartulov | 0:dffdc90cbbbd | 120 | crvena=1; |
sbartulov | 0:dffdc90cbbbd | 121 | zuta=1; |
sbartulov | 0:dffdc90cbbbd | 122 | zelena=1; |
sbartulov | 0:dffdc90cbbbd | 123 | wait(0.4); |
sbartulov | 0:dffdc90cbbbd | 124 | crvena=0; |
sbartulov | 0:dffdc90cbbbd | 125 | zuta=1; |
sbartulov | 0:dffdc90cbbbd | 126 | zelena=1; |
sbartulov | 0:dffdc90cbbbd | 127 | wait(0.4); |
sbartulov | 0:dffdc90cbbbd | 128 | crvena=0; |
sbartulov | 0:dffdc90cbbbd | 129 | zuta=0; |
sbartulov | 0:dffdc90cbbbd | 130 | zelena=1; |
sbartulov | 0:dffdc90cbbbd | 131 | wait(0.4); |
sbartulov | 0:dffdc90cbbbd | 132 | crvena=0; |
sbartulov | 0:dffdc90cbbbd | 133 | zuta=0; |
sbartulov | 0:dffdc90cbbbd | 134 | zelena=0; |
sbartulov | 0:dffdc90cbbbd | 135 | wait(0.4);} |
sbartulov | 0:dffdc90cbbbd | 136 | |
sbartulov | 0:dffdc90cbbbd | 137 | void blink(void){ |
sbartulov | 0:dffdc90cbbbd | 138 | crvena=!crvena; |
sbartulov | 0:dffdc90cbbbd | 139 | zuta=!zuta; |
sbartulov | 0:dffdc90cbbbd | 140 | zelena=!zelena; |
sbartulov | 0:dffdc90cbbbd | 141 | b=!b; |
sbartulov | 0:dffdc90cbbbd | 142 | c=!c; |
sbartulov | 0:dffdc90cbbbd | 143 | f=!f; |
sbartulov | 0:dffdc90cbbbd | 144 | e=!e; |
sbartulov | 0:dffdc90cbbbd | 145 | } |
sbartulov | 0:dffdc90cbbbd | 146 |