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.
main.cpp@0:888f499e0ce0, 2020-12-04 (annotated)
- Committer:
- juankafil1
- Date:
- Fri Dec 04 04:28:34 2020 +0000
- Revision:
- 0:888f499e0ce0
- Child:
- 1:fccdc54f1314
algo;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| juankafil1 | 0:888f499e0ce0 | 1 | #include "mbed.h" |
| juankafil1 | 0:888f499e0ce0 | 2 | #include "string" |
| juankafil1 | 0:888f499e0ce0 | 3 | #include "mbed.h" |
| juankafil1 | 0:888f499e0ce0 | 4 | #include "sstream" |
| juankafil1 | 0:888f499e0ce0 | 5 | #include <string> |
| juankafil1 | 0:888f499e0ce0 | 6 | #include "TextLCD.h" |
| juankafil1 | 0:888f499e0ce0 | 7 | |
| juankafil1 | 0:888f499e0ce0 | 8 | TextLCD lcd(PTE20,PTE21,PTE22,PTE23,PTE29,PTE30, TextLCD::LCD16x2);// Rs, E, d4, d5, d6, d7, RW=GND |
| juankafil1 | 0:888f499e0ce0 | 9 | Serial pc(USBTX,USBRX); |
| juankafil1 | 0:888f499e0ce0 | 10 | DigitalIn pulso(PTC5); |
| juankafil1 | 0:888f499e0ce0 | 11 | DigitalOut right(PTC7); |
| juankafil1 | 0:888f499e0ce0 | 12 | DigitalOut left(PTC0); |
| juankafil1 | 0:888f499e0ce0 | 13 | DigitalIn start(PTC3),finish(PTC7); |
| juankafil1 | 0:888f499e0ce0 | 14 | Timer Timer1; |
| juankafil1 | 0:888f499e0ce0 | 15 | int rea,ns; |
| juankafil1 | 0:888f499e0ce0 | 16 | string cadena; |
| juankafil1 | 0:888f499e0ce0 | 17 | using namespace std; |
| juankafil1 | 0:888f499e0ce0 | 18 | void velocidad(int a,float ad); |
| juankafil1 | 0:888f499e0ce0 | 19 | int dist(char datos[5]); |
| juankafil1 | 0:888f499e0ce0 | 20 | PwmOut l1(PTB3),l2(PTC2); |
| juankafil1 | 0:888f499e0ce0 | 21 | int selec; |
| juankafil1 | 0:888f499e0ce0 | 22 | float cambio; |
| juankafil1 | 0:888f499e0ce0 | 23 | float rpm=0,auxrpm=0; |
| juankafil1 | 0:888f499e0ce0 | 24 | int contador=0; |
| juankafil1 | 0:888f499e0ce0 | 25 | int distancia=0,disa=0; |
| juankafil1 | 0:888f499e0ce0 | 26 | int second=0; |
| juankafil1 | 0:888f499e0ce0 | 27 | bool antirebote=false; |
| juankafil1 | 0:888f499e0ce0 | 28 | int recorrido=0,rpm1=0; |
| juankafil1 | 0:888f499e0ce0 | 29 | char cade; |
| juankafil1 | 0:888f499e0ce0 | 30 | //using namespace boost; |
| juankafil1 | 0:888f499e0ce0 | 31 | float h; |
| juankafil1 | 0:888f499e0ce0 | 32 | void inicio(){ |
| juankafil1 | 0:888f499e0ce0 | 33 | while(1){ |
| juankafil1 | 0:888f499e0ce0 | 34 | if(start==0){ |
| juankafil1 | 0:888f499e0ce0 | 35 | break; |
| juankafil1 | 0:888f499e0ce0 | 36 | } |
| juankafil1 | 0:888f499e0ce0 | 37 | velocidad(2,0.5); |
| juankafil1 | 0:888f499e0ce0 | 38 | } |
| juankafil1 | 0:888f499e0ce0 | 39 | } |
| juankafil1 | 0:888f499e0ce0 | 40 | void rampa (int sel){ |
| juankafil1 | 0:888f499e0ce0 | 41 | for(float i=1;i<=10;i++){ |
| juankafil1 | 0:888f499e0ce0 | 42 | velocidad(sel,i*10); |
| juankafil1 | 0:888f499e0ce0 | 43 | wait(0.01); |
| juankafil1 | 0:888f499e0ce0 | 44 | } |
| juankafil1 | 0:888f499e0ce0 | 45 | } |
| juankafil1 | 0:888f499e0ce0 | 46 | int main(){ |
| juankafil1 | 0:888f499e0ce0 | 47 | velocidad(0,0); |
| juankafil1 | 0:888f499e0ce0 | 48 | inicio(); |
| juankafil1 | 0:888f499e0ce0 | 49 | velocidad(0,0); |
| juankafil1 | 0:888f499e0ce0 | 50 | lcd.printf("esta en los extremos"); |
| juankafil1 | 0:888f499e0ce0 | 51 | int red=0; |
| juankafil1 | 0:888f499e0ce0 | 52 | char buffer[12],aux[4]; |
| juankafil1 | 0:888f499e0ce0 | 53 | while(1){ |
| juankafil1 | 0:888f499e0ce0 | 54 | |
| juankafil1 | 0:888f499e0ce0 | 55 | if(pc.readable()){// captura string |
| juankafil1 | 0:888f499e0ce0 | 56 | |
| juankafil1 | 0:888f499e0ce0 | 57 | pc.gets(buffer,12); |
| juankafil1 | 0:888f499e0ce0 | 58 | buffer[0]=' '; |
| juankafil1 | 0:888f499e0ce0 | 59 | cade=buffer[1]; |
| juankafil1 | 0:888f499e0ce0 | 60 | aux[1]=buffer[1]; |
| juankafil1 | 0:888f499e0ce0 | 61 | aux[2]=buffer[2]; |
| juankafil1 | 0:888f499e0ce0 | 62 | aux[3]=buffer[3]; |
| juankafil1 | 0:888f499e0ce0 | 63 | second=dist(aux); |
| juankafil1 | 0:888f499e0ce0 | 64 | aux[1]=buffer[4]; |
| juankafil1 | 0:888f499e0ce0 | 65 | aux[2]=buffer[5]; |
| juankafil1 | 0:888f499e0ce0 | 66 | aux[3]=buffer[6]; |
| juankafil1 | 0:888f499e0ce0 | 67 | rpm1=dist(aux); |
| juankafil1 | 0:888f499e0ce0 | 68 | aux[1]=buffer[7]; |
| juankafil1 | 0:888f499e0ce0 | 69 | aux[2]=buffer[8]; |
| juankafil1 | 0:888f499e0ce0 | 70 | aux[3]=buffer[9]; |
| juankafil1 | 0:888f499e0ce0 | 71 | distancia=dist(aux); |
| juankafil1 | 0:888f499e0ce0 | 72 | |
| juankafil1 | 0:888f499e0ce0 | 73 | |
| juankafil1 | 0:888f499e0ce0 | 74 | if(red>0){ |
| juankafil1 | 0:888f499e0ce0 | 75 | recorrido=red*6; |
| juankafil1 | 0:888f499e0ce0 | 76 | } |
| juankafil1 | 0:888f499e0ce0 | 77 | //pc.printf("%s",buffer); |
| juankafil1 | 0:888f499e0ce0 | 78 | // dist(buffer); |
| juankafil1 | 0:888f499e0ce0 | 79 | //pc.printf("%s",cadena); |
| juankafil1 | 0:888f499e0ce0 | 80 | pc.printf("%d",recorrido); |
| juankafil1 | 0:888f499e0ce0 | 81 | } |
| juankafil1 | 0:888f499e0ce0 | 82 | |
| juankafil1 | 0:888f499e0ce0 | 83 | if(cade=='d'){ |
| juankafil1 | 0:888f499e0ce0 | 84 | selec=1; |
| juankafil1 | 0:888f499e0ce0 | 85 | |
| juankafil1 | 0:888f499e0ce0 | 86 | } |
| juankafil1 | 0:888f499e0ce0 | 87 | if (cade=='i'){ |
| juankafil1 | 0:888f499e0ce0 | 88 | selec=2; |
| juankafil1 | 0:888f499e0ce0 | 89 | |
| juankafil1 | 0:888f499e0ce0 | 90 | |
| juankafil1 | 0:888f499e0ce0 | 91 | } |
| juankafil1 | 0:888f499e0ce0 | 92 | if(cade=='n'){selec=0; |
| juankafil1 | 0:888f499e0ce0 | 93 | } |
| juankafil1 | 0:888f499e0ce0 | 94 | |
| juankafil1 | 0:888f499e0ce0 | 95 | |
| juankafil1 | 0:888f499e0ce0 | 96 | |
| juankafil1 | 0:888f499e0ce0 | 97 | |
| juankafil1 | 0:888f499e0ce0 | 98 | pc.printf("%d ,%d ,%d ",rpm1,distancia,second); |
| juankafil1 | 0:888f499e0ce0 | 99 | |
| juankafil1 | 0:888f499e0ce0 | 100 | |
| juankafil1 | 0:888f499e0ce0 | 101 | wait(0.01); |
| juankafil1 | 0:888f499e0ce0 | 102 | |
| juankafil1 | 0:888f499e0ce0 | 103 | // selec=1; |
| juankafil1 | 0:888f499e0ce0 | 104 | |
| juankafil1 | 0:888f499e0ce0 | 105 | |
| juankafil1 | 0:888f499e0ce0 | 106 | //velocidad(selec,cambio); |
| juankafil1 | 0:888f499e0ce0 | 107 | |
| juankafil1 | 0:888f499e0ce0 | 108 | |
| juankafil1 | 0:888f499e0ce0 | 109 | |
| juankafil1 | 0:888f499e0ce0 | 110 | } |
| juankafil1 | 0:888f499e0ce0 | 111 | |
| juankafil1 | 0:888f499e0ce0 | 112 | } |
| juankafil1 | 0:888f499e0ce0 | 113 | |
| juankafil1 | 0:888f499e0ce0 | 114 | void velocidad(int a ,float ad){ |
| juankafil1 | 0:888f499e0ce0 | 115 | switch (a){ |
| juankafil1 | 0:888f499e0ce0 | 116 | case 0: |
| juankafil1 | 0:888f499e0ce0 | 117 | lcd.cls(); |
| juankafil1 | 0:888f499e0ce0 | 118 | lcd.locate(0,0); |
| juankafil1 | 0:888f499e0ce0 | 119 | lcd.printf("%d mm",distancia); |
| juankafil1 | 0:888f499e0ce0 | 120 | lcd.locate(0,1); |
| juankafil1 | 0:888f499e0ce0 | 121 | lcd.printf(" V :%.2f rpm",rpm); |
| juankafil1 | 0:888f499e0ce0 | 122 | l1=0; |
| juankafil1 | 0:888f499e0ce0 | 123 | l2=0; |
| juankafil1 | 0:888f499e0ce0 | 124 | |
| juankafil1 | 0:888f499e0ce0 | 125 | break; |
| juankafil1 | 0:888f499e0ce0 | 126 | case 1: |
| juankafil1 | 0:888f499e0ce0 | 127 | |
| juankafil1 | 0:888f499e0ce0 | 128 | if(rpm<10){ |
| juankafil1 | 0:888f499e0ce0 | 129 | pc.printf("00%.1f ,%d ",rpm,distancia); |
| juankafil1 | 0:888f499e0ce0 | 130 | } |
| juankafil1 | 0:888f499e0ce0 | 131 | if((rpm>10)&&(rpm<100)){ |
| juankafil1 | 0:888f499e0ce0 | 132 | pc.printf("0%.1f ,%d ",rpm,distancia); |
| juankafil1 | 0:888f499e0ce0 | 133 | } |
| juankafil1 | 0:888f499e0ce0 | 134 | if(rpm>100){ |
| juankafil1 | 0:888f499e0ce0 | 135 | pc.printf("0%.1f ,%d ",rpm,distancia); |
| juankafil1 | 0:888f499e0ce0 | 136 | } |
| juankafil1 | 0:888f499e0ce0 | 137 | |
| juankafil1 | 0:888f499e0ce0 | 138 | lcd.cls(); |
| juankafil1 | 0:888f499e0ce0 | 139 | lcd.locate(0,0); |
| juankafil1 | 0:888f499e0ce0 | 140 | lcd.printf("%d mm",distancia); |
| juankafil1 | 0:888f499e0ce0 | 141 | lcd.locate(0,1); |
| juankafil1 | 0:888f499e0ce0 | 142 | lcd.printf(" V :%.2f rpm",rpm); |
| juankafil1 | 0:888f499e0ce0 | 143 | l1.write(ad); |
| juankafil1 | 0:888f499e0ce0 | 144 | |
| juankafil1 | 0:888f499e0ce0 | 145 | l2=0; |
| juankafil1 | 0:888f499e0ce0 | 146 | break; |
| juankafil1 | 0:888f499e0ce0 | 147 | case 2: |
| juankafil1 | 0:888f499e0ce0 | 148 | if(rpm<10){ |
| juankafil1 | 0:888f499e0ce0 | 149 | pc.printf("00%.1f ,%d ",rpm,distancia); |
| juankafil1 | 0:888f499e0ce0 | 150 | } |
| juankafil1 | 0:888f499e0ce0 | 151 | if((rpm>10)&&(rpm<100)){ |
| juankafil1 | 0:888f499e0ce0 | 152 | pc.printf("0%.1f ,%d ",rpm,distancia); |
| juankafil1 | 0:888f499e0ce0 | 153 | } |
| juankafil1 | 0:888f499e0ce0 | 154 | if(rpm>100){ |
| juankafil1 | 0:888f499e0ce0 | 155 | pc.printf("0%.1f ,%d ",rpm,distancia); |
| juankafil1 | 0:888f499e0ce0 | 156 | } |
| juankafil1 | 0:888f499e0ce0 | 157 | lcd.cls(); |
| juankafil1 | 0:888f499e0ce0 | 158 | lcd.locate(0,0); |
| juankafil1 | 0:888f499e0ce0 | 159 | lcd.printf("%d mm",distancia); |
| juankafil1 | 0:888f499e0ce0 | 160 | lcd.locate(0,1); |
| juankafil1 | 0:888f499e0ce0 | 161 | lcd.printf("%.2f rpm",rpm); |
| juankafil1 | 0:888f499e0ce0 | 162 | |
| juankafil1 | 0:888f499e0ce0 | 163 | l2.write(ad); |
| juankafil1 | 0:888f499e0ce0 | 164 | l1=0; |
| juankafil1 | 0:888f499e0ce0 | 165 | break; |
| juankafil1 | 0:888f499e0ce0 | 166 | |
| juankafil1 | 0:888f499e0ce0 | 167 | } |
| juankafil1 | 0:888f499e0ce0 | 168 | |
| juankafil1 | 0:888f499e0ce0 | 169 | } |
| juankafil1 | 0:888f499e0ce0 | 170 | |
| juankafil1 | 0:888f499e0ce0 | 171 | int dist(char datos[4]){ |
| juankafil1 | 0:888f499e0ce0 | 172 | int numero=0,contador=0; |
| juankafil1 | 0:888f499e0ce0 | 173 | char c=' '; |
| juankafil1 | 0:888f499e0ce0 | 174 | for(int i = 3;i >= 0;i --){ |
| juankafil1 | 0:888f499e0ce0 | 175 | c=datos[i]; |
| juankafil1 | 0:888f499e0ce0 | 176 | //pc.putc(c); |
| juankafil1 | 0:888f499e0ce0 | 177 | if(c=='0'){contador=contador+1; } |
| juankafil1 | 0:888f499e0ce0 | 178 | if(c=='1'){ |
| juankafil1 | 0:888f499e0ce0 | 179 | contador=contador+1; |
| juankafil1 | 0:888f499e0ce0 | 180 | if(contador==1){numero=numero+1;} |
| juankafil1 | 0:888f499e0ce0 | 181 | if(contador==2){numero=numero+10;} |
| juankafil1 | 0:888f499e0ce0 | 182 | if(contador==3){numero=numero+100;} } |
| juankafil1 | 0:888f499e0ce0 | 183 | if(c=='2'){ |
| juankafil1 | 0:888f499e0ce0 | 184 | contador=contador+1; |
| juankafil1 | 0:888f499e0ce0 | 185 | if(contador==1){numero=numero+2;} |
| juankafil1 | 0:888f499e0ce0 | 186 | if(contador==2){numero=numero+20;} |
| juankafil1 | 0:888f499e0ce0 | 187 | if(contador==3){numero=numero+200;} } |
| juankafil1 | 0:888f499e0ce0 | 188 | if(c=='3'){ |
| juankafil1 | 0:888f499e0ce0 | 189 | contador=contador+1; |
| juankafil1 | 0:888f499e0ce0 | 190 | if(contador==1){numero=numero+3;} |
| juankafil1 | 0:888f499e0ce0 | 191 | if(contador==2){numero=numero+30;} |
| juankafil1 | 0:888f499e0ce0 | 192 | if(contador==3){numero=numero+300;} } |
| juankafil1 | 0:888f499e0ce0 | 193 | if(c=='4'){ |
| juankafil1 | 0:888f499e0ce0 | 194 | contador=contador+1; |
| juankafil1 | 0:888f499e0ce0 | 195 | if(contador==1){numero=numero+4;} |
| juankafil1 | 0:888f499e0ce0 | 196 | if(contador==2){numero=numero+40;} |
| juankafil1 | 0:888f499e0ce0 | 197 | if(contador==3){numero=numero+400;} } |
| juankafil1 | 0:888f499e0ce0 | 198 | if(c=='5'){ |
| juankafil1 | 0:888f499e0ce0 | 199 | contador=contador+1; |
| juankafil1 | 0:888f499e0ce0 | 200 | if(contador==1){numero=numero+5;} |
| juankafil1 | 0:888f499e0ce0 | 201 | if(contador==2){numero=numero+50;} |
| juankafil1 | 0:888f499e0ce0 | 202 | if(contador==3){numero=numero+500;} } |
| juankafil1 | 0:888f499e0ce0 | 203 | if(c=='6'){ |
| juankafil1 | 0:888f499e0ce0 | 204 | contador=contador+1; |
| juankafil1 | 0:888f499e0ce0 | 205 | if(contador==1){numero=numero+6;} |
| juankafil1 | 0:888f499e0ce0 | 206 | if(contador==2){numero=numero+60;} |
| juankafil1 | 0:888f499e0ce0 | 207 | if(contador==3){numero=numero+600;} } |
| juankafil1 | 0:888f499e0ce0 | 208 | if(c=='7'){ |
| juankafil1 | 0:888f499e0ce0 | 209 | contador=contador+1; |
| juankafil1 | 0:888f499e0ce0 | 210 | if(contador==1){numero=numero+7;} |
| juankafil1 | 0:888f499e0ce0 | 211 | if(contador==2){numero=numero+70;} |
| juankafil1 | 0:888f499e0ce0 | 212 | if(contador==3){numero=numero+700;} } |
| juankafil1 | 0:888f499e0ce0 | 213 | if(c=='8'){ |
| juankafil1 | 0:888f499e0ce0 | 214 | contador=contador+1; |
| juankafil1 | 0:888f499e0ce0 | 215 | if(contador==1){numero=numero+8;} |
| juankafil1 | 0:888f499e0ce0 | 216 | if(contador==2){numero=numero+80;} |
| juankafil1 | 0:888f499e0ce0 | 217 | if(contador==3){numero=numero+800;} } |
| juankafil1 | 0:888f499e0ce0 | 218 | if(c=='9'){ |
| juankafil1 | 0:888f499e0ce0 | 219 | contador=contador+1; |
| juankafil1 | 0:888f499e0ce0 | 220 | if(contador==1){numero=numero+9;} |
| juankafil1 | 0:888f499e0ce0 | 221 | if(contador==2){numero=numero+90;} |
| juankafil1 | 0:888f499e0ce0 | 222 | if(contador==3){numero=numero+900;} } |
| juankafil1 | 0:888f499e0ce0 | 223 | |
| juankafil1 | 0:888f499e0ce0 | 224 | } |
| juankafil1 | 0:888f499e0ce0 | 225 | return numero; |
| juankafil1 | 0:888f499e0ce0 | 226 | } |