Marlon Daniel Quiroga / Mbed 2 deprecated Entrega2crte5

Dependencies:   mbed

Committer:
MarlonQ
Date:
Thu Apr 04 23:38:54 2019 +0000
Revision:
2:0cc71fa2f3fd
Parent:
1:004a27caba52
Child:
3:aa9cafc61475
Motorres paso apaso;

Who changed what in which revision?

UserRevisionLine numberNew 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);
fabeltranm 0:5e6b543c1179 30 DigitalOut stepper_step(PB_4);
fabeltranm 0:5e6b543c1179 31 DigitalOut steppeer_dir(PB_5);
MarlonQ 2:0cc71fa2f3fd 32 DigitalOut stepper_step1(PB_6);
MarlonQ 2:0cc71fa2f3fd 33 DigitalOut steppeer_dir1(PB_7);
fabeltranm 0:5e6b543c1179 34
fabeltranm 0:5e6b543c1179 35 /*INGRESE LA CONFIGURACION DE LOS MOTORES*/
fabeltranm 0:5e6b543c1179 36
fabeltranm 0:5e6b543c1179 37 #define INITCMD 0xFF
MarlonQ 2:0cc71fa2f3fd 38
fabeltranm 0:5e6b543c1179 39
fabeltranm 0:5e6b543c1179 40 // definición de las variables globales
MarlonQ 2:0cc71fa2f3fd 41 uint32_t VELOCITY = 500 ; // Tiempo enmicro segundos
MarlonQ 2:0cc71fa2f3fd 42 uint8_t N_pasos ; // varable almacena el numero de pasos que se mueve el motor en leer_datos()
MarlonQ 2:0cc71fa2f3fd 43 uint8_t Coman ; //variable que nosindica el movimiento del motor
fabeltranm 0:5e6b543c1179 44
fabeltranm 0:5e6b543c1179 45 // definición de las funciones
fabeltranm 0:5e6b543c1179 46 void setup_uart();
fabeltranm 0:5e6b543c1179 47
MarlonQ 2:0cc71fa2f3fd 48 void mover_steper_nema( uint8_t num_pasos , uint8_t _Coman );
fabeltranm 0:5e6b543c1179 49
MarlonQ 2:0cc71fa2f3fd 50 void leer_datos();
fabeltranm 0:5e6b543c1179 51
fabeltranm 0:5e6b543c1179 52 int main() {
fabeltranm 0:5e6b543c1179 53
fabeltranm 0:5e6b543c1179 54 setup_uart();
fabeltranm 0:5e6b543c1179 55 //command.printf("inicio de programa");
fabeltranm 0:5e6b543c1179 56 while(1){
fabeltranm 0:5e6b543c1179 57 leer_datos();
MarlonQ 2:0cc71fa2f3fd 58 mover_steper_nema( N_pasos , Coman );
fabeltranm 0:5e6b543c1179 59 }
fabeltranm 0:5e6b543c1179 60 }
fabeltranm 0:5e6b543c1179 61
fabeltranm 0:5e6b543c1179 62 void setup_uart(){
MarlonQ 2:0cc71fa2f3fd 63 command.baud( 115200 ) ;
fabeltranm 0:5e6b543c1179 64 }
fabeltranm 0:5e6b543c1179 65
fabeltranm 0:5e6b543c1179 66
fabeltranm 0:5e6b543c1179 67
fabeltranm 0:5e6b543c1179 68 void leer_datos(){
MarlonQ 2:0cc71fa2f3fd 69 while(command.getc()!= INITCMD) ;
MarlonQ 2:0cc71fa2f3fd 70 Coman = command.getc() ;
MarlonQ 2:0cc71fa2f3fd 71 N_pasos = command.getc() ;
fabeltranm 0:5e6b543c1179 72
fabeltranm 0:5e6b543c1179 73 }
fabeltranm 0:5e6b543c1179 74
MarlonQ 2:0cc71fa2f3fd 75 void mover_steper_nema( uint8_t num_pasos , uint8_t Coman ){
fabeltranm 0:5e6b543c1179 76
MarlonQ 2:0cc71fa2f3fd 77 uint8_t i = 0;
MarlonQ 2:0cc71fa2f3fd 78 switch (Coman){
MarlonQ 2:0cc71fa2f3fd 79
MarlonQ 2:0cc71fa2f3fd 80 case 5:
MarlonQ 2:0cc71fa2f3fd 81 steppeer_dir = 1;
MarlonQ 2:0cc71fa2f3fd 82 wait_us( 1 );
MarlonQ 2:0cc71fa2f3fd 83
MarlonQ 2:0cc71fa2f3fd 84 for ( i= 0 ; i <= num_pasos ; i++ ){
MarlonQ 2:0cc71fa2f3fd 85
MarlonQ 2:0cc71fa2f3fd 86 stepper_step=1;
MarlonQ 2:0cc71fa2f3fd 87 wait_us(VELOCITY);
MarlonQ 2:0cc71fa2f3fd 88 stepper_step=0;
MarlonQ 2:0cc71fa2f3fd 89 wait_us(VELOCITY);
MarlonQ 2:0cc71fa2f3fd 90
MarlonQ 2:0cc71fa2f3fd 91 }
MarlonQ 2:0cc71fa2f3fd 92 break;
MarlonQ 2:0cc71fa2f3fd 93
MarlonQ 2:0cc71fa2f3fd 94 case 6:
MarlonQ 2:0cc71fa2f3fd 95 steppeer_dir = 0;
MarlonQ 2:0cc71fa2f3fd 96 wait_us( 1 );
fabeltranm 0:5e6b543c1179 97
MarlonQ 2:0cc71fa2f3fd 98 for ( i= 0 ; i <= num_pasos ; i++ ){
MarlonQ 2:0cc71fa2f3fd 99
MarlonQ 2:0cc71fa2f3fd 100 stepper_step=1;
MarlonQ 2:0cc71fa2f3fd 101 wait_us(VELOCITY);
MarlonQ 2:0cc71fa2f3fd 102 stepper_step=0;
MarlonQ 2:0cc71fa2f3fd 103 wait_us(VELOCITY);
MarlonQ 2:0cc71fa2f3fd 104
MarlonQ 2:0cc71fa2f3fd 105 }
MarlonQ 2:0cc71fa2f3fd 106 break;
MarlonQ 2:0cc71fa2f3fd 107
MarlonQ 2:0cc71fa2f3fd 108 case 7:
MarlonQ 2:0cc71fa2f3fd 109 steppeer_dir = 1;
MarlonQ 2:0cc71fa2f3fd 110 wait_us( 1 );
MarlonQ 2:0cc71fa2f3fd 111
MarlonQ 2:0cc71fa2f3fd 112 for ( i= 0 ; i <= 64 ; i++ ){
MarlonQ 2:0cc71fa2f3fd 113
MarlonQ 2:0cc71fa2f3fd 114 stepper_step=1;
MarlonQ 2:0cc71fa2f3fd 115 wait_us(VELOCITY);
MarlonQ 2:0cc71fa2f3fd 116 stepper_step=0;
MarlonQ 2:0cc71fa2f3fd 117 wait_us(VELOCITY);
MarlonQ 2:0cc71fa2f3fd 118 }
MarlonQ 2:0cc71fa2f3fd 119 break;
MarlonQ 2:0cc71fa2f3fd 120
MarlonQ 2:0cc71fa2f3fd 121 case 8:
fabeltranm 0:5e6b543c1179 122 steppeer_dir = 0;
MarlonQ 2:0cc71fa2f3fd 123 wait_us( 1 );
MarlonQ 2:0cc71fa2f3fd 124
MarlonQ 2:0cc71fa2f3fd 125 for ( i= 0 ; i <= 64 ; i++ ){
MarlonQ 2:0cc71fa2f3fd 126
MarlonQ 2:0cc71fa2f3fd 127 stepper_step=1;
MarlonQ 2:0cc71fa2f3fd 128 wait_us(VELOCITY);
MarlonQ 2:0cc71fa2f3fd 129 stepper_step=0;
MarlonQ 2:0cc71fa2f3fd 130 wait_us(VELOCITY);
MarlonQ 2:0cc71fa2f3fd 131 }
MarlonQ 2:0cc71fa2f3fd 132 break;
MarlonQ 2:0cc71fa2f3fd 133
MarlonQ 2:0cc71fa2f3fd 134 case 9:
MarlonQ 2:0cc71fa2f3fd 135 //VELOCITY = VELOCITY * num_pasos ;
MarlonQ 2:0cc71fa2f3fd 136 break;
MarlonQ 2:0cc71fa2f3fd 137 }
MarlonQ 1:004a27caba52 138
fabeltranm 0:5e6b543c1179 139 }