steven Castro
/
MOTOR
MOTOR
main.cpp@1:8452eddc6a3e, 2019-03-28 (annotated)
- Committer:
- stevencastro
- Date:
- Thu Mar 28 23:53:29 2019 +0000
- Revision:
- 1:8452eddc6a3e
- Parent:
- 0:5e6b543c1179
MOTOR
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fabeltranm | 0:5e6b543c1179 | 1 | #include "mbed.h" |
fabeltranm | 0:5e6b543c1179 | 2 | |
fabeltranm | 0:5e6b543c1179 | 3 | /***************************************************************************** |
fabeltranm | 0:5e6b543c1179 | 4 | generar un programa que controle por el puerto serial el sentido de giro del motor nema, |
fabeltranm | 0:5e6b543c1179 | 5 | y el nímero de pasos. en este caso dejar la velocidad cosntantes pero con un define . |
fabeltranm | 0:5e6b543c1179 | 6 | |
fabeltranm | 0:5e6b543c1179 | 7 | por medio de la comunicacion serial el comando es |
fabeltranm | 0:5e6b543c1179 | 8 | |
fabeltranm | 0:5e6b543c1179 | 9 | | | | | |
fabeltranm | 0:5e6b543c1179 | 10 | | INITCMD | sentido | N_pasos | |
fabeltranm | 0:5e6b543c1179 | 11 | | 0xff | 0x00- 0x01 | 0x00 - 0xff | |
fabeltranm | 0:5e6b543c1179 | 12 | |
fabeltranm | 0:5e6b543c1179 | 13 | para enviar los comandos usar el programa Coolterm http://freeware.the-meiers.org/ |
fabeltranm | 0:5e6b543c1179 | 14 | |
fabeltranm | 0:5e6b543c1179 | 15 | # para el motor nena se configurar el driver drv8825: |
fabeltranm | 0:5e6b543c1179 | 16 | # |
fabeltranm | 0:5e6b543c1179 | 17 | # |
fabeltranm | 0:5e6b543c1179 | 18 | # <------period 4us min--------> |
fabeltranm | 0:5e6b543c1179 | 19 | # <-1.9us min -> <-1.9us min -> |
fabeltranm | 0:5e6b543c1179 | 20 | # _____________ _____________ |
fabeltranm | 0:5e6b543c1179 | 21 | # ____| |______________| |___________ signal step |
fabeltranm | 0:5e6b543c1179 | 22 | # ____ ____ |
fabeltranm | 0:5e6b543c1179 | 23 | # _| |________________________| |____________________ dir modex 1-cw 0ccw |
fabeltranm | 0:5e6b543c1179 | 24 | # <-> min 650ns <-> min 650ns |
fabeltranm | 0:5e6b543c1179 | 25 | # |
fabeltranm | 0:5e6b543c1179 | 26 | *****************************************************************************/ |
fabeltranm | 0:5e6b543c1179 | 27 | |
fabeltranm | 0:5e6b543c1179 | 28 | |
fabeltranm | 0:5e6b543c1179 | 29 | Serial command(USBTX, USBRX); |
stevencastro | 1:8452eddc6a3e | 30 | DigitalOut stepper_step(D12); |
stevencastro | 1:8452eddc6a3e | 31 | DigitalOut steppeer_dir(D13); |
fabeltranm | 0:5e6b543c1179 | 32 | |
fabeltranm | 0:5e6b543c1179 | 33 | /*INGRESE LA CONFIGURACION DE LOS MOTORES*/ |
fabeltranm | 0:5e6b543c1179 | 34 | |
stevencastro | 1:8452eddc6a3e | 35 | #define INITCMD 0xFF // Inicialisacion del comando |
stevencastro | 1:8452eddc6a3e | 36 | #define VELOCITY 5000 ///en micro segundos |
fabeltranm | 0:5e6b543c1179 | 37 | |
fabeltranm | 0:5e6b543c1179 | 38 | // definición de las variables globales |
fabeltranm | 0:5e6b543c1179 | 39 | |
fabeltranm | 0:5e6b543c1179 | 40 | uint8_t sentido_motor; // variable almacena el sentido de giro de motor en leer_datos() |
stevencastro | 1:8452eddc6a3e | 41 | uint8_t N_pasos; // varable almacena el numero de pasos que se mueve el motor en leer_datos( |
fabeltranm | 0:5e6b543c1179 | 42 | |
fabeltranm | 0:5e6b543c1179 | 43 | |
fabeltranm | 0:5e6b543c1179 | 44 | // definición de las funciones |
fabeltranm | 0:5e6b543c1179 | 45 | void setup_uart(); |
fabeltranm | 0:5e6b543c1179 | 46 | |
fabeltranm | 0:5e6b543c1179 | 47 | void mover_steper_nema(uint8_t sentido, uint8_t num_pasos); |
fabeltranm | 0:5e6b543c1179 | 48 | |
fabeltranm | 0:5e6b543c1179 | 49 | void leer_datos(); |
fabeltranm | 0:5e6b543c1179 | 50 | |
fabeltranm | 0:5e6b543c1179 | 51 | |
fabeltranm | 0:5e6b543c1179 | 52 | |
fabeltranm | 0:5e6b543c1179 | 53 | int main() { |
fabeltranm | 0:5e6b543c1179 | 54 | |
fabeltranm | 0:5e6b543c1179 | 55 | setup_uart(); |
fabeltranm | 0:5e6b543c1179 | 56 | //command.printf("inicio de programa"); |
fabeltranm | 0:5e6b543c1179 | 57 | while(1){ |
fabeltranm | 0:5e6b543c1179 | 58 | leer_datos(); |
stevencastro | 1:8452eddc6a3e | 59 | |
fabeltranm | 0:5e6b543c1179 | 60 | mover_steper_nema(sentido_motor, N_pasos); |
fabeltranm | 0:5e6b543c1179 | 61 | } |
fabeltranm | 0:5e6b543c1179 | 62 | } |
fabeltranm | 0:5e6b543c1179 | 63 | |
fabeltranm | 0:5e6b543c1179 | 64 | |
fabeltranm | 0:5e6b543c1179 | 65 | |
fabeltranm | 0:5e6b543c1179 | 66 | void setup_uart(){ |
fabeltranm | 0:5e6b543c1179 | 67 | command.baud(115200); |
fabeltranm | 0:5e6b543c1179 | 68 | } |
fabeltranm | 0:5e6b543c1179 | 69 | |
fabeltranm | 0:5e6b543c1179 | 70 | |
fabeltranm | 0:5e6b543c1179 | 71 | |
fabeltranm | 0:5e6b543c1179 | 72 | void leer_datos(){ |
stevencastro | 1:8452eddc6a3e | 73 | |
fabeltranm | 0:5e6b543c1179 | 74 | while(command.getc()!= INITCMD); |
fabeltranm | 0:5e6b543c1179 | 75 | sentido_motor=command.getc(); |
fabeltranm | 0:5e6b543c1179 | 76 | N_pasos=command.getc(); |
fabeltranm | 0:5e6b543c1179 | 77 | |
fabeltranm | 0:5e6b543c1179 | 78 | } |
fabeltranm | 0:5e6b543c1179 | 79 | |
fabeltranm | 0:5e6b543c1179 | 80 | |
fabeltranm | 0:5e6b543c1179 | 81 | |
fabeltranm | 0:5e6b543c1179 | 82 | void mover_steper_nema(uint8_t sentido, uint8_t num_pasos){ |
stevencastro | 1:8452eddc6a3e | 83 | int i = 0; |
fabeltranm | 0:5e6b543c1179 | 84 | |
fabeltranm | 0:5e6b543c1179 | 85 | /* complementar el código necesario */ |
stevencastro | 1:8452eddc6a3e | 86 | if (sentido == 1) { // configuracion despues de la lectura del comando |
fabeltranm | 0:5e6b543c1179 | 87 | steppeer_dir = 0; |
stevencastro | 1:8452eddc6a3e | 88 | |
fabeltranm | 0:5e6b543c1179 | 89 | } else if (sentido == 0) { |
fabeltranm | 0:5e6b543c1179 | 90 | steppeer_dir = 1; |
stevencastro | 1:8452eddc6a3e | 91 | |
fabeltranm | 0:5e6b543c1179 | 92 | } |
stevencastro | 1:8452eddc6a3e | 93 | wait_us(1); |
fabeltranm | 0:5e6b543c1179 | 94 | /*esperar 650 nsegundo*/ |
fabeltranm | 0:5e6b543c1179 | 95 | /* complementar el código necesario */ |
stevencastro | 1:8452eddc6a3e | 96 | for (i=1 ; i<=num_pasos; i++){ |
stevencastro | 1:8452eddc6a3e | 97 | printf ("%x",i ); |
fabeltranm | 0:5e6b543c1179 | 98 | stepper_step=1; |
fabeltranm | 0:5e6b543c1179 | 99 | wait_us(VELOCITY); |
fabeltranm | 0:5e6b543c1179 | 100 | stepper_step=0; |
fabeltranm | 0:5e6b543c1179 | 101 | wait_us(VELOCITY); |
stevencastro | 1:8452eddc6a3e | 102 | }} |
fabeltranm | 0:5e6b543c1179 | 103 | |
fabeltranm | 0:5e6b543c1179 | 104 |