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@2:0cc71fa2f3fd, 2019-04-04 (annotated)
- 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?
| 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); |
| 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 | } |