Tehnicko veleuciliste u Zagrebu. Mikroupravljaci, 2020.

Dependencies:   mbed titranje

https://os.mbed.com/media/uploads/sbartulov/igracka_5.png

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?

UserRevisionLine numberNew 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