menu con motor dc, motor paso, servo, keypad y lcd

Dependencies:   mbed Servo TextLCD Keypad

Committer:
SantiagoE
Date:
Wed Feb 03 18:58:27 2021 +0000
Revision:
0:df9033dc3e2e
hola

Who changed what in which revision?

UserRevisionLine numberNew 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 }