Clase Tracción que implementa 2 objetos del tipo motor para controlar la dirección, velocidad, ángulo de giro de un vehículo a base de 2 motores, tanto continuos como discretos. Esta clase genera los comandos para cada motor con el fin de que la plataforma gire o se mueva en el sentido deseado o la cantidad de grados necesarios.

Dependencies:   mbed Motor

Committer:
CCastrop1012
Date:
Fri Sep 03 05:11:24 2021 +0000
Revision:
0:9b57ccb09755
Clase Traccion que implementa 2 objetos del tipo motor para controlar la direccion, velocidad, angulo de giro de un vehiculo a base de 2 motores, tanto continuos como discretos. Esta clase genera los comandos para cada motor para cada movimiento.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
CCastrop1012 0:9b57ccb09755 1 #include "mbed.h"
CCastrop1012 0:9b57ccb09755 2 #include "Motor.h"
CCastrop1012 0:9b57ccb09755 3
CCastrop1012 0:9b57ccb09755 4 Serial PC(PA_2, PA_3);
CCastrop1012 0:9b57ccb09755 5
CCastrop1012 0:9b57ccb09755 6
CCastrop1012 0:9b57ccb09755 7 TraccionD M1(PC_14, PE_6, PE_4, PE_2, 200, 3.3, 7.5);
CCastrop1012 0:9b57ccb09755 8
CCastrop1012 0:9b57ccb09755 9
CCastrop1012 0:9b57ccb09755 10
CCastrop1012 0:9b57ccb09755 11 DigitalOut LED(PD_14);
CCastrop1012 0:9b57ccb09755 12
CCastrop1012 0:9b57ccb09755 13 int main() {
CCastrop1012 0:9b57ccb09755 14
CCastrop1012 0:9b57ccb09755 15 long SOH1;
CCastrop1012 0:9b57ccb09755 16
CCastrop1012 0:9b57ccb09755 17
CCastrop1012 0:9b57ccb09755 18 PC.printf("Hello World...\n");
CCastrop1012 0:9b57ccb09755 19 M1.StepFreq(20);
CCastrop1012 0:9b57ccb09755 20 M1.Giro(270, true);
CCastrop1012 0:9b57ccb09755 21
CCastrop1012 0:9b57ccb09755 22 //M1.Run(2.5);
CCastrop1012 0:9b57ccb09755 23
CCastrop1012 0:9b57ccb09755 24 while(1)
CCastrop1012 0:9b57ccb09755 25 {
CCastrop1012 0:9b57ccb09755 26 SOH1 = M1.getStepOnHold();
CCastrop1012 0:9b57ccb09755 27 PC.printf("StepOnHold M1 = %d ;\n" , SOH1);
CCastrop1012 0:9b57ccb09755 28 if(SOH1 < 10){ M1.StopT(); break; }
CCastrop1012 0:9b57ccb09755 29 wait(0.3);
CCastrop1012 0:9b57ccb09755 30 }
CCastrop1012 0:9b57ccb09755 31
CCastrop1012 0:9b57ccb09755 32 wait(0.3);
CCastrop1012 0:9b57ccb09755 33 M1.StepFreq(20);
CCastrop1012 0:9b57ccb09755 34 M1.Giro(270, false);
CCastrop1012 0:9b57ccb09755 35 //M1.Run(2.5);
CCastrop1012 0:9b57ccb09755 36
CCastrop1012 0:9b57ccb09755 37 while(1)
CCastrop1012 0:9b57ccb09755 38 {
CCastrop1012 0:9b57ccb09755 39 SOH1 = M1.getStepOnHold();
CCastrop1012 0:9b57ccb09755 40 PC.printf("StepOnHold M1 = %d ;\n" , SOH1);
CCastrop1012 0:9b57ccb09755 41 if(SOH1 < 10){ M1.StopT(); break; }
CCastrop1012 0:9b57ccb09755 42 wait(0.3);
CCastrop1012 0:9b57ccb09755 43 }
CCastrop1012 0:9b57ccb09755 44
CCastrop1012 0:9b57ccb09755 45
CCastrop1012 0:9b57ccb09755 46
CCastrop1012 0:9b57ccb09755 47 long cont;
CCastrop1012 0:9b57ccb09755 48 while(1) {
CCastrop1012 0:9b57ccb09755 49
CCastrop1012 0:9b57ccb09755 50 PC.printf("run %d...\n", cont++);
CCastrop1012 0:9b57ccb09755 51
CCastrop1012 0:9b57ccb09755 52 //////// Giro sentido 1
CCastrop1012 0:9b57ccb09755 53 LED = 1;
CCastrop1012 0:9b57ccb09755 54 wait(2);
CCastrop1012 0:9b57ccb09755 55
CCastrop1012 0:9b57ccb09755 56 SOH1 = M1.getStepOnHold();
CCastrop1012 0:9b57ccb09755 57 PC.printf("StepOnHold M1 = %d ;\n" , SOH1);
CCastrop1012 0:9b57ccb09755 58
CCastrop1012 0:9b57ccb09755 59 wait(0.5);
CCastrop1012 0:9b57ccb09755 60
CCastrop1012 0:9b57ccb09755 61 //////// Giro sentido contrario
CCastrop1012 0:9b57ccb09755 62 LED = 0;
CCastrop1012 0:9b57ccb09755 63 wait(2);
CCastrop1012 0:9b57ccb09755 64
CCastrop1012 0:9b57ccb09755 65 SOH1 = M1.getStepOnHold();
CCastrop1012 0:9b57ccb09755 66 PC.printf("StepOnHold M1 = %d ;\n" , SOH1);
CCastrop1012 0:9b57ccb09755 67
CCastrop1012 0:9b57ccb09755 68 wait(0.5);
CCastrop1012 0:9b57ccb09755 69
CCastrop1012 0:9b57ccb09755 70 }
CCastrop1012 0:9b57ccb09755 71 }