Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #include "mbed.h" 00002 #include "Motor.h" 00003 #include "QEI.h" 00004 00005 QEI encoder1(PE_11, PE_9, NC, 6, QEI::X4_ENCODING); // (P0, P1, indice, PulsosPorRev, TipoDeEncoder) 00006 Motor motor1(PE_13, PF_15, PG_14); // (pwm, derecho, inverso) 00007 Serial bt(PE_8, PE_7); // RX, TX (serial 5) 00008 Ticker ticker1; // iniciamos un ticker 00009 DigitalOut led1(LED1); // definimos la salida del LED 00010 int pulsos = 0; // numero de pulsos recorridos 00011 00012 void enviar_bt(); // declaramos el prototipo de la funcion que ejecutara el ticker 00013 00014 int main() 00015 { 00016 motor1.period(0.001); // establece el periodo del PWM, equivalente a una frecuencia de 20KHz. 00017 bt.baud(9600); // velocidad de transmision del bluetooth a 9600 baudios 00018 int recorrido = 240; // pulsos que queremos que recorra (modificaremos este valor hasta saber cuantos pulsos corresponden a una vuelta) 00019 ticker1.attach(&enviar_bt, 0.1); // asignamos la funcion "enviar_bt" a la interrupcion del "ticker1" y le damos un intervalo de 0.1s 00020 00021 led1 = 1; // encendemos un led de la placa durante 1s para asegurarnos de que el programa se esta ejecutando correctamente 00022 wait(1); 00023 led1 = 0; 00024 00025 while(pulsos<recorrido) // gira el motor al derecho hasta que los pulsos sean los del recorrido asignado 00026 { 00027 motor1.speed(0.4); 00028 pulsos= encoder1.getPulses(); 00029 } 00030 00031 motor1.brake(); // frena el motor y enciende un led 1s para saber que hemos llegado al punto deseado 00032 led1 = 1; 00033 wait(1); 00034 led1 = 0; 00035 wait(1); 00036 00037 while(pulsos>0) // gira el motor al inverso hasta que los pulsos sean 0 00038 { 00039 motor1.speed(-0.4); 00040 pulsos= encoder1.getPulses(); 00041 } 00042 00043 motor1.brake(); // frena el motor y deja encendido un led para saber que hemos llegado al punto deseado 00044 led1 = 1; 00045 } 00046 00047 void enviar_bt() // definimos la funcion que ejecutara el ticker 00048 { 00049 bt.printf("%d", pulsos); // envia el valor de "pulsos" por bluetooth 00050 }
Generated on Tue Aug 9 2022 23:44:47 by
1.7.2