proyrcto
Dependencies: Adafruit_GFX mbed
main.cpp@0:3168baff6399, 2017-12-05 (annotated)
- Committer:
- juankafil1
- Date:
- Tue Dec 05 11:16:14 2017 +0000
- Revision:
- 0:3168baff6399
transversal
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
juankafil1 | 0:3168baff6399 | 1 | #include "mbed.h" |
juankafil1 | 0:3168baff6399 | 2 | // #include "SSD1306.h" |
juankafil1 | 0:3168baff6399 | 3 | #include "Adafruit_SSD1306.h" |
juankafil1 | 0:3168baff6399 | 4 | #define SDA PTE0 |
juankafil1 | 0:3168baff6399 | 5 | #define SCL PTE1 |
juankafil1 | 0:3168baff6399 | 6 | DigitalIn boton(PTB0); |
juankafil1 | 0:3168baff6399 | 7 | DigitalIn boton1(PTB1); |
juankafil1 | 0:3168baff6399 | 8 | DigitalOut led(LED1); |
juankafil1 | 0:3168baff6399 | 9 | DigitalOut led1(LED3); |
juankafil1 | 0:3168baff6399 | 10 | DigitalOut p(PTC16); |
juankafil1 | 0:3168baff6399 | 11 | Timer x; |
juankafil1 | 0:3168baff6399 | 12 | |
juankafil1 | 0:3168baff6399 | 13 | Serial rs232(USBTX, USBRX); |
juankafil1 | 0:3168baff6399 | 14 | BusOut step_secuence(PTD6, PTA17, PTA16, PTC17); |
juankafil1 | 0:3168baff6399 | 15 | unsigned int num_pasos,i,g=0,k,aux=0,color=1,n1=0,v1=0,a1=0,d1=0; |
juankafil1 | 0:3168baff6399 | 16 | int grados,b=0,c=0,tiempo=0,a=0; |
juankafil1 | 0:3168baff6399 | 17 | Timer t; |
juankafil1 | 0:3168baff6399 | 18 | class I2C2 : public I2C |
juankafil1 | 0:3168baff6399 | 19 | { |
juankafil1 | 0:3168baff6399 | 20 | public: |
juankafil1 | 0:3168baff6399 | 21 | I2C2(PinName sda, PinName scl) : I2C(sda, scl) { |
juankafil1 | 0:3168baff6399 | 22 | frequency(400000); |
juankafil1 | 0:3168baff6399 | 23 | start(); |
juankafil1 | 0:3168baff6399 | 24 | }; |
juankafil1 | 0:3168baff6399 | 25 | }; |
juankafil1 | 0:3168baff6399 | 26 | |
juankafil1 | 0:3168baff6399 | 27 | I2C2 gI2C(SDA,SCL); |
juankafil1 | 0:3168baff6399 | 28 | Adafruit_SSD1306_I2c gOled2(gI2C, NC, 0x78, 64, 128); |
juankafil1 | 0:3168baff6399 | 29 | |
juankafil1 | 0:3168baff6399 | 30 | |
juankafil1 | 0:3168baff6399 | 31 | void retro(int cont_pasos) // Retroceso motor |
juankafil1 | 0:3168baff6399 | 32 | { |
juankafil1 | 0:3168baff6399 | 33 | k=0; |
juankafil1 | 0:3168baff6399 | 34 | for (i = 0; i<=cont_pasos; i++) { |
juankafil1 | 0:3168baff6399 | 35 | if (k>=4) { |
juankafil1 | 0:3168baff6399 | 36 | k=0; |
juankafil1 | 0:3168baff6399 | 37 | } |
juankafil1 | 0:3168baff6399 | 38 | switch (k) { |
juankafil1 | 0:3168baff6399 | 39 | case 0: |
juankafil1 | 0:3168baff6399 | 40 | step_secuence=0x06; |
juankafil1 | 0:3168baff6399 | 41 | break; |
juankafil1 | 0:3168baff6399 | 42 | case 1: |
juankafil1 | 0:3168baff6399 | 43 | step_secuence=0x05; |
juankafil1 | 0:3168baff6399 | 44 | break; |
juankafil1 | 0:3168baff6399 | 45 | case 2: |
juankafil1 | 0:3168baff6399 | 46 | step_secuence=0x09; |
juankafil1 | 0:3168baff6399 | 47 | break; |
juankafil1 | 0:3168baff6399 | 48 | case 3: |
juankafil1 | 0:3168baff6399 | 49 | step_secuence=0x0A; |
juankafil1 | 0:3168baff6399 | 50 | break; |
juankafil1 | 0:3168baff6399 | 51 | |
juankafil1 | 0:3168baff6399 | 52 | } |
juankafil1 | 0:3168baff6399 | 53 | wait(0.2); |
juankafil1 | 0:3168baff6399 | 54 | ++k; |
juankafil1 | 0:3168baff6399 | 55 | } |
juankafil1 | 0:3168baff6399 | 56 | } |
juankafil1 | 0:3168baff6399 | 57 | void forward(int cont_pasos) // Avance motor |
juankafil1 | 0:3168baff6399 | 58 | { |
juankafil1 | 0:3168baff6399 | 59 | k=0; |
juankafil1 | 0:3168baff6399 | 60 | for (i = 0; i<=cont_pasos; i++) { |
juankafil1 | 0:3168baff6399 | 61 | if (k>=4) { |
juankafil1 | 0:3168baff6399 | 62 | k=0; |
juankafil1 | 0:3168baff6399 | 63 | } |
juankafil1 | 0:3168baff6399 | 64 | switch (k) { |
juankafil1 | 0:3168baff6399 | 65 | case 0: |
juankafil1 | 0:3168baff6399 | 66 | step_secuence=0x0A; |
juankafil1 | 0:3168baff6399 | 67 | break; |
juankafil1 | 0:3168baff6399 | 68 | case 1: |
juankafil1 | 0:3168baff6399 | 69 | step_secuence=0x09; |
juankafil1 | 0:3168baff6399 | 70 | |
juankafil1 | 0:3168baff6399 | 71 | break; |
juankafil1 | 0:3168baff6399 | 72 | |
juankafil1 | 0:3168baff6399 | 73 | case 2: |
juankafil1 | 0:3168baff6399 | 74 | step_secuence=0x05; |
juankafil1 | 0:3168baff6399 | 75 | break; |
juankafil1 | 0:3168baff6399 | 76 | case 3: |
juankafil1 | 0:3168baff6399 | 77 | step_secuence=0x06; |
juankafil1 | 0:3168baff6399 | 78 | |
juankafil1 | 0:3168baff6399 | 79 | break; |
juankafil1 | 0:3168baff6399 | 80 | } |
juankafil1 | 0:3168baff6399 | 81 | ++k; |
juankafil1 | 0:3168baff6399 | 82 | wait(0.2); |
juankafil1 | 0:3168baff6399 | 83 | } |
juankafil1 | 0:3168baff6399 | 84 | |
juankafil1 | 0:3168baff6399 | 85 | } |
juankafil1 | 0:3168baff6399 | 86 | |
juankafil1 | 0:3168baff6399 | 87 | |
juankafil1 | 0:3168baff6399 | 88 | Timer Timer1; |
juankafil1 | 0:3168baff6399 | 89 | InterruptIn int1(PTD0); |
juankafil1 | 0:3168baff6399 | 90 | |
juankafil1 | 0:3168baff6399 | 91 | unsigned int contador=0,frec=0,conn=0,conm=0,cona=0, conN=0; |
juankafil1 | 0:3168baff6399 | 92 | uint16_t V = 0, N = 0, A = 0, R = 0; |
juankafil1 | 0:3168baff6399 | 93 | |
juankafil1 | 0:3168baff6399 | 94 | |
juankafil1 | 0:3168baff6399 | 95 | void ISR_PTD0(){//cuenta los pulsos |
juankafil1 | 0:3168baff6399 | 96 | ++contador;} |
juankafil1 | 0:3168baff6399 | 97 | |
juankafil1 | 0:3168baff6399 | 98 | void frecuencia(){ |
juankafil1 | 0:3168baff6399 | 99 | |
juankafil1 | 0:3168baff6399 | 100 | contador=0; |
juankafil1 | 0:3168baff6399 | 101 | Timer1.start();//arranca temporizador |
juankafil1 | 0:3168baff6399 | 102 | while(Timer1.read_ms()<=10);//cuando lleve a 10 ms pare |
juankafil1 | 0:3168baff6399 | 103 | Timer1.stop();//lo detengo |
juankafil1 | 0:3168baff6399 | 104 | frec=100*contador;//lo multiplicamos por 100 |
juankafil1 | 0:3168baff6399 | 105 | Timer1.reset();}//reinicia el timer |
juankafil1 | 0:3168baff6399 | 106 | |
juankafil1 | 0:3168baff6399 | 107 | void contadores(){ |
juankafil1 | 0:3168baff6399 | 108 | if((frec>=1)&&(frec<=2000)){ |
juankafil1 | 0:3168baff6399 | 109 | gOled2.setTextCursor(0, 16); |
juankafil1 | 0:3168baff6399 | 110 | gOled2.printf("esperando"); } |
juankafil1 | 0:3168baff6399 | 111 | else if((frec>=2100)&&(frec<=5900)){ |
juankafil1 | 0:3168baff6399 | 112 | n1=1; |
juankafil1 | 0:3168baff6399 | 113 | color=2; |
juankafil1 | 0:3168baff6399 | 114 | rs232.printf("%d",4); |
juankafil1 | 0:3168baff6399 | 115 | gOled2.clearDisplay(); |
juankafil1 | 0:3168baff6399 | 116 | gOled2.setTextCursor(0, 16); |
juankafil1 | 0:3168baff6399 | 117 | gOled2.printf("Detectado color Negro\n"); |
juankafil1 | 0:3168baff6399 | 118 | conn=conn+1;//aumento el contador |
juankafil1 | 0:3168baff6399 | 119 | N=conn; |
juankafil1 | 0:3168baff6399 | 120 | gOled2.printf("Numero de cajas:\n%u",N); |
juankafil1 | 0:3168baff6399 | 121 | //lcd.locate(0,1);//preparado para pubicar |
juankafil1 | 0:3168baff6399 | 122 | // wait(2);//retraso mientras pasa la caja |
juankafil1 | 0:3168baff6399 | 123 | |
juankafil1 | 0:3168baff6399 | 124 | } |
juankafil1 | 0:3168baff6399 | 125 | else if((frec>=6000)&&(frec<=12900)){ |
juankafil1 | 0:3168baff6399 | 126 | v1=1; |
juankafil1 | 0:3168baff6399 | 127 | color=3; |
juankafil1 | 0:3168baff6399 | 128 | rs232.printf("%d",3); |
juankafil1 | 0:3168baff6399 | 129 | gOled2.clearDisplay(); |
juankafil1 | 0:3168baff6399 | 130 | gOled2.setTextCursor(0, 16); |
juankafil1 | 0:3168baff6399 | 131 | gOled2.printf("Detectado color\n");//publico el color de la frecuencia |
juankafil1 | 0:3168baff6399 | 132 | gOled2.printf("Violeta\n"); |
juankafil1 | 0:3168baff6399 | 133 | conm=conm+1;//aumento el contador |
juankafil1 | 0:3168baff6399 | 134 | V=conm; |
juankafil1 | 0:3168baff6399 | 135 | gOled2.printf("Numero de cajas:\n%u",V); |
juankafil1 | 0:3168baff6399 | 136 | // rs232.printf("violeta\n\r%d",conm); |
juankafil1 | 0:3168baff6399 | 137 | // wait(2);//retraso mientras pasa la caja |
juankafil1 | 0:3168baff6399 | 138 | |
juankafil1 | 0:3168baff6399 | 139 | }else if((frec>=13000)&&(frec<=24000)){ |
juankafil1 | 0:3168baff6399 | 140 | a1=1; |
juankafil1 | 0:3168baff6399 | 141 | color=4; |
juankafil1 | 0:3168baff6399 | 142 | rs232.printf("%d",2); |
juankafil1 | 0:3168baff6399 | 143 | gOled2.clearDisplay(); |
juankafil1 | 0:3168baff6399 | 144 | gOled2.setTextCursor(0, 16); |
juankafil1 | 0:3168baff6399 | 145 | gOled2.printf("Detectado color Azul\n"); |
juankafil1 | 0:3168baff6399 | 146 | cona=cona+1;//aumento el contador |
juankafil1 | 0:3168baff6399 | 147 | A=cona; |
juankafil1 | 0:3168baff6399 | 148 | gOled2.printf("Numero de cajas:\n%u",A); |
juankafil1 | 0:3168baff6399 | 149 | // wait(2); |
juankafil1 | 0:3168baff6399 | 150 | } // rs232.printf("azul\n\r%d",cona);} |
juankafil1 | 0:3168baff6399 | 151 | |
juankafil1 | 0:3168baff6399 | 152 | else { |
juankafil1 | 0:3168baff6399 | 153 | color=1; |
juankafil1 | 0:3168baff6399 | 154 | d1=1; |
juankafil1 | 0:3168baff6399 | 155 | uint16_t R = 0; |
juankafil1 | 0:3168baff6399 | 156 | rs232.printf("%d",1); |
juankafil1 | 0:3168baff6399 | 157 | gOled2.clearDisplay(); |
juankafil1 | 0:3168baff6399 | 158 | gOled2.setTextCursor(0, 16); |
juankafil1 | 0:3168baff6399 | 159 | gOled2.printf("Caja no reconocida\n"); |
juankafil1 | 0:3168baff6399 | 160 | conN=conN+1; |
juankafil1 | 0:3168baff6399 | 161 | R=conN; |
juankafil1 | 0:3168baff6399 | 162 | gOled2.printf("Numero de cajas:\n%u",R); |
juankafil1 | 0:3168baff6399 | 163 | //wait(2); |
juankafil1 | 0:3168baff6399 | 164 | |
juankafil1 | 0:3168baff6399 | 165 | |
juankafil1 | 0:3168baff6399 | 166 | } |
juankafil1 | 0:3168baff6399 | 167 | } |
juankafil1 | 0:3168baff6399 | 168 | |
juankafil1 | 0:3168baff6399 | 169 | void motor() { |
juankafil1 | 0:3168baff6399 | 170 | |
juankafil1 | 0:3168baff6399 | 171 | |
juankafil1 | 0:3168baff6399 | 172 | if(color==1){ |
juankafil1 | 0:3168baff6399 | 173 | if(n1==1){ |
juankafil1 | 0:3168baff6399 | 174 | forward(12); |
juankafil1 | 0:3168baff6399 | 175 | grados=90; |
juankafil1 | 0:3168baff6399 | 176 | //k=10000; |
juankafil1 | 0:3168baff6399 | 177 | n1=0; |
juankafil1 | 0:3168baff6399 | 178 | } |
juankafil1 | 0:3168baff6399 | 179 | else if(v1==1){ |
juankafil1 | 0:3168baff6399 | 180 | forward(24); |
juankafil1 | 0:3168baff6399 | 181 | grados=180; |
juankafil1 | 0:3168baff6399 | 182 | v1=0; |
juankafil1 | 0:3168baff6399 | 183 | } |
juankafil1 | 0:3168baff6399 | 184 | else if(a1==1){ |
juankafil1 | 0:3168baff6399 | 185 | retro(12); |
juankafil1 | 0:3168baff6399 | 186 | grados=90; |
juankafil1 | 0:3168baff6399 | 187 | wait(2); |
juankafil1 | 0:3168baff6399 | 188 | a1=0; |
juankafil1 | 0:3168baff6399 | 189 | } else { |
juankafil1 | 0:3168baff6399 | 190 | |
juankafil1 | 0:3168baff6399 | 191 | wait(2); |
juankafil1 | 0:3168baff6399 | 192 | } |
juankafil1 | 0:3168baff6399 | 193 | |
juankafil1 | 0:3168baff6399 | 194 | }if(color==2){ |
juankafil1 | 0:3168baff6399 | 195 | if(d1==1){ |
juankafil1 | 0:3168baff6399 | 196 | //while(1){ |
juankafil1 | 0:3168baff6399 | 197 | retro(12); |
juankafil1 | 0:3168baff6399 | 198 | grados=90; |
juankafil1 | 0:3168baff6399 | 199 | wait(2); |
juankafil1 | 0:3168baff6399 | 200 | d1=0; |
juankafil1 | 0:3168baff6399 | 201 | tiempo=2150; |
juankafil1 | 0:3168baff6399 | 202 | |
juankafil1 | 0:3168baff6399 | 203 | wait(2); |
juankafil1 | 0:3168baff6399 | 204 | //aux=aux+1;//variable para el while |
juankafil1 | 0:3168baff6399 | 205 | } |
juankafil1 | 0:3168baff6399 | 206 | //aux=0; } |
juankafil1 | 0:3168baff6399 | 207 | else if(v1==1){ |
juankafil1 | 0:3168baff6399 | 208 | forward(12); |
juankafil1 | 0:3168baff6399 | 209 | grados=90; |
juankafil1 | 0:3168baff6399 | 210 | wait(2); |
juankafil1 | 0:3168baff6399 | 211 | v1=0; |
juankafil1 | 0:3168baff6399 | 212 | } |
juankafil1 | 0:3168baff6399 | 213 | else if(a1==1){ |
juankafil1 | 0:3168baff6399 | 214 | retro(24); |
juankafil1 | 0:3168baff6399 | 215 | grados=180; |
juankafil1 | 0:3168baff6399 | 216 | a1=0; |
juankafil1 | 0:3168baff6399 | 217 | } else { |
juankafil1 | 0:3168baff6399 | 218 | wait(2); |
juankafil1 | 0:3168baff6399 | 219 | } |
juankafil1 | 0:3168baff6399 | 220 | |
juankafil1 | 0:3168baff6399 | 221 | }if(color==3){ |
juankafil1 | 0:3168baff6399 | 222 | if(d1==1){ |
juankafil1 | 0:3168baff6399 | 223 | forward(24); |
juankafil1 | 0:3168baff6399 | 224 | grados=180; |
juankafil1 | 0:3168baff6399 | 225 | d1=0; |
juankafil1 | 0:3168baff6399 | 226 | tiempo=3250; |
juankafil1 | 0:3168baff6399 | 227 | } |
juankafil1 | 0:3168baff6399 | 228 | |
juankafil1 | 0:3168baff6399 | 229 | else if(n1==1){ |
juankafil1 | 0:3168baff6399 | 230 | retro(12); |
juankafil1 | 0:3168baff6399 | 231 | grados=90; |
juankafil1 | 0:3168baff6399 | 232 | wait(2); |
juankafil1 | 0:3168baff6399 | 233 | n1=0;//ponemos la posicion anterior en 0 |
juankafil1 | 0:3168baff6399 | 234 | } |
juankafil1 | 0:3168baff6399 | 235 | else if(a1==1){ |
juankafil1 | 0:3168baff6399 | 236 | forward(12); |
juankafil1 | 0:3168baff6399 | 237 | grados=90; |
juankafil1 | 0:3168baff6399 | 238 | wait(2); |
juankafil1 | 0:3168baff6399 | 239 | a1=0;//ponemos la posicion anterior en 0 |
juankafil1 | 0:3168baff6399 | 240 | } else { |
juankafil1 | 0:3168baff6399 | 241 | wait(2); |
juankafil1 | 0:3168baff6399 | 242 | } |
juankafil1 | 0:3168baff6399 | 243 | |
juankafil1 | 0:3168baff6399 | 244 | }if(color==4){ |
juankafil1 | 0:3168baff6399 | 245 | if(d1==1){ |
juankafil1 | 0:3168baff6399 | 246 | forward(12); |
juankafil1 | 0:3168baff6399 | 247 | grados=90; |
juankafil1 | 0:3168baff6399 | 248 | wait(2); |
juankafil1 | 0:3168baff6399 | 249 | d1=0; |
juankafil1 | 0:3168baff6399 | 250 | } |
juankafil1 | 0:3168baff6399 | 251 | else if(v1==1){ |
juankafil1 | 0:3168baff6399 | 252 | retro(12); |
juankafil1 | 0:3168baff6399 | 253 | grados=90; |
juankafil1 | 0:3168baff6399 | 254 | wait(2); |
juankafil1 | 0:3168baff6399 | 255 | v1=0; |
juankafil1 | 0:3168baff6399 | 256 | } |
juankafil1 | 0:3168baff6399 | 257 | else if(n1==1){ |
juankafil1 | 0:3168baff6399 | 258 | retro(24); |
juankafil1 | 0:3168baff6399 | 259 | grados=180; |
juankafil1 | 0:3168baff6399 | 260 | n1=0; |
juankafil1 | 0:3168baff6399 | 261 | } else { |
juankafil1 | 0:3168baff6399 | 262 | wait(2); |
juankafil1 | 0:3168baff6399 | 263 | } |
juankafil1 | 0:3168baff6399 | 264 | |
juankafil1 | 0:3168baff6399 | 265 | } |
juankafil1 | 0:3168baff6399 | 266 | } |
juankafil1 | 0:3168baff6399 | 267 | |
juankafil1 | 0:3168baff6399 | 268 | void receivedByte(){ |
juankafil1 | 0:3168baff6399 | 269 | int a23=0,a2=1; |
juankafil1 | 0:3168baff6399 | 270 | int dato_in=rs232.getc(); |
juankafil1 | 0:3168baff6399 | 271 | if(dato_in=='N'){ |
juankafil1 | 0:3168baff6399 | 272 | p=1; |
juankafil1 | 0:3168baff6399 | 273 | frec=2400; |
juankafil1 | 0:3168baff6399 | 274 | } |
juankafil1 | 0:3168baff6399 | 275 | if(dato_in=='A'){ |
juankafil1 | 0:3168baff6399 | 276 | p=1; |
juankafil1 | 0:3168baff6399 | 277 | frec= 18000;} |
juankafil1 | 0:3168baff6399 | 278 | if(dato_in=='V'){ |
juankafil1 | 0:3168baff6399 | 279 | p=1; |
juankafil1 | 0:3168baff6399 | 280 | frec=8000;} |
juankafil1 | 0:3168baff6399 | 281 | if(dato_in=='D'){ |
juankafil1 | 0:3168baff6399 | 282 | frec=32000; |
juankafil1 | 0:3168baff6399 | 283 | p=1;} |
juankafil1 | 0:3168baff6399 | 284 | contadores(); |
juankafil1 | 0:3168baff6399 | 285 | motor(); |
juankafil1 | 0:3168baff6399 | 286 | if(p==1){ |
juankafil1 | 0:3168baff6399 | 287 | while(a23<=110){ |
juankafil1 | 0:3168baff6399 | 288 | if(boton1==0){ |
juankafil1 | 0:3168baff6399 | 289 | wait(1.5); |
juankafil1 | 0:3168baff6399 | 290 | p=0; |
juankafil1 | 0:3168baff6399 | 291 | a2=0; |
juankafil1 | 0:3168baff6399 | 292 | rs232.printf("%d",6); |
juankafil1 | 0:3168baff6399 | 293 | break; |
juankafil1 | 0:3168baff6399 | 294 | }a23++; |
juankafil1 | 0:3168baff6399 | 295 | wait(0.1);}} |
juankafil1 | 0:3168baff6399 | 296 | if(a2==0){ |
juankafil1 | 0:3168baff6399 | 297 | rs232.printf("%d",5);}} |
juankafil1 | 0:3168baff6399 | 298 | |
juankafil1 | 0:3168baff6399 | 299 | int main(){//clase principal |
juankafil1 | 0:3168baff6399 | 300 | d1=1; |
juankafil1 | 0:3168baff6399 | 301 | |
juankafil1 | 0:3168baff6399 | 302 | gOled2.clearDisplay(); |
juankafil1 | 0:3168baff6399 | 303 | gOled2.display(); |
juankafil1 | 0:3168baff6399 | 304 | gOled2.setTextCursor(10, 24); |
juankafil1 | 0:3168baff6399 | 305 | gOled2.printf("Iniciando presenta-cion transversal...\n\r"); |
juankafil1 | 0:3168baff6399 | 306 | gOled2.printf(" :v"); |
juankafil1 | 0:3168baff6399 | 307 | wait(5); |
juankafil1 | 0:3168baff6399 | 308 | |
juankafil1 | 0:3168baff6399 | 309 | while(1){ |
juankafil1 | 0:3168baff6399 | 310 | rs232.attach(&receivedByte); |
juankafil1 | 0:3168baff6399 | 311 | if(boton==0){ |
juankafil1 | 0:3168baff6399 | 312 | rs232.printf("%d",0); |
juankafil1 | 0:3168baff6399 | 313 | t.start(); |
juankafil1 | 0:3168baff6399 | 314 | while(t.read_ms()<=2000); |
juankafil1 | 0:3168baff6399 | 315 | t.stop(); |
juankafil1 | 0:3168baff6399 | 316 | b=b+1; |
juankafil1 | 0:3168baff6399 | 317 | led=0; |
juankafil1 | 0:3168baff6399 | 318 | p=1; |
juankafil1 | 0:3168baff6399 | 319 | led1=1; |
juankafil1 | 0:3168baff6399 | 320 | // rs232.printf("conteo= %d \n\r", b); |
juankafil1 | 0:3168baff6399 | 321 | t.reset(); |
juankafil1 | 0:3168baff6399 | 322 | |
juankafil1 | 0:3168baff6399 | 323 | t.start(); |
juankafil1 | 0:3168baff6399 | 324 | while(t.read_ms()<=4500); |
juankafil1 | 0:3168baff6399 | 325 | t.stop(); |
juankafil1 | 0:3168baff6399 | 326 | rs232.baud(9600); |
juankafil1 | 0:3168baff6399 | 327 | int1.mode(PullUp);//habilitamos resistencia de PullUp |
juankafil1 | 0:3168baff6399 | 328 | int1.rise(&ISR_PTD0);//si hay flanco de subida se va a el programa, habilita la interrupcion |
juankafil1 | 0:3168baff6399 | 329 | //gOled2.printf("Iniciando presentacion transversal...\n"); //mensaje inicial al encender la Oled |
juankafil1 | 0:3168baff6399 | 330 | gOled2.display(); |
juankafil1 | 0:3168baff6399 | 331 | |
juankafil1 | 0:3168baff6399 | 332 | t.reset(); |
juankafil1 | 0:3168baff6399 | 333 | p=0; |
juankafil1 | 0:3168baff6399 | 334 | frecuencia(); |
juankafil1 | 0:3168baff6399 | 335 | |
juankafil1 | 0:3168baff6399 | 336 | t.start(); |
juankafil1 | 0:3168baff6399 | 337 | while(t.read_ms()<=2000); |
juankafil1 | 0:3168baff6399 | 338 | t.stop(); |
juankafil1 | 0:3168baff6399 | 339 | p=1; |
juankafil1 | 0:3168baff6399 | 340 | t.reset(); |
juankafil1 | 0:3168baff6399 | 341 | contadores(); |
juankafil1 | 0:3168baff6399 | 342 | motor (); |
juankafil1 | 0:3168baff6399 | 343 | //inicia el sub programa frecuenia |
juankafil1 | 0:3168baff6399 | 344 | //inicia el programa de los contadores y publicacion de la frecuencia |
juankafil1 | 0:3168baff6399 | 345 | // rs232.printf("%dF=%d\n\r",frec,tiempo); |
juankafil1 | 0:3168baff6399 | 346 | |
juankafil1 | 0:3168baff6399 | 347 | //gOled2.clearDisplay(); |
juankafil1 | 0:3168baff6399 | 348 | gOled2.display(); |
juankafil1 | 0:3168baff6399 | 349 | gOled2.setTextCursor(0, 0); |
juankafil1 | 0:3168baff6399 | 350 | gOled2.printf("se movio%d\n",grados); |
juankafil1 | 0:3168baff6399 | 351 | |
juankafil1 | 0:3168baff6399 | 352 | while(a<=50){ |
juankafil1 | 0:3168baff6399 | 353 | if(boton1==0){ |
juankafil1 | 0:3168baff6399 | 354 | wait(1.5); |
juankafil1 | 0:3168baff6399 | 355 | p=0; |
juankafil1 | 0:3168baff6399 | 356 | c=c+1; |
juankafil1 | 0:3168baff6399 | 357 | rs232.printf("%d",6); |
juankafil1 | 0:3168baff6399 | 358 | break; |
juankafil1 | 0:3168baff6399 | 359 | }a++; |
juankafil1 | 0:3168baff6399 | 360 | wait(0.1);} |
juankafil1 | 0:3168baff6399 | 361 | a=0; |
juankafil1 | 0:3168baff6399 | 362 | if(b!=c){ |
juankafil1 | 0:3168baff6399 | 363 | p=0; |
juankafil1 | 0:3168baff6399 | 364 | rs232.printf("%d",5); |
juankafil1 | 0:3168baff6399 | 365 | } |
juankafil1 | 0:3168baff6399 | 366 | |
juankafil1 | 0:3168baff6399 | 367 | |
juankafil1 | 0:3168baff6399 | 368 | |
juankafil1 | 0:3168baff6399 | 369 | |
juankafil1 | 0:3168baff6399 | 370 | |
juankafil1 | 0:3168baff6399 | 371 | |
juankafil1 | 0:3168baff6399 | 372 | |
juankafil1 | 0:3168baff6399 | 373 | |
juankafil1 | 0:3168baff6399 | 374 | }else |
juankafil1 | 0:3168baff6399 | 375 | gOled2.display(); |
juankafil1 | 0:3168baff6399 | 376 | gOled2.setTextCursor(0, 0); |
juankafil1 | 0:3168baff6399 | 377 | gOled2.printf("esperando.."); |
juankafil1 | 0:3168baff6399 | 378 | } |
juankafil1 | 0:3168baff6399 | 379 | } |
juankafil1 | 0:3168baff6399 | 380 |