Programa mbed
Dependencies: mbed TextLCD MMA8451Q
Revision 0:2968705eeb36, committed 2020-11-23
- Comitter:
- poresc
- Date:
- Mon Nov 23 23:48:59 2020 +0000
- Commit message:
- m
Changed in this revision
diff -r 000000000000 -r 2968705eeb36 MMA8451Q.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MMA8451Q.lib Mon Nov 23 23:48:59 2020 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/emilmont/code/MMA8451Q/#c4d879a39775
diff -r 000000000000 -r 2968705eeb36 TextLCD.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Mon Nov 23 23:48:59 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/simon/code/TextLCD/#308d188a2d3a
diff -r 000000000000 -r 2968705eeb36 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Nov 23 23:48:59 2020 +0000 @@ -0,0 +1,263 @@ +#include "mbed.h" +#include "string" +#include "TextLCD.h" +Serial pc(USBTX,USBRX); + +TextLCD lcd(PTE20,PTE21,PTE22,PTE23,PTE29,PTE30, TextLCD::LCD16x2); +DigitalOut negro(PTB0); +DigitalOut naranja(PTB1); +DigitalOut cafe(PTB2); +DigitalOut amarillo(PTB3); +DigitalIn pulso(PTC1); +void velocidad(int a,float ad); +double temp=0; +int numero_pasos=0; +int k=0; +string cadena; +int selec; +char sentido; +int recorrido=0; +char tiempo; +bool antirebote=false; +Timer Timer1; +float rpm=0,auxrpm=0; +int r=0; +int dist(char datos[5]); + + +int main(){ + char buffer[5]; + int red=0; + while(1){ + if((pulso==0)&&(antirebote==false)){ + // contador++; + //disa++; + antirebote=true; + auxrpm=Timer1.read_ms(); + Timer1.stop(); + Timer1.reset(); + // rpm=10000/auxrpm; + + if(recorrido>0){ + Timer1.start();} + } + if((pulso==1)&&(antirebote==true)){ + antirebote=false; + } + + + if(pc.readable()){// captura string + + pc.gets(buffer,8); + buffer[0]=' '; + //pc.printf("%s",buffer); + sentido=buffer[1]; + + // lcd.printf("%d",temp); + } + red=dist(buffer); + if(red!=0){ + + red=dist(buffer); + temp=red*0.01; + /* lcd.cls(); + lcd.locate(0,0); + lcd.printf("%d",red); + lcd.locate(0,1); + lcd.printf("%.3f",temp);*/ + + } + + +/*if(tiempo=='1'){ + temp=0.001;}*/ + if(sentido=='d'){ + + //lcd.printf("esta en los extremos"); + selec=1; + //pc.printf(" derecha"); +for(int i=0; i<=600;i++){ + if(k>4){ + r=r+1; + k=0; + } + if(r==11){ + rpm=(r*(1/temp)*60)/1000; + lcd.cls(); + lcd.locate(0,0); + lcd.printf("%.3f",rpm); + r=0;} + k=k+1; + switch(k){ + case 1: + amarillo=1; + negro=0; + //wait(0.2); + break; + case 2: + cafe=1; + amarillo=0; + //wait(0.2); + break; + case 3: + naranja=1; + cafe=0; + // wait(0.2); + break; + case 4: + negro=1; + naranja=0; + // wait(0.2); + break; + } + wait(temp); + + + + } + + //rpm=0; + // red=0; + } + lcd.cls(); + lcd.locate(0,0); + lcd.printf("esperando"); + pc.printf("esperando "); + + if(sentido=='i'){ + selec=2; + //pc.printf(" izquierda"); +for(int i=0; i<=600;i++){ + if(k>4){ + k=0; + r=r+1; + } + if(r==11){ + rpm=(r*(1/temp)*60)/1000; + lcd.cls(); + lcd.locate(0,0); + lcd.printf("%.3f",rpm); + pc.printf("%.1f",rpm); + r=0;} + k=k+1; + switch(k){ + case 1: + negro=1; + amarillo=0; + //wait(0.2); + break; + case 2: + naranja=1; + negro=0; + //wait(0.2); + break; + case 3: + cafe=1; + naranja=0; + // wait(0.2); + break; + case 4: + amarillo=1; + cafe=0; + // wait(0.2); + break; + } + wait(temp); + + + + } + + // rpm=0; + // red=0; + } + lcd.cls(); + lcd.locate(0,0); + lcd.printf("esperando"); + pc.printf(" esperando"); + + + if(sentido=='n'){ + /* cafe=0; + amarillo=0; + negro=0; + naranja=0; + selec=0;*/ + // pc.printf(" sin sentido"); + } + // wait(0.5); + + + +} +} + +int dist(char datos[8]){ + int numero=0,contador=0; + char c=' '; + for(int i = 8;i >= 0;i --){ + c=datos[i]; + //pc.putc(c); + if(c=='0'){contador=contador+1; } + if(c=='1'){ + // pc.printf("uno"); + 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;} }*/ + + } + + + + + // lcd.printf("%d",numero); + + return numero; + + + + + + + }
diff -r 000000000000 -r 2968705eeb36 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Nov 23 23:48:59 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file