juan carlos cortes parra / Mbed 2 deprecated Lab4rampadesaceleracion

Dependencies:   mbed TextLCD

Committer:
juankafil1
Date:
Fri Dec 04 04:28:34 2020 +0000
Revision:
0:888f499e0ce0
Child:
1:fccdc54f1314
algo;

Who changed what in which revision?

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