control movimiento motor con interfaz

Dependencies:   mbed TextLCD

Committer:
poresc
Date:
Mon Oct 26 06:28:16 2020 +0000
Revision:
0:b9f21a1a1fac
Child:
1:98ce9ed49158
jj

Who changed what in which revision?

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