juan pores / Mbed 2 deprecated PWM_myopenlab

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "string"
00002 #include "mbed.h"
00003 #include "sstream"
00004 Serial pc(USBTX,USBRX);
00005 DigitalIn pulso(PTC5);
00006 DigitalOut right(PTC7);
00007 DigitalOut left(PTC0);
00008 int rea,ns;
00009 string cadena;
00010 using namespace std;
00011 void velocidad(int a,float ad);
00012 PwmOut l1(PTB3),l2(PTC2);
00013 int selec;
00014 float cambio;
00015 float rpm;
00016 int i=0;
00017 int f=0;
00018 int m=0;
00019 
00020 //using namespace boost;
00021 float h;
00022 
00023 int main(){
00024     
00025     while(1){
00026         if(pc.readable()){
00027         cadena=pc.getc();
00028         }
00029         if(cadena=="0"){
00030             h=0.0;
00031             pc.printf("  pwm al 0 %.2f",h);
00032             }
00033        if (cadena=="1"){
00034            
00035             h=0.1;
00036              pc.printf("   pwm al 10 %.2f",h);
00037             }
00038         if (cadena=="2"){
00039             h=0.2;
00040              pc.printf("    pwm al 20 %.2f",h);
00041             }
00042         if (cadena=="3"){
00043             h=0.3;
00044              pc.printf("    pwm al 30 %.2f",h);
00045             }
00046         if (cadena=="4"){
00047             h=0.4;
00048             //if(m!=2){
00049           //  m=1;
00050             //}
00051              pc.printf("    pwm al 40 %.2f",h);
00052             //if(m==0){
00053                 for(int j=0;j<=5;j++){
00054                     if(pulso==1){
00055                         i=i+1;
00056                         
00057                         
00058                         }
00059                         if(j==5){
00060                             rpm=((i*60)/5)/6;
00061                         }
00062                  }
00063                i=0;
00064                      
00065             }
00066         if (cadena=="5"){
00067             h=0.5;
00068              pc.printf("    pwm al 50 %.2f",h);
00069             }
00070         if (cadena=="6"){
00071             h=0.6;
00072              pc.printf("    pwm al 60 %.2f",h);
00073             }
00074         if (cadena=="7"){
00075             h=0.7;
00076              pc.printf("    pwm al 70 %.2f",h);
00077             }
00078         if (cadena=="8"){
00079             h=0.8;
00080              pc.printf("    pwm al 80 %.2f",h);
00081             }
00082         if (cadena=="9"){
00083             h=0.9;
00084              pc.printf("   pwm al 90 %.2f",h);
00085             }
00086         if (cadena=="10"){
00087             h=1;
00088              pc.printf("    pwm al 100 %.2f",h);
00089             }
00090             if(cadena=="d"){
00091                 selec=1;
00092                 pc.printf("   derecha");
00093             }
00094             if(cadena=="i"){
00095                 selec=2;
00096                 pc.printf("   izquierda");
00097                 }
00098                 if(cadena=="n"){
00099                 selec=0;
00100                 pc.printf("  sin sentido");
00101                 }
00102         wait(0.5);
00103            // selec=1;
00104           cambio=h;
00105           
00106         velocidad(selec,cambio);
00107         /*if(
00108         if(pulso==1){
00109             i=i+1;
00110             wait(0.2);
00111             }*/
00112             
00113         /*if(i>=6){
00114             f=f+1;
00115             i=0;
00116             }*/
00117             //rpm=(6.2831*f)*(60/6.2831);
00118             pc.printf("rpm=  %.2f",rpm);
00119         //h=rea-50000;
00120        // pc.printf("%s",);
00121        // std::string Convert(float rea);
00122         //cadena=float.toString("%f",rea);
00123         //pc.printf("%s",cadena);
00124         }
00125       
00126 }
00127 
00128 void velocidad(int a,float ad){
00129     switch (a){
00130         case 0:
00131             l1=0;
00132             l2=0;
00133             break;
00134         case 1:
00135             l1.write(ad);
00136             l2=0;
00137             break;
00138         case 2:
00139             l2.write(ad);
00140             l1=0;
00141             break;
00142         
00143   }  
00144   
00145   
00146         
00147 }
00148