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 .
Revision 0:fb45b86a9e04, committed 2021-09-03
- 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