laboratorio de comando con el motor paso a paso nema

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
fabeltranm
Date:
Mon Feb 25 22:49:23 2019 +0000
Commit message:
ok lab

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
diff -r 000000000000 -r 5e6b543c1179 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Feb 25 22:49:23 2019 +0000
@@ -0,0 +1,102 @@
+#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 cosntantes 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 */
+        stepper_step=1;
+        wait_us(VELOCITY);
+        stepper_step=0;
+        wait_us(VELOCITY);
+
+
+}
+
+
diff -r 000000000000 -r 5e6b543c1179 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Feb 25 22:49:23 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file