Branimir Fotak / Seminar_1
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?

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