Controla un motor DC vidireccional y lee los pulsos del encoder. Gira el motor al derecho hasta llegar a un recorrido especifico y luego lo gira al reves hasta llegar al punto inicial.

Dependencies:   Motor QEI mbed

Revision:
0:6d89fbfb2082
Child:
2:481289ca3336
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Apr 11 19:56:19 2017 +0000
@@ -0,0 +1,44 @@
+#include "mbed.h"
+#include "Motor.h"
+#include "QEI.h"
+
+QEI encoder1(PE_11, PE_9, NC, 6, QEI::X4_ENCODING);     // (A, B, indice, PulsosPorRev, TipoDeEncoder)
+Motor motor1(PE_13, PF_15, PG_14);      // (pwm, derecho, inverso)
+Serial bt(PE_8, PE_7);                  // tx, rx (serial 5)
+DigitalOut led1(LED1);                  // definimos la salida del LED
+
+int main() 
+{
+    motor1.period(0.00005); // establece el periodo del PWM, equivalente a una frecuencia de 20KHz.
+    bt.baud(9600);          // velocidad de transmision del bluetooth a 9600 baudios
+    int pulsos  = 0;        // numero de pulsos recorridos
+    int recorrido = 240;    // pulsos que queremos que recorra (modificaremos este valor hasta saber cuantos pulsos corresponden a una vuelta)
+    bt.printf(pulsos);      // envia el valor de "pulsos" por bluetooth
+    
+    led1 = 1;       // encendemos un led de la placa durante 1s para asegurarnos de que el programa se esta ejecutando correctamente
+    wait(1);
+    led1 = 0;
+    
+    while(pulsos<recorrido)             // gira el motor al derecho hasta que los pulsos sean los del recorrido asignado
+    {
+      motor1.speed(0.4);
+      pulsos= encoder1.getPulses();
+      bt.printf(pulsos);                // envia el valor de "pulsos" por bluetooth
+    }
+    
+    motor1.brake();         // frena el motor y enciende un led 1s para saber que hemos llegado al punto deseado
+    led1 = 1;
+    wait(1);
+    led1 = 0;
+    wait(1);
+    
+    while(pulsos>0)         // gira el motor al inverso hasta que los pulsos sean 0
+    {
+       motor1.speed(-0.4);
+       pulsos= encoder1.getPulses();
+    }
+    
+    motor1.brake();         // frena el motor y deja encendido un led para saber que hemos llegado al punto deseado
+    led1 = 1;
+    
+}