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
- Committer:
- juankafil1
- Date:
- 2020-12-04
- Revision:
- 0:888f499e0ce0
- Child:
- 1:fccdc54f1314
File content as of revision 0:888f499e0ce0:
#include "mbed.h"
#include "string"
#include "mbed.h"
#include "sstream"
#include <string>
#include "TextLCD.h"
TextLCD lcd(PTE20,PTE21,PTE22,PTE23,PTE29,PTE30, TextLCD::LCD16x2);// Rs, E, d4, d5, d6, d7, RW=GND
Serial pc(USBTX,USBRX);
DigitalIn pulso(PTC5);
DigitalOut right(PTC7);
DigitalOut left(PTC0);
DigitalIn start(PTC3),finish(PTC7);
Timer Timer1;
int rea,ns;
string cadena;
using namespace std;
void velocidad(int a,float ad);
int dist(char datos[5]);
PwmOut l1(PTB3),l2(PTC2);
int selec;
float cambio;
float rpm=0,auxrpm=0;
int contador=0;
int distancia=0,disa=0;
int second=0;
bool antirebote=false;
int recorrido=0,rpm1=0;
char cade;
//using namespace boost;
float h;
void inicio(){
while(1){
if(start==0){
break;
}
velocidad(2,0.5);
}
}
void rampa (int sel){
for(float i=1;i<=10;i++){
velocidad(sel,i*10);
wait(0.01);
}
}
int main(){
velocidad(0,0);
inicio();
velocidad(0,0);
lcd.printf("esta en los extremos");
int red=0;
char buffer[12],aux[4];
while(1){
if(pc.readable()){// captura string
pc.gets(buffer,12);
buffer[0]=' ';
cade=buffer[1];
aux[1]=buffer[1];
aux[2]=buffer[2];
aux[3]=buffer[3];
second=dist(aux);
aux[1]=buffer[4];
aux[2]=buffer[5];
aux[3]=buffer[6];
rpm1=dist(aux);
aux[1]=buffer[7];
aux[2]=buffer[8];
aux[3]=buffer[9];
distancia=dist(aux);
if(red>0){
recorrido=red*6;
}
//pc.printf("%s",buffer);
// dist(buffer);
//pc.printf("%s",cadena);
pc.printf("%d",recorrido);
}
if(cade=='d'){
selec=1;
}
if (cade=='i'){
selec=2;
}
if(cade=='n'){selec=0;
}
pc.printf("%d ,%d ,%d ",rpm1,distancia,second);
wait(0.01);
// selec=1;
//velocidad(selec,cambio);
}
}
void velocidad(int a ,float ad){
switch (a){
case 0:
lcd.cls();
lcd.locate(0,0);
lcd.printf("%d mm",distancia);
lcd.locate(0,1);
lcd.printf(" V :%.2f rpm",rpm);
l1=0;
l2=0;
break;
case 1:
if(rpm<10){
pc.printf("00%.1f ,%d ",rpm,distancia);
}
if((rpm>10)&&(rpm<100)){
pc.printf("0%.1f ,%d ",rpm,distancia);
}
if(rpm>100){
pc.printf("0%.1f ,%d ",rpm,distancia);
}
lcd.cls();
lcd.locate(0,0);
lcd.printf("%d mm",distancia);
lcd.locate(0,1);
lcd.printf(" V :%.2f rpm",rpm);
l1.write(ad);
l2=0;
break;
case 2:
if(rpm<10){
pc.printf("00%.1f ,%d ",rpm,distancia);
}
if((rpm>10)&&(rpm<100)){
pc.printf("0%.1f ,%d ",rpm,distancia);
}
if(rpm>100){
pc.printf("0%.1f ,%d ",rpm,distancia);
}
lcd.cls();
lcd.locate(0,0);
lcd.printf("%d mm",distancia);
lcd.locate(0,1);
lcd.printf("%.2f rpm",rpm);
l2.write(ad);
l1=0;
break;
}
}
int dist(char datos[4]){
int numero=0,contador=0;
char c=' ';
for(int i = 3;i >= 0;i --){
c=datos[i];
//pc.putc(c);
if(c=='0'){contador=contador+1; }
if(c=='1'){
contador=contador+1;
if(contador==1){numero=numero+1;}
if(contador==2){numero=numero+10;}
if(contador==3){numero=numero+100;} }
if(c=='2'){
contador=contador+1;
if(contador==1){numero=numero+2;}
if(contador==2){numero=numero+20;}
if(contador==3){numero=numero+200;} }
if(c=='3'){
contador=contador+1;
if(contador==1){numero=numero+3;}
if(contador==2){numero=numero+30;}
if(contador==3){numero=numero+300;} }
if(c=='4'){
contador=contador+1;
if(contador==1){numero=numero+4;}
if(contador==2){numero=numero+40;}
if(contador==3){numero=numero+400;} }
if(c=='5'){
contador=contador+1;
if(contador==1){numero=numero+5;}
if(contador==2){numero=numero+50;}
if(contador==3){numero=numero+500;} }
if(c=='6'){
contador=contador+1;
if(contador==1){numero=numero+6;}
if(contador==2){numero=numero+60;}
if(contador==3){numero=numero+600;} }
if(c=='7'){
contador=contador+1;
if(contador==1){numero=numero+7;}
if(contador==2){numero=numero+70;}
if(contador==3){numero=numero+700;} }
if(c=='8'){
contador=contador+1;
if(contador==1){numero=numero+8;}
if(contador==2){numero=numero+80;}
if(contador==3){numero=numero+800;} }
if(c=='9'){
contador=contador+1;
if(contador==1){numero=numero+9;}
if(contador==2){numero=numero+90;}
if(contador==3){numero=numero+900;} }
}
return numero;
}