menu con motor dc, motor paso, servo, keypad y lcd
Dependencies: mbed Servo TextLCD Keypad
main.cpp@0:df9033dc3e2e, 2021-02-03 (annotated)
- Committer:
- SantiagoE
- Date:
- Wed Feb 03 18:58:27 2021 +0000
- Revision:
- 0:df9033dc3e2e
hola
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
SantiagoE | 0:df9033dc3e2e | 1 | #include "mbed.h" |
SantiagoE | 0:df9033dc3e2e | 2 | #include "Keypad.h" |
SantiagoE | 0:df9033dc3e2e | 3 | #include "TextLCD.h" |
SantiagoE | 0:df9033dc3e2e | 4 | #include "Servo.h" |
SantiagoE | 0:df9033dc3e2e | 5 | //StepperMotorUni paso(D0,D1,D2,D3); |
SantiagoE | 0:df9033dc3e2e | 6 | BusOut paso(D0,D1,D2,D3); |
SantiagoE | 0:df9033dc3e2e | 7 | int posi; |
SantiagoE | 0:df9033dc3e2e | 8 | int violet=5; |
SantiagoE | 0:df9033dc3e2e | 9 | int vector[4]= { |
SantiagoE | 0:df9033dc3e2e | 10 | 0b1000, |
SantiagoE | 0:df9033dc3e2e | 11 | 0b0100, |
SantiagoE | 0:df9033dc3e2e | 12 | 0b0010, |
SantiagoE | 0:df9033dc3e2e | 13 | 0b0001, |
SantiagoE | 0:df9033dc3e2e | 14 | }; |
SantiagoE | 0:df9033dc3e2e | 15 | Servo Servo1(D4);//digital |
SantiagoE | 0:df9033dc3e2e | 16 | PwmOut motdc1(D8); |
SantiagoE | 0:df9033dc3e2e | 17 | PwmOut motdc2(D9); |
SantiagoE | 0:df9033dc3e2e | 18 | PwmOut pwm1(D12); |
SantiagoE | 0:df9033dc3e2e | 19 | DigitalOut led(LED1); |
SantiagoE | 0:df9033dc3e2e | 20 | AnalogIn potenciometro(A0); |
SantiagoE | 0:df9033dc3e2e | 21 | AnalogIn lm(A1); |
SantiagoE | 0:df9033dc3e2e | 22 | TextLCD lcd(PTB8, PTB9,PTB10,PTB11,PTE2,PTE3, TextLCD::LCD16x2); |
SantiagoE | 0:df9033dc3e2e | 23 | Keypad teclado(PTC4,PTC3,PTC0,PTC7,PTC11,PTC10,PTC6,PTC5); |
SantiagoE | 0:df9033dc3e2e | 24 | Ticker porc; |
SantiagoE | 0:df9033dc3e2e | 25 | int num_pasos=0; |
SantiagoE | 0:df9033dc3e2e | 26 | char key; |
SantiagoE | 0:df9033dc3e2e | 27 | //int x=0,m=0,a=0,g=0,ser=0,dirs=0,dirp=0,pas=0,unid,dec,unid1,dec1,servo,grados; |
SantiagoE | 0:df9033dc3e2e | 28 | int a,b,c,j=0,t1,t2,tt,pp; |
SantiagoE | 0:df9033dc3e2e | 29 | int al,on,off,mdc,mdct,ppt,ppd,contm,sert; |
SantiagoE | 0:df9033dc3e2e | 30 | float porcentaje1,porcentaje2,l; |
SantiagoE | 0:df9033dc3e2e | 31 | void Pin() |
SantiagoE | 0:df9033dc3e2e | 32 | { |
SantiagoE | 0:df9033dc3e2e | 33 | l=lm.read(); |
SantiagoE | 0:df9033dc3e2e | 34 | l=(l*3)*100; |
SantiagoE | 0:df9033dc3e2e | 35 | motdc1=porcentaje1; |
SantiagoE | 0:df9033dc3e2e | 36 | motdc2=porcentaje2; |
SantiagoE | 0:df9033dc3e2e | 37 | |
SantiagoE | 0:df9033dc3e2e | 38 | } |
SantiagoE | 0:df9033dc3e2e | 39 | int main() |
SantiagoE | 0:df9033dc3e2e | 40 | { |
SantiagoE | 0:df9033dc3e2e | 41 | porc.attach(&Pin,0.002); |
SantiagoE | 0:df9033dc3e2e | 42 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 43 | lcd.printf("Edward \n20181573088"); |
SantiagoE | 0:df9033dc3e2e | 44 | wait(4.5); |
SantiagoE | 0:df9033dc3e2e | 45 | casa: |
SantiagoE | 0:df9033dc3e2e | 46 | wait(0.5); |
SantiagoE | 0:df9033dc3e2e | 47 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 48 | lcd.printf("1.manual 2.auto"); |
SantiagoE | 0:df9033dc3e2e | 49 | //definición de velocidad paso a paso y periodo del servo |
SantiagoE | 0:df9033dc3e2e | 50 | //paso.set_pps(600); |
SantiagoE | 0:df9033dc3e2e | 51 | Servo1.Enable(1500,20000);//en la mitad la posición |
SantiagoE | 0:df9033dc3e2e | 52 | while(1){ |
SantiagoE | 0:df9033dc3e2e | 53 | while(1) { |
SantiagoE | 0:df9033dc3e2e | 54 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 55 | if(key!='\0') { |
SantiagoE | 0:df9033dc3e2e | 56 | if(key=='1') { |
SantiagoE | 0:df9033dc3e2e | 57 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 58 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 59 | lcd.printf("Manual"); |
SantiagoE | 0:df9033dc3e2e | 60 | goto manual; |
SantiagoE | 0:df9033dc3e2e | 61 | } else if(key=='2') { |
SantiagoE | 0:df9033dc3e2e | 62 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 63 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 64 | lcd.printf("valor del servo"); |
SantiagoE | 0:df9033dc3e2e | 65 | goto datos; |
SantiagoE | 0:df9033dc3e2e | 66 | } |
SantiagoE | 0:df9033dc3e2e | 67 | } |
SantiagoE | 0:df9033dc3e2e | 68 | while(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 69 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 70 | } |
SantiagoE | 0:df9033dc3e2e | 71 | } |
SantiagoE | 0:df9033dc3e2e | 72 | while(1) { |
SantiagoE | 0:df9033dc3e2e | 73 | manual: |
SantiagoE | 0:df9033dc3e2e | 74 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 75 | lcd.printf("Manual"); |
SantiagoE | 0:df9033dc3e2e | 76 | wait(0.5); |
SantiagoE | 0:df9033dc3e2e | 77 | led=1; |
SantiagoE | 0:df9033dc3e2e | 78 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 79 | if(key!='\0') { |
SantiagoE | 0:df9033dc3e2e | 80 | //Manual temperatura |
SantiagoE | 0:df9033dc3e2e | 81 | if(key=='1') { |
SantiagoE | 0:df9033dc3e2e | 82 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 83 | lcd.printf("temperatura"); |
SantiagoE | 0:df9033dc3e2e | 84 | goto manualtemperatura; |
SantiagoE | 0:df9033dc3e2e | 85 | //Manual alarma |
SantiagoE | 0:df9033dc3e2e | 86 | }else if(key=='2') { |
SantiagoE | 0:df9033dc3e2e | 87 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 88 | lcd.printf("alarma"); |
SantiagoE | 0:df9033dc3e2e | 89 | goto manualalarma; |
SantiagoE | 0:df9033dc3e2e | 90 | //Manual motor DC |
SantiagoE | 0:df9033dc3e2e | 91 | }else if(key=='3') { |
SantiagoE | 0:df9033dc3e2e | 92 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 93 | lcd.printf("Motor DC\n1.Izq 2.Dere"); |
SantiagoE | 0:df9033dc3e2e | 94 | wait(0.5); |
SantiagoE | 0:df9033dc3e2e | 95 | while(1) { |
SantiagoE | 0:df9033dc3e2e | 96 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 97 | if(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 98 | if(j==0){ |
SantiagoE | 0:df9033dc3e2e | 99 | mdct=key; |
SantiagoE | 0:df9033dc3e2e | 100 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 101 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 102 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 103 | lcd.printf("Velocidad"); |
SantiagoE | 0:df9033dc3e2e | 104 | }else if(j==1){ |
SantiagoE | 0:df9033dc3e2e | 105 | lcd.locate(0,1); |
SantiagoE | 0:df9033dc3e2e | 106 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 107 | a=(key-'0')*10; |
SantiagoE | 0:df9033dc3e2e | 108 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 109 | } else if(j==2) { |
SantiagoE | 0:df9033dc3e2e | 110 | lcd.locate(1,1); |
SantiagoE | 0:df9033dc3e2e | 111 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 112 | b=(key-'0'); |
SantiagoE | 0:df9033dc3e2e | 113 | mdc=a+b; |
SantiagoE | 0:df9033dc3e2e | 114 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 115 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 116 | lcd.printf("%d",mdc); |
SantiagoE | 0:df9033dc3e2e | 117 | j=0; |
SantiagoE | 0:df9033dc3e2e | 118 | goto manualmdc; |
SantiagoE | 0:df9033dc3e2e | 119 | } |
SantiagoE | 0:df9033dc3e2e | 120 | } |
SantiagoE | 0:df9033dc3e2e | 121 | while(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 122 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 123 | } |
SantiagoE | 0:df9033dc3e2e | 124 | } |
SantiagoE | 0:df9033dc3e2e | 125 | //Manual paso a paso |
SantiagoE | 0:df9033dc3e2e | 126 | }else if(key=='4') { |
SantiagoE | 0:df9033dc3e2e | 127 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 128 | lcd.printf("Motor PP\n1.Izq 2.Dere"); |
SantiagoE | 0:df9033dc3e2e | 129 | wait(0.5); |
SantiagoE | 0:df9033dc3e2e | 130 | while(1) { |
SantiagoE | 0:df9033dc3e2e | 131 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 132 | if(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 133 | if(j==0){ |
SantiagoE | 0:df9033dc3e2e | 134 | ppd=key; |
SantiagoE | 0:df9033dc3e2e | 135 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 136 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 137 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 138 | lcd.printf("num pasos"); |
SantiagoE | 0:df9033dc3e2e | 139 | }else if(j==1){ |
SantiagoE | 0:df9033dc3e2e | 140 | lcd.locate(0,1); |
SantiagoE | 0:df9033dc3e2e | 141 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 142 | a=(key-'0')*10; |
SantiagoE | 0:df9033dc3e2e | 143 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 144 | } else if(j==2) { |
SantiagoE | 0:df9033dc3e2e | 145 | lcd.locate(1,1); |
SantiagoE | 0:df9033dc3e2e | 146 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 147 | b=(key-'0'); |
SantiagoE | 0:df9033dc3e2e | 148 | ppt=a+b; |
SantiagoE | 0:df9033dc3e2e | 149 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 150 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 151 | lcd.printf("%d",ppt); |
SantiagoE | 0:df9033dc3e2e | 152 | j=0; |
SantiagoE | 0:df9033dc3e2e | 153 | goto manualpp; |
SantiagoE | 0:df9033dc3e2e | 154 | } |
SantiagoE | 0:df9033dc3e2e | 155 | } |
SantiagoE | 0:df9033dc3e2e | 156 | while(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 157 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 158 | } |
SantiagoE | 0:df9033dc3e2e | 159 | } |
SantiagoE | 0:df9033dc3e2e | 160 | //Manual servo |
SantiagoE | 0:df9033dc3e2e | 161 | }else if(key=='5') { |
SantiagoE | 0:df9033dc3e2e | 162 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 163 | lcd.printf("servo\nangulo"); |
SantiagoE | 0:df9033dc3e2e | 164 | wait(0.5); |
SantiagoE | 0:df9033dc3e2e | 165 | while(1) { |
SantiagoE | 0:df9033dc3e2e | 166 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 167 | if(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 168 | if(j==0){ |
SantiagoE | 0:df9033dc3e2e | 169 | lcd.locate(0,1); |
SantiagoE | 0:df9033dc3e2e | 170 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 171 | a=(key-'0')*10; |
SantiagoE | 0:df9033dc3e2e | 172 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 173 | } else if(j==1) { |
SantiagoE | 0:df9033dc3e2e | 174 | lcd.locate(1,1); |
SantiagoE | 0:df9033dc3e2e | 175 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 176 | b=(key-'0'); |
SantiagoE | 0:df9033dc3e2e | 177 | sert=a+b; |
SantiagoE | 0:df9033dc3e2e | 178 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 179 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 180 | lcd.printf("%d",sert); |
SantiagoE | 0:df9033dc3e2e | 181 | j=0; |
SantiagoE | 0:df9033dc3e2e | 182 | goto manualservo; |
SantiagoE | 0:df9033dc3e2e | 183 | } |
SantiagoE | 0:df9033dc3e2e | 184 | } |
SantiagoE | 0:df9033dc3e2e | 185 | while(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 186 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 187 | } |
SantiagoE | 0:df9033dc3e2e | 188 | } |
SantiagoE | 0:df9033dc3e2e | 189 | //Menu principal |
SantiagoE | 0:df9033dc3e2e | 190 | } else if(key=='*') { |
SantiagoE | 0:df9033dc3e2e | 191 | paso=0b000; |
SantiagoE | 0:df9033dc3e2e | 192 | Servo1.SetPosition(500);//0 grados |
SantiagoE | 0:df9033dc3e2e | 193 | goto casa; |
SantiagoE | 0:df9033dc3e2e | 194 | } |
SantiagoE | 0:df9033dc3e2e | 195 | } |
SantiagoE | 0:df9033dc3e2e | 196 | while(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 197 | |
SantiagoE | 0:df9033dc3e2e | 198 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 199 | } |
SantiagoE | 0:df9033dc3e2e | 200 | |
SantiagoE | 0:df9033dc3e2e | 201 | } |
SantiagoE | 0:df9033dc3e2e | 202 | //#1 |
SantiagoE | 0:df9033dc3e2e | 203 | while(1) { |
SantiagoE | 0:df9033dc3e2e | 204 | manualtemperatura: |
SantiagoE | 0:df9033dc3e2e | 205 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 206 | lcd.printf("la temp es: \n%f",l); |
SantiagoE | 0:df9033dc3e2e | 207 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 208 | if(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 209 | if(key=='1'){ |
SantiagoE | 0:df9033dc3e2e | 210 | goto manual; |
SantiagoE | 0:df9033dc3e2e | 211 | }else if(key=='2'){ |
SantiagoE | 0:df9033dc3e2e | 212 | goto casa; |
SantiagoE | 0:df9033dc3e2e | 213 | } |
SantiagoE | 0:df9033dc3e2e | 214 | } |
SantiagoE | 0:df9033dc3e2e | 215 | while(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 216 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 217 | } |
SantiagoE | 0:df9033dc3e2e | 218 | } |
SantiagoE | 0:df9033dc3e2e | 219 | //#2 |
SantiagoE | 0:df9033dc3e2e | 220 | while(1) { |
SantiagoE | 0:df9033dc3e2e | 221 | manualalarma: |
SantiagoE | 0:df9033dc3e2e | 222 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 223 | if(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 224 | if(key=='1'){ |
SantiagoE | 0:df9033dc3e2e | 225 | on=1; |
SantiagoE | 0:df9033dc3e2e | 226 | off=0; |
SantiagoE | 0:df9033dc3e2e | 227 | }else if(key=='2'){ |
SantiagoE | 0:df9033dc3e2e | 228 | off=1; |
SantiagoE | 0:df9033dc3e2e | 229 | on=0; |
SantiagoE | 0:df9033dc3e2e | 230 | }else if(key=='3'){ |
SantiagoE | 0:df9033dc3e2e | 231 | goto manual; |
SantiagoE | 0:df9033dc3e2e | 232 | }else if(key=='4'){ |
SantiagoE | 0:df9033dc3e2e | 233 | goto casa; |
SantiagoE | 0:df9033dc3e2e | 234 | } |
SantiagoE | 0:df9033dc3e2e | 235 | } |
SantiagoE | 0:df9033dc3e2e | 236 | if(on==1){ |
SantiagoE | 0:df9033dc3e2e | 237 | for (float i; i<1.0; i=i+0.1) { |
SantiagoE | 0:df9033dc3e2e | 238 | pwm1=i; |
SantiagoE | 0:df9033dc3e2e | 239 | } |
SantiagoE | 0:df9033dc3e2e | 240 | }else if(off==1){ |
SantiagoE | 0:df9033dc3e2e | 241 | pwm1=0; |
SantiagoE | 0:df9033dc3e2e | 242 | } |
SantiagoE | 0:df9033dc3e2e | 243 | while(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 244 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 245 | } |
SantiagoE | 0:df9033dc3e2e | 246 | } |
SantiagoE | 0:df9033dc3e2e | 247 | //#3 |
SantiagoE | 0:df9033dc3e2e | 248 | while(1) { |
SantiagoE | 0:df9033dc3e2e | 249 | manualmdc: |
SantiagoE | 0:df9033dc3e2e | 250 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 251 | if(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 252 | if(key=='1'){ |
SantiagoE | 0:df9033dc3e2e | 253 | goto manual; |
SantiagoE | 0:df9033dc3e2e | 254 | }else if(key=='2'){ |
SantiagoE | 0:df9033dc3e2e | 255 | goto casa; |
SantiagoE | 0:df9033dc3e2e | 256 | } |
SantiagoE | 0:df9033dc3e2e | 257 | } |
SantiagoE | 0:df9033dc3e2e | 258 | if(mdct==1){ |
SantiagoE | 0:df9033dc3e2e | 259 | porcentaje1=mdc*0.001; |
SantiagoE | 0:df9033dc3e2e | 260 | porcentaje2=0; |
SantiagoE | 0:df9033dc3e2e | 261 | }else if(mdct==2){ |
SantiagoE | 0:df9033dc3e2e | 262 | porcentaje2=mdc*0.01; |
SantiagoE | 0:df9033dc3e2e | 263 | porcentaje1=0; |
SantiagoE | 0:df9033dc3e2e | 264 | } |
SantiagoE | 0:df9033dc3e2e | 265 | while(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 266 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 267 | } |
SantiagoE | 0:df9033dc3e2e | 268 | } |
SantiagoE | 0:df9033dc3e2e | 269 | //#4 |
SantiagoE | 0:df9033dc3e2e | 270 | while(1) { |
SantiagoE | 0:df9033dc3e2e | 271 | manualpp: |
SantiagoE | 0:df9033dc3e2e | 272 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 273 | if(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 274 | if(key=='1'){ |
SantiagoE | 0:df9033dc3e2e | 275 | goto manual; |
SantiagoE | 0:df9033dc3e2e | 276 | }else if(key=='2'){ |
SantiagoE | 0:df9033dc3e2e | 277 | goto casa; |
SantiagoE | 0:df9033dc3e2e | 278 | } |
SantiagoE | 0:df9033dc3e2e | 279 | } |
SantiagoE | 0:df9033dc3e2e | 280 | if(ppd==1){ |
SantiagoE | 0:df9033dc3e2e | 281 | //num_pasos=0; |
SantiagoE | 0:df9033dc3e2e | 282 | while(num_pasos<=(ppt*10)){ |
SantiagoE | 0:df9033dc3e2e | 283 | paso=vector[posi]; |
SantiagoE | 0:df9033dc3e2e | 284 | wait(0.002); |
SantiagoE | 0:df9033dc3e2e | 285 | posi++; |
SantiagoE | 0:df9033dc3e2e | 286 | if(posi==5) { |
SantiagoE | 0:df9033dc3e2e | 287 | posi=0; |
SantiagoE | 0:df9033dc3e2e | 288 | num_pasos++; |
SantiagoE | 0:df9033dc3e2e | 289 | } |
SantiagoE | 0:df9033dc3e2e | 290 | } |
SantiagoE | 0:df9033dc3e2e | 291 | }else if(ppd==2){ |
SantiagoE | 0:df9033dc3e2e | 292 | //num_pasos=0; |
SantiagoE | 0:df9033dc3e2e | 293 | while(num_pasos<=(ppt*10)){ |
SantiagoE | 0:df9033dc3e2e | 294 | paso=vector[violet]; |
SantiagoE | 0:df9033dc3e2e | 295 | wait(0.002); |
SantiagoE | 0:df9033dc3e2e | 296 | violet--;; |
SantiagoE | 0:df9033dc3e2e | 297 | if(violet==0) { |
SantiagoE | 0:df9033dc3e2e | 298 | violet=5; |
SantiagoE | 0:df9033dc3e2e | 299 | num_pasos++; |
SantiagoE | 0:df9033dc3e2e | 300 | } |
SantiagoE | 0:df9033dc3e2e | 301 | } |
SantiagoE | 0:df9033dc3e2e | 302 | } |
SantiagoE | 0:df9033dc3e2e | 303 | while(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 304 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 305 | } |
SantiagoE | 0:df9033dc3e2e | 306 | } |
SantiagoE | 0:df9033dc3e2e | 307 | //#5 |
SantiagoE | 0:df9033dc3e2e | 308 | while(1) { |
SantiagoE | 0:df9033dc3e2e | 309 | manualservo: |
SantiagoE | 0:df9033dc3e2e | 310 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 311 | if(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 312 | if(key=='1'){ |
SantiagoE | 0:df9033dc3e2e | 313 | goto manual; |
SantiagoE | 0:df9033dc3e2e | 314 | }else if(key=='2'){ |
SantiagoE | 0:df9033dc3e2e | 315 | goto casa; |
SantiagoE | 0:df9033dc3e2e | 316 | } |
SantiagoE | 0:df9033dc3e2e | 317 | } |
SantiagoE | 0:df9033dc3e2e | 318 | int Val=500+((1000/90)*sert); |
SantiagoE | 0:df9033dc3e2e | 319 | for(int i=500; i<Val; i+=25) { |
SantiagoE | 0:df9033dc3e2e | 320 | Servo1.SetPosition(i); |
SantiagoE | 0:df9033dc3e2e | 321 | } |
SantiagoE | 0:df9033dc3e2e | 322 | while(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 323 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 324 | } |
SantiagoE | 0:df9033dc3e2e | 325 | } |
SantiagoE | 0:df9033dc3e2e | 326 | |
SantiagoE | 0:df9033dc3e2e | 327 | while(1) { |
SantiagoE | 0:df9033dc3e2e | 328 | datos: |
SantiagoE | 0:df9033dc3e2e | 329 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 330 | if(key!='\0') { |
SantiagoE | 0:df9033dc3e2e | 331 | if(j==0) { |
SantiagoE | 0:df9033dc3e2e | 332 | lcd.locate(0,1); |
SantiagoE | 0:df9033dc3e2e | 333 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 334 | a=(key-'0')*10; |
SantiagoE | 0:df9033dc3e2e | 335 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 336 | } else if(j==1) { |
SantiagoE | 0:df9033dc3e2e | 337 | lcd.locate(1,1); |
SantiagoE | 0:df9033dc3e2e | 338 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 339 | b=(key-'0'); |
SantiagoE | 0:df9033dc3e2e | 340 | sert=a+b; |
SantiagoE | 0:df9033dc3e2e | 341 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 342 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 343 | lcd.printf("direc mot\n1.Izq 2.Dere"); |
SantiagoE | 0:df9033dc3e2e | 344 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 345 | } else if(j==2) { |
SantiagoE | 0:df9033dc3e2e | 346 | if (key=='1') { |
SantiagoE | 0:df9033dc3e2e | 347 | mdct=1; |
SantiagoE | 0:df9033dc3e2e | 348 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 349 | } else if(key=='2') { |
SantiagoE | 0:df9033dc3e2e | 350 | mdct=2; |
SantiagoE | 0:df9033dc3e2e | 351 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 352 | } |
SantiagoE | 0:df9033dc3e2e | 353 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 354 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 355 | lcd.printf("vel mot"); |
SantiagoE | 0:df9033dc3e2e | 356 | }else if(j==3) { |
SantiagoE | 0:df9033dc3e2e | 357 | lcd.locate(0,1); |
SantiagoE | 0:df9033dc3e2e | 358 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 359 | a=(key-'0')*10; |
SantiagoE | 0:df9033dc3e2e | 360 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 361 | } else if(j==4) { |
SantiagoE | 0:df9033dc3e2e | 362 | lcd.locate(1,1); |
SantiagoE | 0:df9033dc3e2e | 363 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 364 | b=(key-'0'); |
SantiagoE | 0:df9033dc3e2e | 365 | mdc=a+b; |
SantiagoE | 0:df9033dc3e2e | 366 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 367 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 368 | lcd.printf("direc pp\n1.Izq 2.Dere"); |
SantiagoE | 0:df9033dc3e2e | 369 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 370 | }else if(j==5) { |
SantiagoE | 0:df9033dc3e2e | 371 | if (key=='1') { |
SantiagoE | 0:df9033dc3e2e | 372 | ppd=1; |
SantiagoE | 0:df9033dc3e2e | 373 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 374 | } else if(key=='2') { |
SantiagoE | 0:df9033dc3e2e | 375 | ppd=2; |
SantiagoE | 0:df9033dc3e2e | 376 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 377 | } |
SantiagoE | 0:df9033dc3e2e | 378 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 379 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 380 | lcd.printf("pasos pp"); |
SantiagoE | 0:df9033dc3e2e | 381 | }else if(j==6) { |
SantiagoE | 0:df9033dc3e2e | 382 | lcd.locate(0,1); |
SantiagoE | 0:df9033dc3e2e | 383 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 384 | a=(key-'0')*10; |
SantiagoE | 0:df9033dc3e2e | 385 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 386 | } else if(j==7) { |
SantiagoE | 0:df9033dc3e2e | 387 | lcd.locate(1,1); |
SantiagoE | 0:df9033dc3e2e | 388 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 389 | b=(key-'0'); |
SantiagoE | 0:df9033dc3e2e | 390 | ppt=a+b; |
SantiagoE | 0:df9033dc3e2e | 391 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 392 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 393 | lcd.printf("set point"); |
SantiagoE | 0:df9033dc3e2e | 394 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 395 | } else if (j==8) { |
SantiagoE | 0:df9033dc3e2e | 396 | lcd.locate(0,1); |
SantiagoE | 0:df9033dc3e2e | 397 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 398 | t1=(key-'0')*10; |
SantiagoE | 0:df9033dc3e2e | 399 | j=j+1; |
SantiagoE | 0:df9033dc3e2e | 400 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 401 | } else if (j==9) { |
SantiagoE | 0:df9033dc3e2e | 402 | lcd.locate(1,1); |
SantiagoE | 0:df9033dc3e2e | 403 | lcd.printf("%c",key); |
SantiagoE | 0:df9033dc3e2e | 404 | t2=(key-'0'); |
SantiagoE | 0:df9033dc3e2e | 405 | tt=t1+t2; |
SantiagoE | 0:df9033dc3e2e | 406 | j=0; |
SantiagoE | 0:df9033dc3e2e | 407 | wait(1); |
SantiagoE | 0:df9033dc3e2e | 408 | goto automatico; |
SantiagoE | 0:df9033dc3e2e | 409 | } |
SantiagoE | 0:df9033dc3e2e | 410 | } |
SantiagoE | 0:df9033dc3e2e | 411 | while(key != '\0') { |
SantiagoE | 0:df9033dc3e2e | 412 | key=teclado.ReadKey(); |
SantiagoE | 0:df9033dc3e2e | 413 | } |
SantiagoE | 0:df9033dc3e2e | 414 | } |
SantiagoE | 0:df9033dc3e2e | 415 | while(1) { |
SantiagoE | 0:df9033dc3e2e | 416 | automatico: |
SantiagoE | 0:df9033dc3e2e | 417 | lcd.cls(); |
SantiagoE | 0:df9033dc3e2e | 418 | lcd.printf("la temp es: \n%f",l); |
SantiagoE | 0:df9033dc3e2e | 419 | if (l<tt) { |
SantiagoE | 0:df9033dc3e2e | 420 | pwm1=0; |
SantiagoE | 0:df9033dc3e2e | 421 | Servo1.SetPosition(500); |
SantiagoE | 0:df9033dc3e2e | 422 | porcentaje1=0; |
SantiagoE | 0:df9033dc3e2e | 423 | porcentaje2=0; |
SantiagoE | 0:df9033dc3e2e | 424 | paso=0b0000; |
SantiagoE | 0:df9033dc3e2e | 425 | } |
SantiagoE | 0:df9033dc3e2e | 426 | if(l>tt) { |
SantiagoE | 0:df9033dc3e2e | 427 | //automático motor dc |
SantiagoE | 0:df9033dc3e2e | 428 | if(mdct==1){ |
SantiagoE | 0:df9033dc3e2e | 429 | porcentaje1=mdc*0.001; |
SantiagoE | 0:df9033dc3e2e | 430 | porcentaje2=0; |
SantiagoE | 0:df9033dc3e2e | 431 | }else if(mdct==2){ |
SantiagoE | 0:df9033dc3e2e | 432 | porcentaje2=mdc*0.01; |
SantiagoE | 0:df9033dc3e2e | 433 | porcentaje1=0; |
SantiagoE | 0:df9033dc3e2e | 434 | } |
SantiagoE | 0:df9033dc3e2e | 435 | //automático paso a paso |
SantiagoE | 0:df9033dc3e2e | 436 | if(ppd==1){ |
SantiagoE | 0:df9033dc3e2e | 437 | //num_pasos=0; |
SantiagoE | 0:df9033dc3e2e | 438 | while(num_pasos<=(ppt*10)){ |
SantiagoE | 0:df9033dc3e2e | 439 | paso=vector[posi]; |
SantiagoE | 0:df9033dc3e2e | 440 | wait(0.002); |
SantiagoE | 0:df9033dc3e2e | 441 | posi++; |
SantiagoE | 0:df9033dc3e2e | 442 | if(posi==5) { |
SantiagoE | 0:df9033dc3e2e | 443 | posi=0; |
SantiagoE | 0:df9033dc3e2e | 444 | num_pasos++; |
SantiagoE | 0:df9033dc3e2e | 445 | } |
SantiagoE | 0:df9033dc3e2e | 446 | } |
SantiagoE | 0:df9033dc3e2e | 447 | }else if(ppd==2){ |
SantiagoE | 0:df9033dc3e2e | 448 | //num_pasos=0; |
SantiagoE | 0:df9033dc3e2e | 449 | while(num_pasos<=(ppt*10)){ |
SantiagoE | 0:df9033dc3e2e | 450 | paso=vector[violet]; |
SantiagoE | 0:df9033dc3e2e | 451 | wait(0.002); |
SantiagoE | 0:df9033dc3e2e | 452 | violet--;; |
SantiagoE | 0:df9033dc3e2e | 453 | if(violet==0) { |
SantiagoE | 0:df9033dc3e2e | 454 | violet=5; |
SantiagoE | 0:df9033dc3e2e | 455 | num_pasos++; |
SantiagoE | 0:df9033dc3e2e | 456 | } |
SantiagoE | 0:df9033dc3e2e | 457 | } |
SantiagoE | 0:df9033dc3e2e | 458 | } |
SantiagoE | 0:df9033dc3e2e | 459 | //grados del servo |
SantiagoE | 0:df9033dc3e2e | 460 | int Val=500+((1000/90)*sert); |
SantiagoE | 0:df9033dc3e2e | 461 | for(int i=500; i<Val; i+=25) { |
SantiagoE | 0:df9033dc3e2e | 462 | Servo1.SetPosition(i); |
SantiagoE | 0:df9033dc3e2e | 463 | } |
SantiagoE | 0:df9033dc3e2e | 464 | //Bocina |
SantiagoE | 0:df9033dc3e2e | 465 | for (float i; i<1.0; i=i+0.1) { |
SantiagoE | 0:df9033dc3e2e | 466 | pwm1=i; |
SantiagoE | 0:df9033dc3e2e | 467 | } |
SantiagoE | 0:df9033dc3e2e | 468 | } |
SantiagoE | 0:df9033dc3e2e | 469 | } |
SantiagoE | 0:df9033dc3e2e | 470 | } |
SantiagoE | 0:df9033dc3e2e | 471 | } |