Projektni zadatak iz Mikroupravljača - Mladenko Jurković

Dependencies:   mbed SeeedShieldBot BluetoothSerial

Committer:
mjurkovic
Date:
Tue Nov 24 17:02:29 2020 +0000
Revision:
0:b530fb5242f7
ok

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mjurkovic 0:b530fb5242f7 1 #include"mbed.h"
mjurkovic 0:b530fb5242f7 2 DigitalOut LEDcrvena(D7); //LED svjetlo za vozila
mjurkovic 0:b530fb5242f7 3 DigitalOut LEDzuta(D6); //LED svjetlo za vozila
mjurkovic 0:b530fb5242f7 4 DigitalOut LEDzelena(D5); //LED svjetlo za vozila
mjurkovic 0:b530fb5242f7 5
mjurkovic 0:b530fb5242f7 6 DigitalOut LEDzelenapjesaci(D2); //LED svjetlo za pješake
mjurkovic 0:b530fb5242f7 7 DigitalOut LEDcrvenapjesaci(D3); //LED svjetlo za pješake
mjurkovic 0:b530fb5242f7 8
mjurkovic 0:b530fb5242f7 9 PwmOut z(D9); //PWM izlaz za zvučnik
mjurkovic 0:b530fb5242f7 10 InterruptIn tipkalo(D4); //Tipkalo za pješake
mjurkovic 0:b530fb5242f7 11
mjurkovic 0:b530fb5242f7 12 Ticker zv; //Ticker za pozivanje zvuka
mjurkovic 0:b530fb5242f7 13 Timer debounce; //Timer za debounce
mjurkovic 0:b530fb5242f7 14 void pjesaci(void); //definiranje funkcije pjesaci
mjurkovic 0:b530fb5242f7 15 void zvuk(void); //definiranje funkcije zvuk
mjurkovic 0:b530fb5242f7 16
mjurkovic 0:b530fb5242f7 17 int main()
mjurkovic 0:b530fb5242f7 18 {
mjurkovic 0:b530fb5242f7 19 debounce.start();
mjurkovic 0:b530fb5242f7 20 tipkalo.rise(&pjesaci); //pozivanje funkcije "pjesaci" koja odmah pali zeleno svjetlo za pješake, ukoliko je uključeno zeleno za vozila
mjurkovic 0:b530fb5242f7 21
mjurkovic 0:b530fb5242f7 22 while(1) {
mjurkovic 0:b530fb5242f7 23 zv.attach(&zvuk, 0.5);
mjurkovic 0:b530fb5242f7 24
mjurkovic 0:b530fb5242f7 25 LEDcrvena=1;
mjurkovic 0:b530fb5242f7 26 LEDcrvenapjesaci=1;
mjurkovic 0:b530fb5242f7 27 LEDzuta=0;
mjurkovic 0:b530fb5242f7 28 LEDzelena=0;
mjurkovic 0:b530fb5242f7 29 LEDzelenapjesaci=0;
mjurkovic 0:b530fb5242f7 30 wait(1); //crveno svjetlo vozilima, sigurnosni prijelaz između svjetla za vozila i pješake
mjurkovic 0:b530fb5242f7 31
mjurkovic 0:b530fb5242f7 32 LEDcrvena=1;
mjurkovic 0:b530fb5242f7 33 LEDcrvenapjesaci=0;
mjurkovic 0:b530fb5242f7 34 LEDzuta=0;
mjurkovic 0:b530fb5242f7 35 LEDzelena=0;
mjurkovic 0:b530fb5242f7 36 LEDzelenapjesaci=1;
mjurkovic 0:b530fb5242f7 37 wait(12); //zeleno za pješake
mjurkovic 0:b530fb5242f7 38
mjurkovic 0:b530fb5242f7 39 LEDcrvena=1;
mjurkovic 0:b530fb5242f7 40 LEDcrvenapjesaci=1;
mjurkovic 0:b530fb5242f7 41 LEDzuta=0;
mjurkovic 0:b530fb5242f7 42 LEDzelena=0;
mjurkovic 0:b530fb5242f7 43 LEDzelenapjesaci=0;
mjurkovic 0:b530fb5242f7 44 wait(1); //pali se crvena za pješake, priprema za žuto odnosno zeleno svjetlo vozilima
mjurkovic 0:b530fb5242f7 45
mjurkovic 0:b530fb5242f7 46 LEDcrvena=1;
mjurkovic 0:b530fb5242f7 47 LEDcrvenapjesaci=1;
mjurkovic 0:b530fb5242f7 48 LEDzuta=1;
mjurkovic 0:b530fb5242f7 49 LEDzelena=0;
mjurkovic 0:b530fb5242f7 50 LEDzelenapjesaci=0;
mjurkovic 0:b530fb5242f7 51 wait(3); //pali se žuto svjetlo - priprema za kretanje vozila
mjurkovic 0:b530fb5242f7 52
mjurkovic 0:b530fb5242f7 53 LEDcrvena=0;
mjurkovic 0:b530fb5242f7 54 LEDcrvenapjesaci=1;
mjurkovic 0:b530fb5242f7 55 LEDzuta=0;
mjurkovic 0:b530fb5242f7 56 LEDzelena=1;
mjurkovic 0:b530fb5242f7 57 LEDzelenapjesaci=0;
mjurkovic 0:b530fb5242f7 58 wait(15); //zeleno svjetlo vozilima
mjurkovic 0:b530fb5242f7 59
mjurkovic 0:b530fb5242f7 60 LEDcrvena=0;
mjurkovic 0:b530fb5242f7 61 LEDcrvenapjesaci=1;
mjurkovic 0:b530fb5242f7 62 LEDzuta=1;
mjurkovic 0:b530fb5242f7 63 LEDzelena=0;
mjurkovic 0:b530fb5242f7 64 LEDzelenapjesaci=0;
mjurkovic 0:b530fb5242f7 65 wait(4); //pali se žuto svjetlo, upozorenje da slijedi crveno svjetlo
mjurkovic 0:b530fb5242f7 66 }
mjurkovic 0:b530fb5242f7 67 }
mjurkovic 0:b530fb5242f7 68 void pjesaci()
mjurkovic 0:b530fb5242f7 69 {
mjurkovic 0:b530fb5242f7 70 if(debounce.read_ms()>200) {
mjurkovic 0:b530fb5242f7 71 if(LEDzelena==1) { //ako je zeleno svjetlo za vozila uključeno
mjurkovic 0:b530fb5242f7 72
mjurkovic 0:b530fb5242f7 73 z.period(0.5);
mjurkovic 0:b530fb5242f7 74 z=0.5;
mjurkovic 0:b530fb5242f7 75 wait(2); //nakon pritiska tipke, zeleno svjetlo svjetli još 2 sekunde
mjurkovic 0:b530fb5242f7 76
mjurkovic 0:b530fb5242f7 77 LEDcrvena=0;
mjurkovic 0:b530fb5242f7 78 LEDcrvenapjesaci=1;
mjurkovic 0:b530fb5242f7 79 LEDzuta=1;
mjurkovic 0:b530fb5242f7 80 LEDzelena=0;
mjurkovic 0:b530fb5242f7 81 LEDzelenapjesaci=0;
mjurkovic 0:b530fb5242f7 82 z.period(0.5);
mjurkovic 0:b530fb5242f7 83 z=0.5; //zvuk za crveno svjetlo pjesacima
mjurkovic 0:b530fb5242f7 84 wait(4); //pali se žuto svjetlo, priprema za crveno
mjurkovic 0:b530fb5242f7 85
mjurkovic 0:b530fb5242f7 86 LEDcrvena=1;
mjurkovic 0:b530fb5242f7 87 LEDcrvenapjesaci=1;
mjurkovic 0:b530fb5242f7 88 LEDzuta=0;
mjurkovic 0:b530fb5242f7 89 LEDzelena=0;
mjurkovic 0:b530fb5242f7 90 LEDzelenapjesaci=0;
mjurkovic 0:b530fb5242f7 91 z.period(0.5);
mjurkovic 0:b530fb5242f7 92 z=0.5; //zvuk za crveno svjetlo pjesacima
mjurkovic 0:b530fb5242f7 93 wait(1); //crveno svjetlo vozilima, sigurnosni prijelaz između svjetla za vozila i pješake
mjurkovic 0:b530fb5242f7 94
mjurkovic 0:b530fb5242f7 95 LEDcrvena=1;
mjurkovic 0:b530fb5242f7 96 LEDcrvenapjesaci=0;
mjurkovic 0:b530fb5242f7 97 LEDzuta=0;
mjurkovic 0:b530fb5242f7 98 LEDzelena=0;
mjurkovic 0:b530fb5242f7 99 LEDzelenapjesaci=1;
mjurkovic 0:b530fb5242f7 100 z.period(0.1);
mjurkovic 0:b530fb5242f7 101 z=0.5; //zvuk za zeleno svjetlo pjesacima
mjurkovic 0:b530fb5242f7 102 wait(6); //upalilo se crveno svjetlo vozilima, zeleno je pješacima
mjurkovic 0:b530fb5242f7 103
mjurkovic 0:b530fb5242f7 104 LEDcrvena=1;
mjurkovic 0:b530fb5242f7 105 LEDcrvenapjesaci=1;
mjurkovic 0:b530fb5242f7 106 LEDzuta=0;
mjurkovic 0:b530fb5242f7 107 LEDzelena=0;
mjurkovic 0:b530fb5242f7 108 LEDzelenapjesaci=0;
mjurkovic 0:b530fb5242f7 109 z.period(0.5);
mjurkovic 0:b530fb5242f7 110 z=0.5; //zvuk za crveno svjetlo pjesacima
mjurkovic 0:b530fb5242f7 111 wait(1); //pali se crveno pješacima
mjurkovic 0:b530fb5242f7 112
mjurkovic 0:b530fb5242f7 113 LEDcrvena=1;
mjurkovic 0:b530fb5242f7 114 LEDcrvenapjesaci=1;
mjurkovic 0:b530fb5242f7 115 LEDzuta=1;
mjurkovic 0:b530fb5242f7 116 LEDzelena=0;
mjurkovic 0:b530fb5242f7 117 LEDzelenapjesaci=0;
mjurkovic 0:b530fb5242f7 118 z.period(0.5);
mjurkovic 0:b530fb5242f7 119 z=0.5; //zvuk za crveno svjetlo pjesacima
mjurkovic 0:b530fb5242f7 120 wait(4); //uz crveno pješacima, pali se žuto svjetlo, priprema za zeleno za vozila
mjurkovic 0:b530fb5242f7 121
mjurkovic 0:b530fb5242f7 122 LEDcrvena=0;
mjurkovic 0:b530fb5242f7 123 LEDcrvenapjesaci=1;
mjurkovic 0:b530fb5242f7 124 LEDzuta=0;
mjurkovic 0:b530fb5242f7 125 LEDzelena=1;
mjurkovic 0:b530fb5242f7 126 LEDzelenapjesaci=0;
mjurkovic 0:b530fb5242f7 127 z.period(0.5);
mjurkovic 0:b530fb5242f7 128 z=0.5; //zvuk za crveno svjetlo pjesacima
mjurkovic 0:b530fb5242f7 129 wait(15); //pali se zeleno svjetlo za vozila
mjurkovic 0:b530fb5242f7 130
mjurkovic 0:b530fb5242f7 131 LEDcrvena=0;
mjurkovic 0:b530fb5242f7 132 LEDcrvenapjesaci=1;
mjurkovic 0:b530fb5242f7 133 LEDzuta=1;
mjurkovic 0:b530fb5242f7 134 LEDzelena=0;
mjurkovic 0:b530fb5242f7 135 LEDzelenapjesaci=0;
mjurkovic 0:b530fb5242f7 136 z.period(0.5);
mjurkovic 0:b530fb5242f7 137 z=0.5; //zvuk za crveno svjetlo pjesacima
mjurkovic 0:b530fb5242f7 138 wait(4); //pali se žuto svjetlo, priprema za crveno svjetlo vozilima
mjurkovic 0:b530fb5242f7 139
mjurkovic 0:b530fb5242f7 140 }
mjurkovic 0:b530fb5242f7 141 debounce.reset();
mjurkovic 0:b530fb5242f7 142 }
mjurkovic 0:b530fb5242f7 143 }
mjurkovic 0:b530fb5242f7 144 void zvuk()
mjurkovic 0:b530fb5242f7 145 {
mjurkovic 0:b530fb5242f7 146 if(LEDzelenapjesaci==1) {
mjurkovic 0:b530fb5242f7 147 z.period(0.1); // definiranje PWM perioda za zvučnik --> zvuk za zeleno svjetlo pjesacima
mjurkovic 0:b530fb5242f7 148 z=0.5; //aktivni ciklus na 50%, PWM frekvencija definira visinu reproduciranog zvuka
mjurkovic 0:b530fb5242f7 149 } else if(LEDzelenapjesaci==0) {
mjurkovic 0:b530fb5242f7 150 z.period(0.5); //zvuk za crveno svjetlo pjesacima
mjurkovic 0:b530fb5242f7 151 z=0.5;
mjurkovic 0:b530fb5242f7 152 }
mjurkovic 0:b530fb5242f7 153 }