juan pores
/
PWM_myopenlab
ss
main.cpp@0:b9f21a1a1fac, 2020-10-26 (annotated)
- Committer:
- poresc
- Date:
- Mon Oct 26 06:28:16 2020 +0000
- Revision:
- 0:b9f21a1a1fac
jj
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
poresc | 0:b9f21a1a1fac | 1 | #include "string" |
poresc | 0:b9f21a1a1fac | 2 | #include "mbed.h" |
poresc | 0:b9f21a1a1fac | 3 | #include "sstream" |
poresc | 0:b9f21a1a1fac | 4 | Serial pc(USBTX,USBRX); |
poresc | 0:b9f21a1a1fac | 5 | DigitalIn pulso(PTC5); |
poresc | 0:b9f21a1a1fac | 6 | DigitalOut right(PTC7); |
poresc | 0:b9f21a1a1fac | 7 | DigitalOut left(PTC0); |
poresc | 0:b9f21a1a1fac | 8 | int rea,ns; |
poresc | 0:b9f21a1a1fac | 9 | string cadena; |
poresc | 0:b9f21a1a1fac | 10 | using namespace std; |
poresc | 0:b9f21a1a1fac | 11 | void velocidad(int a,float ad); |
poresc | 0:b9f21a1a1fac | 12 | PwmOut l1(PTB3),l2(PTC2); |
poresc | 0:b9f21a1a1fac | 13 | int selec; |
poresc | 0:b9f21a1a1fac | 14 | float cambio; |
poresc | 0:b9f21a1a1fac | 15 | float rpm; |
poresc | 0:b9f21a1a1fac | 16 | int i=0; |
poresc | 0:b9f21a1a1fac | 17 | int f=0; |
poresc | 0:b9f21a1a1fac | 18 | int m=0; |
poresc | 0:b9f21a1a1fac | 19 | |
poresc | 0:b9f21a1a1fac | 20 | //using namespace boost; |
poresc | 0:b9f21a1a1fac | 21 | float h; |
poresc | 0:b9f21a1a1fac | 22 | |
poresc | 0:b9f21a1a1fac | 23 | int main(){ |
poresc | 0:b9f21a1a1fac | 24 | |
poresc | 0:b9f21a1a1fac | 25 | while(1){ |
poresc | 0:b9f21a1a1fac | 26 | if(pc.readable()){ |
poresc | 0:b9f21a1a1fac | 27 | cadena=pc.getc(); |
poresc | 0:b9f21a1a1fac | 28 | } |
poresc | 0:b9f21a1a1fac | 29 | if(cadena=="0"){ |
poresc | 0:b9f21a1a1fac | 30 | h=0.0; |
poresc | 0:b9f21a1a1fac | 31 | pc.printf(" pwm al 0 %.2f",h); |
poresc | 0:b9f21a1a1fac | 32 | } |
poresc | 0:b9f21a1a1fac | 33 | if (cadena=="1"){ |
poresc | 0:b9f21a1a1fac | 34 | |
poresc | 0:b9f21a1a1fac | 35 | h=0.1; |
poresc | 0:b9f21a1a1fac | 36 | pc.printf(" pwm al 10 %.2f",h); |
poresc | 0:b9f21a1a1fac | 37 | } |
poresc | 0:b9f21a1a1fac | 38 | if (cadena=="2"){ |
poresc | 0:b9f21a1a1fac | 39 | h=0.2; |
poresc | 0:b9f21a1a1fac | 40 | pc.printf(" pwm al 20 %.2f",h); |
poresc | 0:b9f21a1a1fac | 41 | } |
poresc | 0:b9f21a1a1fac | 42 | if (cadena=="3"){ |
poresc | 0:b9f21a1a1fac | 43 | h=0.3; |
poresc | 0:b9f21a1a1fac | 44 | pc.printf(" pwm al 30 %.2f",h); |
poresc | 0:b9f21a1a1fac | 45 | } |
poresc | 0:b9f21a1a1fac | 46 | if (cadena=="4"){ |
poresc | 0:b9f21a1a1fac | 47 | h=0.4; |
poresc | 0:b9f21a1a1fac | 48 | //if(m!=2){ |
poresc | 0:b9f21a1a1fac | 49 | // m=1; |
poresc | 0:b9f21a1a1fac | 50 | //} |
poresc | 0:b9f21a1a1fac | 51 | pc.printf(" pwm al 40 %.2f",h); |
poresc | 0:b9f21a1a1fac | 52 | //if(m==0){ |
poresc | 0:b9f21a1a1fac | 53 | for(int j=0;j<=5;j++){ |
poresc | 0:b9f21a1a1fac | 54 | if(pulso==1){ |
poresc | 0:b9f21a1a1fac | 55 | i=i+1; |
poresc | 0:b9f21a1a1fac | 56 | |
poresc | 0:b9f21a1a1fac | 57 | |
poresc | 0:b9f21a1a1fac | 58 | } |
poresc | 0:b9f21a1a1fac | 59 | if(j==5){ |
poresc | 0:b9f21a1a1fac | 60 | rpm=((i*60)/5)/6; |
poresc | 0:b9f21a1a1fac | 61 | } |
poresc | 0:b9f21a1a1fac | 62 | } |
poresc | 0:b9f21a1a1fac | 63 | i=0; |
poresc | 0:b9f21a1a1fac | 64 | |
poresc | 0:b9f21a1a1fac | 65 | } |
poresc | 0:b9f21a1a1fac | 66 | if (cadena=="5"){ |
poresc | 0:b9f21a1a1fac | 67 | h=0.5; |
poresc | 0:b9f21a1a1fac | 68 | pc.printf(" pwm al 50 %.2f",h); |
poresc | 0:b9f21a1a1fac | 69 | } |
poresc | 0:b9f21a1a1fac | 70 | if (cadena=="6"){ |
poresc | 0:b9f21a1a1fac | 71 | h=0.6; |
poresc | 0:b9f21a1a1fac | 72 | pc.printf(" pwm al 60 %.2f",h); |
poresc | 0:b9f21a1a1fac | 73 | } |
poresc | 0:b9f21a1a1fac | 74 | if (cadena=="7"){ |
poresc | 0:b9f21a1a1fac | 75 | h=0.7; |
poresc | 0:b9f21a1a1fac | 76 | pc.printf(" pwm al 70 %.2f",h); |
poresc | 0:b9f21a1a1fac | 77 | } |
poresc | 0:b9f21a1a1fac | 78 | if (cadena=="8"){ |
poresc | 0:b9f21a1a1fac | 79 | h=0.8; |
poresc | 0:b9f21a1a1fac | 80 | pc.printf(" pwm al 80 %.2f",h); |
poresc | 0:b9f21a1a1fac | 81 | } |
poresc | 0:b9f21a1a1fac | 82 | if (cadena=="9"){ |
poresc | 0:b9f21a1a1fac | 83 | h=0.9; |
poresc | 0:b9f21a1a1fac | 84 | pc.printf(" pwm al 90 %.2f",h); |
poresc | 0:b9f21a1a1fac | 85 | } |
poresc | 0:b9f21a1a1fac | 86 | if (cadena=="10"){ |
poresc | 0:b9f21a1a1fac | 87 | h=1; |
poresc | 0:b9f21a1a1fac | 88 | pc.printf(" pwm al 100 %.2f",h); |
poresc | 0:b9f21a1a1fac | 89 | } |
poresc | 0:b9f21a1a1fac | 90 | if(cadena=="d"){ |
poresc | 0:b9f21a1a1fac | 91 | selec=1; |
poresc | 0:b9f21a1a1fac | 92 | pc.printf(" derecha"); |
poresc | 0:b9f21a1a1fac | 93 | } |
poresc | 0:b9f21a1a1fac | 94 | if(cadena=="i"){ |
poresc | 0:b9f21a1a1fac | 95 | selec=2; |
poresc | 0:b9f21a1a1fac | 96 | pc.printf(" izquierda"); |
poresc | 0:b9f21a1a1fac | 97 | } |
poresc | 0:b9f21a1a1fac | 98 | if(cadena=="n"){ |
poresc | 0:b9f21a1a1fac | 99 | selec=0; |
poresc | 0:b9f21a1a1fac | 100 | pc.printf(" sin sentido"); |
poresc | 0:b9f21a1a1fac | 101 | } |
poresc | 0:b9f21a1a1fac | 102 | wait(0.5); |
poresc | 0:b9f21a1a1fac | 103 | // selec=1; |
poresc | 0:b9f21a1a1fac | 104 | cambio=h; |
poresc | 0:b9f21a1a1fac | 105 | |
poresc | 0:b9f21a1a1fac | 106 | velocidad(selec,cambio); |
poresc | 0:b9f21a1a1fac | 107 | /*if( |
poresc | 0:b9f21a1a1fac | 108 | if(pulso==1){ |
poresc | 0:b9f21a1a1fac | 109 | i=i+1; |
poresc | 0:b9f21a1a1fac | 110 | wait(0.2); |
poresc | 0:b9f21a1a1fac | 111 | }*/ |
poresc | 0:b9f21a1a1fac | 112 | |
poresc | 0:b9f21a1a1fac | 113 | /*if(i>=6){ |
poresc | 0:b9f21a1a1fac | 114 | f=f+1; |
poresc | 0:b9f21a1a1fac | 115 | i=0; |
poresc | 0:b9f21a1a1fac | 116 | }*/ |
poresc | 0:b9f21a1a1fac | 117 | //rpm=(6.2831*f)*(60/6.2831); |
poresc | 0:b9f21a1a1fac | 118 | pc.printf("rpm= %.2f",rpm); |
poresc | 0:b9f21a1a1fac | 119 | //h=rea-50000; |
poresc | 0:b9f21a1a1fac | 120 | // pc.printf("%s",); |
poresc | 0:b9f21a1a1fac | 121 | // std::string Convert(float rea); |
poresc | 0:b9f21a1a1fac | 122 | //cadena=float.toString("%f",rea); |
poresc | 0:b9f21a1a1fac | 123 | //pc.printf("%s",cadena); |
poresc | 0:b9f21a1a1fac | 124 | } |
poresc | 0:b9f21a1a1fac | 125 | |
poresc | 0:b9f21a1a1fac | 126 | } |
poresc | 0:b9f21a1a1fac | 127 | |
poresc | 0:b9f21a1a1fac | 128 | void velocidad(int a,float ad){ |
poresc | 0:b9f21a1a1fac | 129 | switch (a){ |
poresc | 0:b9f21a1a1fac | 130 | case 0: |
poresc | 0:b9f21a1a1fac | 131 | l1=0; |
poresc | 0:b9f21a1a1fac | 132 | l2=0; |
poresc | 0:b9f21a1a1fac | 133 | break; |
poresc | 0:b9f21a1a1fac | 134 | case 1: |
poresc | 0:b9f21a1a1fac | 135 | l1.write(ad); |
poresc | 0:b9f21a1a1fac | 136 | l2=0; |
poresc | 0:b9f21a1a1fac | 137 | break; |
poresc | 0:b9f21a1a1fac | 138 | case 2: |
poresc | 0:b9f21a1a1fac | 139 | l2.write(ad); |
poresc | 0:b9f21a1a1fac | 140 | l1=0; |
poresc | 0:b9f21a1a1fac | 141 | break; |
poresc | 0:b9f21a1a1fac | 142 | |
poresc | 0:b9f21a1a1fac | 143 | } |
poresc | 0:b9f21a1a1fac | 144 | |
poresc | 0:b9f21a1a1fac | 145 | |
poresc | 0:b9f21a1a1fac | 146 | |
poresc | 0:b9f21a1a1fac | 147 | } |
poresc | 0:b9f21a1a1fac | 148 |