Problema que se resolvió: generar un programa que controle por el puerto serial el sentido de giro del motor nema, y el número de pasos. en este caso dejar la velocidad constante pero con un define .

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
CCastrop1012
Date:
Fri Sep 03 04:33:37 2021 +0000
Commit message:
El programa controla el sentido de giro y velocidad de un motor paso a paso.

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Sep 03 04:33:37 2021 +0000
@@ -0,0 +1,106 @@
+#include "mbed.h"
+ 
+/*****************************************************************************
+generar un programa que controle por el puerto serial el sentido de giro del motor nema,
+y el número de pasos. en este caso dejar la velocidad constante pero con un define .
+ 
+por medio de la comunicacion serial el comando es 
+ 
+|            |            |             |
+|   INITCMD  |   sentido  |   N_pasos   |
+|     0xff   | 0x00- 0x01 | 0x00 - 0xff |
+ 
+para enviar los comandos usar el programa Coolterm http://freeware.the-meiers.org/
+ 
+# para el motor nena se configurar el driver  drv8825:
+#
+#
+#     <------period 4us min-------->
+#     <-1.9us min -> <-1.9us min ->
+#      _____________                _____________ 
+# ____|             |______________|             |___________  signal step
+#   ____                          ____  
+# _|    |________________________|    |____________________  dir modex 1-cw 0ccw
+#  <-> min 650ns                    <-> min 650ns  
+#
+*****************************************************************************/
+ 
+ 
+Serial command(USBTX, USBRX);
+DigitalOut stepper_step(PB_4);
+DigitalOut steppeer_dir(PB_5);
+ 
+/*INGRESE LA CONFIGURACION DE LOS MOTORES*/
+ 
+#define INITCMD 0xFF
+#define VELOCITY 5   ///en micro segundos
+ 
+// definición de las variables globales 
+ 
+uint8_t sentido_motor;   // variable almacena el sentido de giro de motor en leer_datos()
+uint8_t N_pasos;        // varable almacena el numero de pasos que se mueve el motor en leer_datos()
+ 
+ 
+// definición de las funciones
+void setup_uart();
+ 
+void mover_steper_nema(uint8_t sentido, uint8_t num_pasos);
+ 
+void leer_datos();
+ 
+    
+    
+int main() {
+ 
+    setup_uart();
+    //command.printf("inicio de programa");
+    while(1){    
+        leer_datos();
+        mover_steper_nema(sentido_motor, N_pasos);
+    }    
+}
+ 
+ 
+ 
+void setup_uart(){
+    command.baud(115200);
+}
+ 
+ 
+ 
+void leer_datos(){
+    while(command.getc()!= INITCMD);
+    sentido_motor=command.getc();
+    N_pasos=command.getc();
+    
+}
+ 
+ /*
+void mover_steper_nema(uint8_t sentido, uint8_t num_pasos){
+ 
+        uint32_t dpulse=0;
+        
+/* complementar el código necesario */
+
+    if (sentido == 1) 
+    {
+        steppeer_dir = 0;
+    } else if (sentido == 0) 
+    {
+        steppeer_dir = 1;
+    }
+    /*esperar 650 nsegundo*/
+    
+    /* complementar el código necesario */
+    
+      while ( num_pasos != 0) 
+       ( 
+            stepper_step = 1;
+            wait_us(VELOCITY);
+            stepper_step = 0;
+            wait_us(VELOCITY);
+            num_pasos --;
+        }
+        
+
+} 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Sep 03 04:33:37 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file