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.
suncokret.h@4:e360384c268b, 2020-06-08 (annotated)
- Committer:
- bfotak
- Date:
- Mon Jun 08 17:48:51 2020 +0000
- Revision:
- 4:e360384c268b
- Parent:
- 3:bd92b23688ae
seminarski rad
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| bfotak | 3:bd92b23688ae | 1 | #include "mbed.h" |
| bfotak | 4:e360384c268b | 2 | #define VRIJEME_KRETANJA 0.1 |
| bfotak | 3:bd92b23688ae | 3 | #define STANI 0 |
| bfotak | 3:bd92b23688ae | 4 | #define CW 0.0035 |
| bfotak | 3:bd92b23688ae | 5 | #define CCW 0.006 |
| bfotak | 4:e360384c268b | 6 | |
| bfotak | 3:bd92b23688ae | 7 | Serial pc(SERIAL_TX, SERIAL_RX); |
| bfotak | 4:e360384c268b | 8 | |
| bfotak | 3:bd92b23688ae | 9 | AnalogIn in0(A0); |
| bfotak | 3:bd92b23688ae | 10 | AnalogIn in1(A1); |
| bfotak | 3:bd92b23688ae | 11 | AnalogIn in2(A2); |
| bfotak | 3:bd92b23688ae | 12 | AnalogIn in3(A3); |
| bfotak | 3:bd92b23688ae | 13 | DigitalOut ledica(D4); |
| bfotak | 3:bd92b23688ae | 14 | |
| bfotak | 3:bd92b23688ae | 15 | float fotootp1=0, fotootp2=0, fotootp3=0, fotootp4=0; |
| bfotak | 4:e360384c268b | 16 | float a12, a13, a14, a21, a23, a24, a31, a32, a34, a41, a42, a43; |
| bfotak | 3:bd92b23688ae | 17 | int pozicija; |
| bfotak | 3:bd92b23688ae | 18 | |
| bfotak | 4:e360384c268b | 19 | PwmOut pwmd(D5); |
| bfotak | 4:e360384c268b | 20 | PwmOut pwmg(D9); |
| bfotak | 4:e360384c268b | 21 | |
| bfotak | 4:e360384c268b | 22 | Timeout cekanje; |
| bfotak | 4:e360384c268b | 23 | |
| bfotak | 4:e360384c268b | 24 | |
| bfotak | 3:bd92b23688ae | 25 | void ocitanje(){ |
| bfotak | 3:bd92b23688ae | 26 | /* fotootp1 = in0.read(); |
| bfotak | 3:bd92b23688ae | 27 | fotootp2 = in2.read(); |
| bfotak | 3:bd92b23688ae | 28 | fotootp3 = in2.read(); |
| bfotak | 3:bd92b23688ae | 29 | fotootp4 = in3.read(); */ |
| bfotak | 3:bd92b23688ae | 30 | |
| bfotak | 3:bd92b23688ae | 31 | fotootp1 = in0.read(); |
| bfotak | 3:bd92b23688ae | 32 | printf("\n\r%f", fotootp1); |
| bfotak | 3:bd92b23688ae | 33 | fotootp2 = in1.read(); |
| bfotak | 3:bd92b23688ae | 34 | printf("\n\r%f", fotootp2); |
| bfotak | 3:bd92b23688ae | 35 | fotootp3 = in2.read(); |
| bfotak | 3:bd92b23688ae | 36 | printf("\n\r%f", fotootp3); |
| bfotak | 3:bd92b23688ae | 37 | fotootp4 = in3.read(); |
| bfotak | 3:bd92b23688ae | 38 | printf("\n\r%f\n\n", fotootp4); |
| bfotak | 3:bd92b23688ae | 39 | wait(2); |
| bfotak | 3:bd92b23688ae | 40 | } |
| bfotak | 3:bd92b23688ae | 41 | |
| bfotak | 4:e360384c268b | 42 | void zakljucivanje(){ |
| bfotak | 4:e360384c268b | 43 | a12= fotootp1 - fotootp2; |
| bfotak | 4:e360384c268b | 44 | a13= fotootp1 - fotootp3; |
| bfotak | 4:e360384c268b | 45 | a14= fotootp1 - fotootp4; |
| bfotak | 4:e360384c268b | 46 | |
| bfotak | 4:e360384c268b | 47 | a21 = fotootp2 - fotootp1; |
| bfotak | 4:e360384c268b | 48 | a23 = fotootp2 - fotootp3; |
| bfotak | 4:e360384c268b | 49 | a24 = fotootp2 - fotootp4; |
| bfotak | 4:e360384c268b | 50 | |
| bfotak | 4:e360384c268b | 51 | a31 = fotootp3 - fotootp1; |
| bfotak | 4:e360384c268b | 52 | a32 = fotootp3 - fotootp2; |
| bfotak | 4:e360384c268b | 53 | a34 = fotootp3 - fotootp4; |
| bfotak | 4:e360384c268b | 54 | |
| bfotak | 4:e360384c268b | 55 | a41 = fotootp4 - fotootp1; |
| bfotak | 4:e360384c268b | 56 | a42 = fotootp4 - fotootp2; |
| bfotak | 4:e360384c268b | 57 | a43 = fotootp4 - fotootp3; |
| bfotak | 4:e360384c268b | 58 | |
| bfotak | 4:e360384c268b | 59 | if (a12 >= 0.2 && a13 >= 0.2 && a14 >= 0.2){ |
| bfotak | 4:e360384c268b | 60 | pozicija = 1; |
| bfotak | 4:e360384c268b | 61 | } |
| bfotak | 4:e360384c268b | 62 | |
| bfotak | 4:e360384c268b | 63 | else if (a21 >= 0.2 && a23 >= 0.2 && a24 >= 0.2){ |
| bfotak | 4:e360384c268b | 64 | pozicija = 2; |
| bfotak | 4:e360384c268b | 65 | } |
| bfotak | 4:e360384c268b | 66 | |
| bfotak | 4:e360384c268b | 67 | else if (a31 >= 0.2 && a32 >= 0.2 && a34 >= 0.2){ |
| bfotak | 4:e360384c268b | 68 | pozicija = 3; |
| bfotak | 4:e360384c268b | 69 | } |
| bfotak | 4:e360384c268b | 70 | |
| bfotak | 4:e360384c268b | 71 | else if (a41 >= 0.2 && a42 >= 0.2 && a43 >= 0.2){ |
| bfotak | 4:e360384c268b | 72 | pozicija = 4; |
| bfotak | 4:e360384c268b | 73 | } |
| bfotak | 4:e360384c268b | 74 | |
| bfotak | 4:e360384c268b | 75 | else if (!(a12 >= 0.2 )&& a13 >= 0.2 && a14 >= 0.2){ |
| bfotak | 4:e360384c268b | 76 | pozicija = 5; |
| bfotak | 4:e360384c268b | 77 | } |
| bfotak | 4:e360384c268b | 78 | |
| bfotak | 4:e360384c268b | 79 | else if (a21 >= 0.2 && !(a23 >= 0.2) && a24 >= 0.2){ |
| bfotak | 4:e360384c268b | 80 | pozicija = 6; |
| bfotak | 4:e360384c268b | 81 | } |
| bfotak | 4:e360384c268b | 82 | |
| bfotak | 4:e360384c268b | 83 | else if (a31 >= 0.2 && a32 >= 0.2 && !(a34 >= 0.2)){ |
| bfotak | 4:e360384c268b | 84 | pozicija = 7; |
| bfotak | 4:e360384c268b | 85 | } |
| bfotak | 4:e360384c268b | 86 | |
| bfotak | 4:e360384c268b | 87 | else if (!(a41 >= 0.2) && a42 >= 0.2 && a43 >= 0.2){ |
| bfotak | 4:e360384c268b | 88 | pozicija = 8; |
| bfotak | 4:e360384c268b | 89 | } |
| bfotak | 4:e360384c268b | 90 | else { |
| bfotak | 4:e360384c268b | 91 | pozicija = 9; |
| bfotak | 4:e360384c268b | 92 | } |
| bfotak | 4:e360384c268b | 93 | |
| bfotak | 4:e360384c268b | 94 | |
| bfotak | 4:e360384c268b | 95 | } |
| bfotak | 4:e360384c268b | 96 | |
| bfotak | 4:e360384c268b | 97 | //OUTPUT ------------------------------------ |
| bfotak | 4:e360384c268b | 98 | void stani(){ |
| bfotak | 4:e360384c268b | 99 | pwmg.period_ms(20); |
| bfotak | 4:e360384c268b | 100 | while(1){ |
| bfotak | 4:e360384c268b | 101 | pwmg.pulsewidth(STANI); |
| bfotak | 4:e360384c268b | 102 | break; |
| bfotak | 4:e360384c268b | 103 | } |
| bfotak | 4:e360384c268b | 104 | } |
| bfotak | 3:bd92b23688ae | 105 | |
| bfotak | 3:bd92b23688ae | 106 | void gore(){ |
| bfotak | 3:bd92b23688ae | 107 | pwmg.period_ms(20); |
| bfotak | 3:bd92b23688ae | 108 | while(1){ |
| bfotak | 3:bd92b23688ae | 109 | pwmg.pulsewidth(CCW); |
| bfotak | 4:e360384c268b | 110 | break; |
| bfotak | 3:bd92b23688ae | 111 | } |
| bfotak | 3:bd92b23688ae | 112 | } |
| bfotak | 3:bd92b23688ae | 113 | |
| bfotak | 3:bd92b23688ae | 114 | void desno(){ |
| bfotak | 3:bd92b23688ae | 115 | pwmd.period_ms(20); |
| bfotak | 3:bd92b23688ae | 116 | while(1){ |
| bfotak | 3:bd92b23688ae | 117 | pwmd.pulsewidth(CCW); |
| bfotak | 4:e360384c268b | 118 | break; |
| bfotak | 3:bd92b23688ae | 119 | } |
| bfotak | 3:bd92b23688ae | 120 | } |
| bfotak | 3:bd92b23688ae | 121 | |
| bfotak | 3:bd92b23688ae | 122 | void dolje(){ |
| bfotak | 3:bd92b23688ae | 123 | pwmg.period_ms(20); |
| bfotak | 3:bd92b23688ae | 124 | while(1){ |
| bfotak | 3:bd92b23688ae | 125 | pwmg.pulsewidth(CW); |
| bfotak | 4:e360384c268b | 126 | break; |
| bfotak | 3:bd92b23688ae | 127 | } |
| bfotak | 3:bd92b23688ae | 128 | } |
| bfotak | 3:bd92b23688ae | 129 | |
| bfotak | 3:bd92b23688ae | 130 | void lijevo(){ |
| bfotak | 3:bd92b23688ae | 131 | pwmd.period_ms(20); |
| bfotak | 3:bd92b23688ae | 132 | while(1){ |
| bfotak | 3:bd92b23688ae | 133 | pwmd.pulsewidth(CW); |
| bfotak | 4:e360384c268b | 134 | break; |
| bfotak | 3:bd92b23688ae | 135 | } |
| bfotak | 3:bd92b23688ae | 136 | } |
| bfotak | 3:bd92b23688ae | 137 | |
| bfotak | 4:e360384c268b | 138 | //OUTPUT ------------------------- |
| bfotak | 3:bd92b23688ae | 139 | |
| bfotak | 3:bd92b23688ae | 140 | void pozicioniranje(){ |
| bfotak | 3:bd92b23688ae | 141 | switch(pozicija){ |
| bfotak | 3:bd92b23688ae | 142 | case 1: |
| bfotak | 4:e360384c268b | 143 | cekanje.attach(&gore, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 144 | pc.printf("\n\nNALAZIMO SE U POZICIJI %d\n", pozicija); |
| bfotak | 3:bd92b23688ae | 145 | break; |
| bfotak | 3:bd92b23688ae | 146 | case 2: |
| bfotak | 4:e360384c268b | 147 | cekanje.attach(&desno, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 148 | pc.printf("\n\nNALAZIMO SE U POZICIJI %d\n", pozicija); |
| bfotak | 3:bd92b23688ae | 149 | break; |
| bfotak | 3:bd92b23688ae | 150 | case 3: |
| bfotak | 4:e360384c268b | 151 | cekanje.attach(&dolje, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 152 | pc.printf("\n\nNALAZIMO SE U POZICIJI %d\n", pozicija); |
| bfotak | 3:bd92b23688ae | 153 | break; |
| bfotak | 3:bd92b23688ae | 154 | case 4: |
| bfotak | 4:e360384c268b | 155 | cekanje.attach(&lijevo, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 156 | pc.printf("\n\nNALAZIMO SE U POZICIJI %d\n", pozicija); |
| bfotak | 4:e360384c268b | 157 | break; |
| bfotak | 4:e360384c268b | 158 | case 5: |
| bfotak | 4:e360384c268b | 159 | cekanje.attach(&desno, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 160 | cekanje.attach(&gore, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 161 | pc.printf("\n\nNALAZIMO SE U POZICIJI %d\n", pozicija); |
| bfotak | 4:e360384c268b | 162 | break; |
| bfotak | 4:e360384c268b | 163 | case 6: |
| bfotak | 4:e360384c268b | 164 | cekanje.attach(&desno, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 165 | cekanje.attach(&dolje, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 166 | pc.printf("\n\nNALAZIMO SE U POZICIJI %d\n", pozicija); |
| bfotak | 4:e360384c268b | 167 | break; |
| bfotak | 4:e360384c268b | 168 | case 7: |
| bfotak | 4:e360384c268b | 169 | cekanje.attach(&lijevo, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 170 | cekanje.attach(&dolje, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 171 | pc.printf("\n\nNALAZIMO SE U POZICIJI %d\n", pozicija); |
| bfotak | 4:e360384c268b | 172 | break; |
| bfotak | 4:e360384c268b | 173 | case 8: |
| bfotak | 4:e360384c268b | 174 | cekanje.attach(&lijevo, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 175 | cekanje.attach(&gore, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 176 | pc.printf("\n\nNALAZIMO SE U POZICIJI %d\n", pozicija); |
| bfotak | 4:e360384c268b | 177 | break; |
| bfotak | 4:e360384c268b | 178 | case 9: |
| bfotak | 4:e360384c268b | 179 | cekanje.attach(&stani, VRIJEME_KRETANJA); |
| bfotak | 4:e360384c268b | 180 | pc.printf("\n\nNALAZIMO SE U POZICIJI %d\n", pozicija); |
| bfotak | 3:bd92b23688ae | 181 | break; |
| bfotak | 3:bd92b23688ae | 182 | default: |
| bfotak | 3:bd92b23688ae | 183 | pc.printf("pogresna informacija"); |
| bfotak | 3:bd92b23688ae | 184 | break; |
| bfotak | 3:bd92b23688ae | 185 | } |
| bfotak | 3:bd92b23688ae | 186 | } |
| bfotak | 3:bd92b23688ae | 187 | |
| bfotak | 4:e360384c268b | 188 | /* |
| bfotak | 4:e360384c268b | 189 | |
| bfotak | 4:e360384c268b | 190 | |
| bfotak | 4:e360384c268b | 191 | |
| bfotak | 3:bd92b23688ae | 192 | |
| bfotak | 3:bd92b23688ae | 193 | void trazenje(){ |
| bfotak | 3:bd92b23688ae | 194 | while(1){ |
| bfotak | 4:e360384c268b | 195 | //logika za trazenje (spremanje neke vrijednosti) // 3 timera jedan koji broji kolko treba vremena, |
| bfotak | 4:e360384c268b | 196 | //jedan se reseta kada nađe najvecu i jedan za odbrojavanje do pozicije |
| bfotak | 4:e360384c268b | 197 | //logika(); |
| bfotak | 3:bd92b23688ae | 198 | } |
| bfotak | 3:bd92b23688ae | 199 | } |
| bfotak | 4:e360384c268b | 200 | */ |