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 00003 /***************************************************************************** 00004 generar un programa que controle por el puerto serial el sentido de giro del motor nema, 00005 y el número de pasos. en este caso dejar la velocidad constante pero con un define . 00006 00007 por medio de la comunicacion serial el comando es 00008 00009 | | | | 00010 | INITCMD | sentido | N_pasos | 00011 | 0xff | 0x00- 0x01 | 0x00 - 0xff | 00012 00013 para enviar los comandos usar el programa Coolterm http://freeware.the-meiers.org/ 00014 00015 # para el motor nena se configurar el driver drv8825: 00016 # 00017 # 00018 # <------period 4us min--------> 00019 # <-1.9us min -> <-1.9us min -> 00020 # _____________ _____________ 00021 # ____| |______________| |___________ signal step 00022 # ____ ____ 00023 # _| |________________________| |____________________ dir modex 1-cw 0ccw 00024 # <-> min 650ns <-> min 650ns 00025 # 00026 *****************************************************************************/ 00027 00028 00029 Serial command(USBTX, USBRX); 00030 DigitalOut stepper_step(PB_4); 00031 DigitalOut steppeer_dir(PB_5); 00032 00033 /*INGRESE LA CONFIGURACION DE LOS MOTORES*/ 00034 00035 #define INITCMD 0xFF 00036 #define VELOCITY 5 ///en micro segundos 00037 00038 // definición de las variables globales 00039 00040 uint8_t sentido_motor; // variable almacena el sentido de giro de motor en leer_datos() 00041 uint8_t N_pasos; // varable almacena el numero de pasos que se mueve el motor en leer_datos() 00042 00043 00044 // definición de las funciones 00045 void setup_uart(); 00046 00047 void mover_steper_nema(uint8_t sentido, uint8_t num_pasos); 00048 00049 void leer_datos(); 00050 00051 00052 00053 int main() { 00054 00055 setup_uart(); 00056 //command.printf("inicio de programa"); 00057 while(1){ 00058 leer_datos(); 00059 mover_steper_nema(sentido_motor, N_pasos); 00060 } 00061 } 00062 00063 00064 00065 void setup_uart(){ 00066 command.baud(115200); 00067 } 00068 00069 00070 00071 void leer_datos(){ 00072 while(command.getc()!= INITCMD); 00073 sentido_motor=command.getc(); 00074 N_pasos=command.getc(); 00075 00076 } 00077 00078 /* 00079 void mover_steper_nema(uint8_t sentido, uint8_t num_pasos){ 00080 00081 uint32_t dpulse=0; 00082 00083 /* complementar el código necesario */ 00084 00085 if (sentido == 1) 00086 { 00087 steppeer_dir = 0; 00088 } else if (sentido == 0) 00089 { 00090 steppeer_dir = 1; 00091 } 00092 /*esperar 650 nsegundo*/ 00093 00094 /* complementar el código necesario */ 00095 00096 while ( num_pasos != 0) 00097 ( 00098 stepper_step = 1; 00099 wait_us(VELOCITY); 00100 stepper_step = 0; 00101 wait_us(VELOCITY); 00102 num_pasos --; 00103 } 00104 00105 00106 }
Generated on Mon Aug 15 2022 23:05:10 by
1.7.2