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.
Diff: main.cpp
- Revision:
- 1:bf0631515d8c
- Parent:
- 0:cd0af1b08faf
- Child:
- 2:547c71a1ce67
diff -r cd0af1b08faf -r bf0631515d8c main.cpp --- a/main.cpp Mon Jun 12 05:08:04 2017 +0000 +++ b/main.cpp Fri Jun 16 01:39:55 2017 +0000 @@ -1,4 +1,4 @@ -#include "mbed.h" +#include "mbed.h" // declaramos las librerias de funciones #include "Motor.h" #include "QEI.h" @@ -31,25 +31,25 @@ Serial bt(PA_2, PA_3); // (RX, TX) (puerto serial 2) // declaramos otras variables que utilizaremos -Ticker ticker1; // iniciamos dos tickers +Ticker ticker1; // iniciamos un ticker DigitalOut led1 (LED1); // declaramos el LED1 DigitalOut led2 (LED2); // declaramos el LED2 DigitalOut led3 (LED3); // declaramos el LED3 int pulsos[6]={0,0,0,0,0,0}; // iniciamos el array pulsos -int posiciones[10][6]={0}; // declaramos los arrays de posiciones +int posiciones[10][6]={{0,0,0,0,0,0},{0,250,50,1004,80,100},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0}, // sustituye aqui los valores por los de los encoders y deja el primer valor de cada posicion a 0 + {0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0}}; // declaramos los arrays de posiciones char dato=0; float V=1; // declaramos el prototipo de las funciones que utilizaremos void enviar_bt(); // prototipo de la funcion que ejecutara el ticker1 -void encenderLEDs(); // prototipo de la funcion que ejecutara el ticker1 void sethome(); // prototipo de la funcion que nos calibrara la posicion hard home de referencia void posicion(int); // prototipo de la funcion que nos llevara hasta la posicion especificada void mover(int,int,float); // prototipo de la funcion que movera cada motor void frenar(int); // prototipo de la funcion que frenara cada motor void pinza(int); // prototipo de la funcion que abrira (-1) o cerrara (1) la pinza void movCinta(); // prototipo de la funcion que avanzara la cinta hasta detectar un objeto -float map(long,long,long,float,long); // prototipo de la funcion que hace una redimension de los parametros +float map(float,float,float,float,float); // prototipo de la funcion que hace una redimension de los parametros int main() { @@ -62,7 +62,7 @@ bt.baud(9600); // velocidad de transmision del bluetooth a 9600 baudios - ticker1.attach(&enviar_bt, 0.2); // asignamos la funcion "enviar_bt" al protocolo de interrupcion del "ticker1" y le damos un intervalo de 0.2s + ticker1.attach(&enviar_bt, 0.5); // asignamos la funcion "enviar_bt" al protocolo de interrupcion del "ticker1" y le damos un intervalo de 0.2s sethome(); // establecemos la posicion de referencia @@ -131,19 +131,43 @@ case 'L': // si el caracter es L se cierra la pinza pinza(1); break; - case 'M': // si el caracter es M se avanza la cinta - movCinta(); - break; - case 'N': // si el caracter es N se mueve a la posicion home + case 'M': // si el caracter es M se mueve a la posicion home posicion(0); pinza(-1); break; + case 'N': // si el caracter es N se mueve a la posicion 1 + posicion(1); + break; + case 'O': // si el caracter es O se mueve a la posicion 2 + posicion(2); + break; + case 'P': // si el caracter es P se mueve a la posicion 3 + posicion(3); + break; + case 'Q': // si el caracter es Q se mueve a la posicion 4 + posicion(4); + break; + case 'R': // si el caracter es R se mueve a la posicion 5 + posicion(5); + break; + case 'S': // si el caracter es S se mueve a la posicion 6 + posicion(6); + break; + case 'T': // si el caracter es T se mueve a la posicion 7 + posicion(7); + break; + case 'U': // si el caracter es U se mueve a la posicion 8 + posicion(8); + break; + case 'V': // si el caracter es V se mueve a la posicion 9 + posicion(9); + break; } } } } -float map(long x, long in_min, long in_max, float out_min, long out_max) // funcion que redimensiona los parametros +float map(float x, float in_min, float in_max, float out_min, float out_max) // funcion que redimensiona los parametros { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } @@ -303,7 +327,6 @@ } } } - wait(0.001); // esperamos 0.001s pulsos[1]=enc1.getPulses(); // leemos la nueva posicion de los encoders pulsos[2]=enc2.getPulses(); pulsos[3]=enc3.getPulses();