MOVER MOTORES PASO A PASO CON ARDUINO
(28/12/13)
En este tutorial veremos que es un motor paso a paso, las diferentes maneras de conectarlos y como controlarlos con Arduino.
Material
-Arduino Uno Rev 3
-Motor paso a paso unipolar
-Motor paso a paso bipolar
-L293D
-ULN2803
-2 Transistores NPN
-Pulsadores
-4 Resistencias 10K y 2 resistencias 1K
-Potenciómetro
-Fuente alimentación
Motor paso a paso
Un motor paso a paso (también llamado stepper) es un dispositivo electromagnético que convierte impulsos eléctricos en movimientos mecánicos de rotación. La principal característica de estos motores es que se mueven un paso por cada impulso que reciben. Normalmente los pasos pueden ser de 1,8º a 90º por paso, dependiendo del motor. Por ejemplo: un motor paso a paso que se mueve 2º cada paso, quiere decir que para completar una vuelta (360º) tendrá que dar (360º/2ºpor paso) 180 pasos.
Son motores con mucha precisión, que permiten quedar fijos en una posición (como un servomotor) y también son capaces de girar libremente en un sentido u otro (como un motor DC).
Hay tres tipos de motores paso a paso:
-Motor paso a paso de imán permanente (los que usaremos en este tutorial).
-Motor paso a paso de reluctancia variable.
-Motor paso a paso hibrido.
Los Motores paso a paso están formados por dos partes:
-El estator es la parte fija del motor donde sus cavidades van depositadas las bobinas.
-El rotor es la parte móvil del motor construido por un imán permanente.
Estas dos partes van montadas sobre un eje.
Funcionamiento
Cuando circula corriente por una o más bobinas del estator se crea un campo magnético creando los polos Norte-Sur. Luego el rotor se equilibrará magnéticamente orientando sus polos Norte-Sur hacia los polos Sur-Norte del estator. Cuando el estator vuelva a cambiar la orientación de sus polos a través de un nuevo impulso recibido hacia sus bobinas, el rotor volverá a moverse para equilibrarse magnéticamente. Si se mantiene esta situación, obtendremos un movimiento giratorio permanente del eje. El ángulo de paso depende de la relación entre el nombre de polos magnéticos del estator y el nombre de polos magnéticos del rotor.
Hay dos tipos de motores paso a paso: los unipolares y los bipolares.
Los bipolares se componen de 2 bobinas y los unipolares de 4 bobinas. Para diferenciarlos físicamente basta con observar el número de terminales de cada motor. Los bipolares siempre tienen 4 terminales, dos para cada bobina, y los unipolares normalmente tienen 6 terminales, dos para cada bobina y los otro dos son los comunes de estas. Hay motores unipolares con 5 terminales en que los dos comunes están unidos internamente.
La diferencia entre los dos es que un motor paso a paso unipolar se activa una bobina a la vez mientras que un motor bipolar se activa más de una bobina a la vez. Esto hace que un motor bipolar tenga más torque que un motor unipolar. Por contra, un motor bipolar es más complejo de controlar que un unipolar.
Secuencia para controlar motores paso a paso Bipolares
Un motor paso a paso bipolar necesita invertir la corriente que circula por sus bobinas en una secuencia determinada para provocar el movimiento del eje.
Paso |
Bobina 1A |
Bobina 1B |
Bobina 2A |
Bobina 2B |
Paso 1 |
1 |
0 |
1 |
0 |
Paso 2 |
1 |
0 |
0 |
1 |
Paso 3 |
0 |
1 |
0 |
1 |
Paso 4 |
0 |
1 |
1 |
0 |
Secuencia para controlar motores paso a paso Unipolares
Hay tres secuencias para controlar los motores paso a paso unipolares
Simple o wave drive: Es una secuencia donde se activa una bobina a la vez. Esto hace que el motor tenga un paso más suave pero por el contrario tenga menos torque y menos retención.
Paso |
Bobina A |
Bobina B |
Bobina C |
Bobina D |
Paso 1 |
1 |
0 |
0 |
0 |
Paso 2 |
0 |
1 |
0 |
0 |
Paso 3 |
0 |
0 |
1 |
0 |
Paso 4 |
0 |
0 |
0 |
1 |
Normal: Es la secuencia más usada y la que recomiendan los fabricantes. Con esta secuencia el motor avanza un paso por vez y siempre hay dos bobinas activadas. Con esto se obtiene un mayor torque y retención.
Paso |
Bobina A |
Bobina B |
Bobina C |
Bobina D |
Paso 1 |
1 |
1 |
0 |
0 |
Paso 2 |
0 |
1 |
1 |
0 |
Paso 3 |
0 |
0 |
1 |
1 |
Paso 4 |
1 |
0 |
0 |
1 |
Medio paso: Se activan primero dos bobinas y después solo una y así sucesivamente. Esto provoca que el motor avance la mitad del paso real. Esto se traduce en un giro más suave y preciso.
Paso |
Bobina A |
Bobina B |
Bobina C |
Bobina D |
Paso 1 |
1 |
0 |
0 |
0 |
Paso 2 |
1 |
1 |
0 |
0 |
Paso 3 |
0 |
1 |
0 |
0 |
Paso 4 |
0 |
1 |
1 |
0 |
Paso 5 |
0 |
0 |
1 |
0 |
Paso 6 |
0 |
0 |
1 |
1 |
Paso 7 |
0 |
0 |
0 |
1 |
Paso 8 |
1 |
0 |
0 |
1 |
Controlar motor paso a paso Bipolar con Arduino
Como hemos explicado antes, los motores bipolares son más complejos de controlar ya que el flujo de corriente tiene que cambiar de dirección a través de las bobinas con una secuencia determinada. Para esto debemos conectar cada una de las dos bobinas en un puente en H (H-Bridge). Para esto, utilizaremos el integrado L293 que contiene dos H-Bridge (datasheet).
Para controlar motores paso a paso con Arduino, utilizaremos la librería <Stepper.h> que viene con el software de este.
/* www.diymakers.es by A.García Mover motores paso a paso con Arduino Tutorial en: http://diymakers.es/mover-motores-paso-paso-con-arduino/ */ #include <Stepper.h> //Importamos la librería para controlar motores paso a paso #define STEPS 200 //Ponemos el número de pasos que necesita para dar una vuelta. 200 en nuestro caso // Ponemos nombre al motor, el número de pasos y los pins de control Stepper stepper(STEPS, 8, 9, 10, 11); //Stepper nombre motor (número de pasos por vuelta, pins de control) void setup() { // Velocidad del motor en RPM stepper.setSpeed(100); } void loop() { //Girar una vuelta entera en un sentido stepper.step(200); delay(500); //Pequeña pausa //Girar una vuelta entera en sentido contrario stepper.step(-200); delay(500); //Pequeña pausa }
Utilizando esta conexión tenemos un pequeño problema, y es que usamos cuatro pins del Arduino para controlar el motor, y eso son muchos. Si queremos controlar más de un motor paso a paso y usar otros pins para otras conexiones, nos quedaremos cortos de pins. Esto se puede solucionar con una conexión diferente que solo utiliza dos pins de control del Arduino.
Conexión dos pins
Para entender esta conexión, primero hay que fijarse en la secuencia del motor paso a paso bipolar que hemos visto antes. Si nos fijamos bien, veremos que los extremos de cada bobina están invertidos entre sí.
De esta manera solo tenemos que usar dos pins de control e invertirlos. Para invertirlos usaremos dos transistores NPN (BC547,BD139, etc…) polarizados en emisor común y que trabajen en modo saturación-corte. Así el transistor trabaja como un inversor de señal.
De este modo, usaremos solo dos pins del Arduino y con los dos NPN en modo de inversor obtendremos los cuatro pins de control necesarios para atacar el L293.
El programa es el mismo que antes, con la diferencia que cambiaremos los pins de control:
En vez de usar:
Stepper stepper(STEPS, 8, 9,10,11);
Cambiamos por:
Stepper stepper(STEPS, 8, 9);
/* www.diymakers.es by A.García Mover motores paso a paso con Arduino Tutorial en: http://diymakers.es/mover-motores-paso-paso-con-arduino/ */ #include <Stepper.h> //Importamos la librería para controlar motores paso a paso #define STEPS 200 //Ponemos el número de pasos que necesita para dar una vuelta. 200 en nuestro caso // Ponemos nombre al motor, el número de pasos y los pins de control Stepper stepper(STEPS, 8, 9); //Stepper nombre motor (número de pasos por vuelta, pins de control) void setup() { // Velocidad del motor en RPM stepper.setSpeed(100); } void loop() { //Girar una vuelta entera en un sentido stepper.step(200); delay(500); //Pequeña pausa //Girar una vuelta entera en sentido contrario stepper.step(-200); delay(500); //Pequeña pausa }
Controlar motor paso a paso Unipolar con Arduino
Un motor paso a paso unipolar es más sencillo que controlar. Utilizaremos el integrado ULN2803 que es un array de 8 transistores tipo Darlington capaz de soportar cargas de hasta 500mA (datasheet). Conectaremos los cuatro pins del Arduino a las entradas del ULN2803 y las salidas de este a las bobinas. Los comunes a 12V.
El programa es el mismo que hemos usado antes con el motor bipolar de 4 pins:
/* www.diymakers.es by A.García Mover motores paso a paso con Arduino Tutorial en: http://diymakers.es/mover-motores-paso-paso-con-arduino/ */ #include <Stepper.h> //Importamos la librería para controlar motores paso a paso #define STEPS 200 //Ponemos el número de pasos que necesita para dar una vuelta. 200 en nuestro caso // Ponemos nombre al motor, el número de pasos y los pins de control Stepper stepper(STEPS, 8, 9, 10, 11); //Stepper nombre motor (número de pasos por vuelta, pins de control) void setup() { // Velocidad del motor en RPM stepper.setSpeed(100); } void loop() { //Girar una vuelta entera en un sentido stepper.step(200); delay(500); //Pequeña pausa //Girar una vuelta entera en sentido contrario stepper.step(-200); delay(500); //Pequeña pausa }
Controlar velocidad y sentido de un motor paso a paso Bipolar con Arduino
Ahora que ya sabemos las diferentes maneras y conexiones de controlar los motores paso a paso, vamos a hacer un pequeño proyecto con un motor bipolar. Con un potenciómetro regularemos la velocidad de este, y con dos pulsaremos seleccionaremos el sentido de giro.
-Ajuntar las masas del Arduino y de la fuente de alimentación.
-Los dos pulsadores conectados en modo Pull-Down.
-Para detectar las bobinas, basta con conectar el tester en continuidad en dos terminales, cuando marque continuidad o una baja carga ohmica quiere decir que entre esos dos terminales hay una bobina.
-Un consejo: mejor no alimentar el Arduino solo con el cable USB, sino con la fuente de alimentación a través del pin Vin o del conector jack. Esto es para que no haya errores, sobre todo a la hora de controlar motores. El cable USB solo conectarlo cuando se use la comunicación serie con el PC. Si no es así, desconectarlo.
Programa
/* www.diymakers.es by A.García Mover motores paso a paso con Arduino Tutorial en: http://diymakers.es/mover-motores-paso-paso-con-arduino/ */ #include <Stepper.h> //Importamos la librería para controlar motores paso a paso #define STEPS 200 //Ponemos el número de pasos que necesita para dar una vuelta. 200 en nuestro caso // Ponemos nombre al motor, el número de pasos y los pins de control Stepper stepper(STEPS, 8, 9); //Stepper nombre motor (número de pasos por vuelta, pins de control) int pot; //Variable lectura potenciómetro int derecha=3; //Pulsador derecha int izquierda=2; //Pulsador izquierda int direccion; //Variable para indicar la direccón void setup() { pinMode(derecha,INPUT); pinMode(izquierda,INPUT); } void loop() { pot=analogRead(A0); //Lectura potenciómetro pot = map(pot, 0, 1023, 30, 150); //Establecemos la velocidad entre 30 y 150 rpm stepper.setSpeed(pot); //Indicamos la velocidad al motor stepper.step(direccion); //Indicamos la dirección al motor if(digitalRead(izquierda)==HIGH) { direccion=200; //Si pulsamos el pulsador izquierdo, el motor gira a la izquierda } if(digitalRead(derecha)==HIGH) { direccion=-200; //Si pulsamos el pulsador derecho, el motor gira a la derech } }
Franchescor
Gran tutorial si señor, todo perfectamente explicado
DIYMakers Post author
Gracias Franchescor!!!
Jorge Pombo
Hola saludos nacesito agregar potenciometro para variar numero pasos de donde esta; la direccion se daria con pulsadores 2 y 3.
Muy agradecido cualquier consejo.
Jorge
Mijael
Buenos noches, le queria pedir ayuda, me dejaron en la escuela hacer un programa para un motor paso a paso de 6 cables, con tres botones, con uno que gire a la izquierda, otra a la derecha y otro que para parar el motor, sin usar un algun integrado solo el puro arduino y con transistores. Puedes ayudarme? gracias.
Carlos
Hola disculpa y para hacerlo funcionar sin librería en arduino
Jonas
Buenas tardes, la librería stepper qué tipo de secuencia utiliza para mover el motor pap, de par máximo, paso completo o medio paso?
gracias
Jonas
Disculpa respecto a la pregunta anterior, la vuelvo a formular la librería stepper qué tipo de secuencia utiliza para mover el motor pap; secuencia simple, normal o medio paso?
gracias
John Bravo
Buen dia, quiero controlar un motor paso a paso bipolar con la condicion que al aplastar un pulsador o un interruptor el motor gire en un sentido, cuando deje de ser accionado el motor pare. Debe funcionar en los dos sentidos. Voy a controlar un brazo hidraulico, si me ayudan les quedare completamente agradecido.
DIYMakers Post author
Hola John
Lo que quieres hacer parece ser muy parecido al último programa que hacemos en el tutorial. Lo único que tienes que hacer es poner una condición que cuando no se pulse el pulsador, el motor deje de girar. Si quieres mandarnos más información, contacta con nosotros a través del formulario en el apartado contacto para así poder ayudarte mejor.
John Bravo
Si exactamente comprendo que se debe tener esa condicion, no tengo conocimientos de la programacion de arduino, necesito saber cual es la sentencia para deter al motor. Saludos desde Quito.
Cual es el formulario del apatardo del contacto?
jonathan
Necesito lo mismo!!! Lo conseguistes?
Andres Quintero
Simplemente le pones stepper.step(0);
mariano
donde tendría que poner esa condición? estoy haciendo funcionar un brazo robot y tengo que controlar varios motores
victor
hola!!!
he usado la librería recomendada para mover motores pap, según lo recomendado, me pregunto si existe alguna librería que permita mover el motor en medios pasos, ya que la librería Stepper solo lo hace en modo normal.
y si no existe… cómo podría modificarla para que se comporte cómo yo quiero???
gracias de antemano
DIYMakers Post author
Hola Victor
Pues no se de ninguna librería para poder hacer medio paso en los steppers. Una forma de hacerlo sería manual, sin usar la librería «Stepper» y activar las bobinas de cada paso manualmente a través de código.
victor
hola, gracias por responder.
si, eso pensé, también pensé en modificar la librería stepper a mis necesidades, que seguramente termine siendo una librería nueva. supuse que este dilema ya lo tuvo otra persona antes que yo, y antes de ponerme a hacer lios pregunto…
bueno muchas gracias nuevamente!!! ya veré como lo soluciono
RudbenXC
hola, hacer un paso fraccionado es cosa de harward, asi es que trabaja con algun pololu o solo que tengas que controles el flujo de energia entrante con una librerai, pero eso siempre es menos fuerza por eso es mejro trabajar con ambos lados tanto sof. como harw. Saludos
Jesus Perez Iglesias
Querria automatizar el movimiento de una maquina de hobbie, una fresadora pequeña, mi intencion es montar en el eje X un motor pap Nema23 de unos 4Nm que se puede conectar en polar y en bipolar (paraleo o serie) y con un comsumo entre 2 y 4A, y por otra parte el eje Z con um motor Nema 34 de las mismas posibilidades de conexion que el anterior y con un consumo entre 3 y 6A dependiendo como se conecte. La idea es poder manejarlos a traves de unos pulsadores o joystick o bien poder ponerlos en funcionamiento continuo sin usar los pulsadores. Por otra parte necesitaria la posibilidad de poder montar limit switch de posicion ¿Que Arduino me recomiendas?, ¿cual seria la instalacion?,
Gracias de antemano
DIYMakers Post author
Puedes hacerlo con drivers parecidos a los que usamos en este tutorial, o steppers drivers que solo tienes que dar dirección y pulsos de pasos. El funcionamiento es solo indicar el numero de pasaos en los dos motores, el sentido y la velocidad de giro (con un potenciometro por ejemplo). Cualquier Arduino te irá bien, si son solo dos motores no necesitas muchos pins.
Jesus Perez Iglesias
se me olvido comentar que la idea es controlar la velocidad y el sentido de giro
victor
la librería stepper de arduino es perfecta para mover en cualquier sentido los motores que quieras, pero no tan práctica para setear distintas velocidades, la rutina que determina o fija la velocidad es una sola, supongamos que quieres fijar tres velocidades distintas para tres motores pap, tendrás la última velocidad seteada (no importa en cual motor) en los tres motores.
otro tema es si necesitas desconectar algún motor en algún momento, la librería no tiene una rutina para tal fin, pero es muy fácil de implementar:
void Stepper::motorOff(void)
{
digitalWrite(motor_pin_1, LOW);
digitalWrite(motor_pin_2, LOW);
digitalWrite(motor_pin_3, LOW);
digitalWrite(motor_pin_4, LOW);
}
por ejemplo, para el caso de comandar al motor con cuatro pines.
para comandar motores de hasta 2A podrías usar el MP4303, pero hay otras soluciones, para corrientes más elevadas no conozco.
en cuanto a «que arduino usar»… diría que tengas en cuenta cuantos pines destinarás en tu circuito, dos o cuatro pines por motor? usarás seis pulsadores para comandar manualmente los tres motores? usarás tres finales de carrera para indicar el cero de tu máquina y contarás pulsos hasta llegar al final de los ejes? o usarás otros tres finales de carrera para seguridad al alcanzar los límites de la máquina? algún sensor extra, para detectar una mano donde no debería estar, por ejemplo?
todo suma si no quieres desarrollar mucha electrónica, y puede que hasta un mega te quede chico… en principio, te sugiero que diseñes muy bien tus entradas y salidas a efectos de usar un arduino uno, las prestaciones del uno son más que suficientes para una fresadora 3D (o router CNC) casero, se acostumbra usar el mega ya en una impresora 3D.
exitos en tu proyecto!!!
salvador
hola. yo estoy intentando cambiar la dirección de un pap mediante un joystick analógico… pero tengo problemas para decirle al motor que parta sin ningún movimiento y que al mover en sentido opuesto el joystick el motor cambie de dirección. me imagino a que se debe por que la librería tiene algunos problemas con condiciones como esta. de ser asi, tendría que realizar el funcionamiento del motor sin la libreria, cosa que desconozco ya que no tengo casi nada de experiencia con arduino y recien estoy aprendiendo a usar un motor paso a paso. se agradece cualquier ayuda
Roberto
Donde has colocado la corrección en la libreía?, lo he intentado y no me resulta….
victor
según donde tengas instalado, en mi caso:
C:\Program Files (x86)\Arduino\libraries\Stepper
hay tres archivos que modificar.
Editas el archivo Stepper.cpp con cualquier editor de texto enriquecido, por ejemplo el WordPad (no el bloc de notas) y agregas al final la nueva función, salvas y cierras.
luego debes editar de la misma forma el archivo de encabezados Stepper.h y agregar la referencia a la nueva función:
// speed setter method:
void setSpeed(long whatSpeed);
// mover method:
void step(int number_of_steps);
int version(void);
//Liberar motor:
void motorOff(void); // <– el encabezado de la nueva función
private:
void stepMotor(int this_step);
Con eso ya funciona, puedes editar el archivo keywords.txt y agregar:
step KEYWORD2
setSpeed KEYWORD2
version KEYWORD2
motorOff KEYWORD2
(tecla TAB separando entre motorOff y KEYWORD2, no espacios)
esto para que al usar en tus programas la nueva función cambie de color y mantener así el estilo propio de la programación de Arduino.
por último, y optatívo, en el subdirectorio mencionado encontrarás la carpeta "examples", puedes escribir un pequeño programa de prueba y uso de la nueva función y gurdarlo dentro de esta carpeta.
exitos!!!!!
fausto
buen día!
saben cuantos psos se requieren paa una vuelta en un motor bipolar em-326?
gracias
Abel Sanchez Sanchez
mi computadora no lee la placa de arduino. puede ser que la placa este dañada ??? ya le cambie el CI y sigue sin detectarla. espero su pronta respuesta
brayan
checa en herramientas, y selecciona la plaque que estes utilizando en mi caso la mega
Nelson
Hola, antes que nada muchas gracias por el tutorial, está muy bueno. Me ha ocurrido lo siguiente, he utilizado un arduino MEGA 2560 para implementar este sistema pero ha ocurrido que mi arduino se ha empezado a sobre calentar, menos mal lo desconecte a tiempo, probé otro código y sigue funcionando bien mi arduino, pero en este sistema siempre se calienta, quisiera saber si se requiere de un acople control-potencia adicional. De antemano gracias por tu respuesta.
victor
Sería bueno que comentes el circuito electrónico que implementaste, cómo están conectado los motores???
Nelson
Si claro, el montaje que implemente es el que esta presenté en la sección subtitulada como «Conexión dos pins», el único cambio que hice fue el de utilizar transistores NPN de referencia BC548 a diferencia de los sugeridos, pero no creo que ese sea el problema; según el datasheet son semejantes, utilice las resistencias sugeridas a igual que el driver (L293) y una fuente variable que fije a 12v, inicialmente se calentaba el chip del arduino como mencione anteriormente pero después utilice dos diodos entre los pins 8 y 9 del arduino y los nodos que van hacia el driver (IN1 IN2′ IN3′ IN4), ya no se calentaba pero no ocurría nada, después deje el circuito como estaba inicialmente (sin diodos) pero al parecer el driver (L293) quedo en corto porque tumbó la tensión de la fuente; de 12v a 3v. Quedo a la espera de una posible solución, gracias por tu pronta respuesta!
victor
y calienta arduino??? no debería, entiendo que se te pudo dañar el 293, pero aún así no veo porque caliente arduino, como lo alimentas? en vacío (el arduino desconetado de todo y alimentado) calienta?
los motores pap son medio «jodidos» (perdón por la expresión) en cuanto a conseguir el mejor torque con la menor temperatura de trabajo, pero no es ese tu problema.
Nelson
La alimentación del arduino es por medio del PC… El arduino al vacío no se calienta, sólo se calienta con la conexión del motor paso a paso, en otras condiciones o con otros programas tampoco se calienta, conseguiré de nuevo el driver y probare mañana debido a que hoy no tengo presente con migó el sistema, si de pronto tienes un video del circuito que estoy implementando te lo agradecería, veo que en el circuito que se muestra en el video a lo último del tutorial no se perciben problemas, depronto viendo el montaje que estoy usando encuentre mi problema. Gracias.
Fernando Alemanno
Hola, perfecto tutorial!!! Yo quisiera mover un motor pap pero mediante un potenciómetro en vez de dos pulsadores, osea que el sentido de giro al motor se lo de el sentido de giro del pote. Como podría hacerlo?
Desde ya muchas gracias.
Saludos. FA
agustin
hola buenas tardes. me da como error al querer programar la parte
«stepper.setSpeed(pot); //Indicamos la velocidad al motor
stepper.step(direccion); //Indicamos la dirección al motor»
que puedo hacer para lo acepte? espero su respuesta!
Wilfredo
Buen tutorial, solo tengo una consulta el codigo puede ser usado con el modulo l298n???
pablo zapata
Buenas compadre, me a servido de gran ayuda tu tutorial, tengo algunas dudas para el control del motor atra vez de un sensor, te explico debo hacer un ascensor automatico, el cual consta de 3 pisos y t3 columnas, el cual por intermedio de motores bipolares y sensor ultra sonico que me vera si en el estacionamiento hay auto o no se pueda mover segun las señales o condiciones de cada sensor, no se si me podrías ayudar, estaría gratamente agradecido, atte pablo zapata mi ocrreo de contacto por cualquier cosa o si te interesa es pablo.zapata05@inacapmail.cl
ALEXIS
Excelente tengo unas dudas quisiera saber si tienes algun correo para comunicarme por favor.
Black
Hola buenos días, estoy trabajando con un motor unipolar de 5 salidas, me gustaría saber como adaptarlo al circuito que propones.
Grp71
Hola! arme el circuito,de driver use en L298 el circuito funciona pero a velocidad alta solo me deja invertir el giro,ya que si disminuyo la velocidad no tienen acción los touch,igualmente el pote lo giro para aumentar o disminuir tiene un retado bastante notorio (el arduino lo alimenté externamente para descartar errores).Si funcionara correctamente sería bueno que también tenga un touch de frenado del motor.Saludos!
Carlos
Hola amigos!, quisiera saber si hay alguna forma de que por ejemplo pulsando un boton el stepper de n cantidad de pasos y luego automaticamente pare, solo si vuelvo a pulsar el boton volvera a dar los n pasos. Me pasa que con el void loop el vuelve a dar hasta que yo accione otro boton, pero quisiera que el se pare despues de completar la cantidad determinada de pasos. Muchas gracias por la ayuda
victor
con un bucle, algo así:
if(digitalRead(El_Pulsador_Que_Quieras)==HIGH)
{
for(int i = 0; i >= LOS_PULSOS_QUE_QUIERAS; i++)
{
stepper.step(1); //o -1, si quieres que gire en sentido opuesto
}
}
Arge
Disculpa, para la conexión de un motor unipolar pero usando solo 2 pins seria la misma que el bipolar??
Pingback: Motor paso a paso Unipolar | Ingenia Oaxaca
Adan
Hola, que tal, excelente proyecto amigo, de casualidad no sabrás como controlar dos motores paso a paso con un solo arduino ya que si lo hago con diferentes drivers al mismo tiempo tiene a haber una caída de tensión no se si sea mi programa o el circuito, pero si tuvieras un proyecto parecido me seria de gran utilidad
te dejo mi correo parea estar en contacto becorron@hotmail.com
marcos
hola compi me da un error al programar el arduino podrias darme una solucion soy nuebo es este mundo y llevo varios dias intentando hacer funcionar tu proyecto pero nada ….
imput was not declared in this scope
motorknob.inc.in function’ void setup () ‘ :
motorknob: error : ‘IMPUT’ was not declared in this scope
carlos
No será INPUT ?
marcos
si input , puede ser por no usar el mismo modelo de motor , el mio es mas pequeño ,un saludo .gracias
Pingback: Tema 3 – Conceptos básicos de microcontroladores y electrónica (3) | Aprendiendo Arduino
Efrain Garzon Bello
disculpe tengo una pregunta como puedo enviar la informacion a a arduino de un sensor ultrasonico que mide una distancia por ejemplo dos cm y que envia a un motor bipolar y se mueva dos cm o dos vueltas
douglas
necesito crear una secuencia de marcha y paro de motor pap unipolar y reinicio con diferentes posiciones y con diferentes pulsadores , que al pulsar un pulsador por ejemplo (1, 9 , 2 ,7, 3 , 4)pero solo 6 posiciones a la vez sin importa el orden sino que haga lo pre programado en cada sub-rutina y se empiece a ejecutar hasta que se pulse el boton de inicio ; gracias espero que alguno de ustedes puedan ayudarme con mi dilema
rigoberto
hola necesito una ayuda el tutorial esta muy bien explicado pero alguien me podria hacer modificarlo para que al soltar el pulsador deje de girar o que se detenga con un final de carrera ocupo para un proyecto de unas percianas se los agradeceria mucho mi correo es mecatronicayrobotica@outlook.com gracias.. espero que me ayuden
Pingback: Actuadores y periféricos de salida | Aprendiendo Arduino
diomer
hola amigo interesante tu trabajo,
soy pichon en esto quisiera que recomendes algun tutorial o informacion sobre motores paso a paso
Deyber Arley Vargas Medina
Hola todos,
Alguien sabe sí existe alguna placa comercial que tenga ya montados el L293 e los dos transistores, para hacer el control de motor bipolar usando solo dos pinos del arduino?
Jose Luna
Hola Amigo no se si ya conseguiste tu placa controladora pero aqui te paso el link de una pagina donde venden algunas placas.
http://hetpro-store.com/TUTORIALES/tb6560-controlador-motor-pasos/
victor
Se que existen escudos para arduino que seguramente cubren tus necesidades.
Al margen, sería bueno comenzar a mirar esto:
http://www.proyecto-ciaa.com.ar/
leo
tengo una pregunta por que razon el l293 se puede calentar estaria muy agradecido si me puede responder la pregunta profesor
es que mi integrado se esta calentado y
sergio
Hola !! yo ejecuto el codigo para controlar motor con 4 hilos con el driver unl2003 y no consigo que el motor cambie el sentido de giro.
Un saludo
JUAN JOSE DE LA CRUZ
buenas, estoy intentando manejar un motor paso a paso unipolar con un arduino y al ser nuevo en esto no se muy bien el programa, si fuerais tan amables de pasarme dicho programa os lo agradeceria mucho, gracias.
Brandon Vásquez
Hola buenas noches, estoy intentando controlar un motor a pasos bipolar pero solo con el potenciometro que cuando el potenciometro lo mueva a la izq, el motor se mueva hacia un lado, y cuando el potenciometro se mueva a la derecha, el motor se mueva al otro lado
Francisco Jose Forcada Tirado
#include //Importamos la librería para controlar motores paso a paso
#define motorPin1 8 // IN1 em el driver
#define motorPin2 9 // IN2 en el driver
#define motorPin3 10 // IN3 en el driver
#define motorPin4 11 // IN4 en el driver
#define STEPS 200 //Ponemos el número de pasos que necesita para dar una vuelta. 200 en nuestro caso
// Ponemos nombre al motor, el número de pasos y los pins de control
Stepper stepper(STEPS, 8, 9, 10, 11); //Stepper nombre motor (número de pasos por vuelta, pins de control)
int potenciometro; // Variable lectura potenciómetro
int Velocidad; // Variable de la velocidad.
int direccion; // Variable para indicar la direccón
void setup()
{
// Velocidad del motor en RPM
stepper.setSpeed(100);
pinMode(motorPin1, OUTPUT); // Configuración de los PIN-es como salida digital
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
}
void loop()
{
potenciometro = analogRead(A0); // Lectura potenciómetro
potenciometro = map(potenciometro, 0, 1023, -100, 100); // Mapeamos para ajustar a nuestros valores.
if(potenciometro>10) {
Velocidad=potenciometro*2;
direccion=potenciometro*2; // Si el potenciometro esta a la derecha, el motor gira a la derecha.
stepper.setSpeed(Velocidad); // Indicamos la velocidad al motor
stepper.step(direccion); // Indicamos la dirección al motor
}
if(potenciometro<10) {
Velocidad=potenciometro*(-2);
direccion=potenciometro*2; // Si el potenciometro esta a la izquierdo, el motor gira a la izquierda.
stepper.setSpeed(Velocidad); // Indicamos la velocidad al motor
stepper.step(direccion); // Indicamos la dirección al motor
}
}
Francisco Jose Forcada Tirado
Perdon, hay algun errorcillo aunque compila bien. Ya los he corregido, espero te funcione bien.
Igual tendras que variar los valores del mapeado para adaptarlos a tu motor.
#include //Importamos la librería para controlar motores paso a paso
#define motorPin1 8 // IN1 em el driver
#define motorPin2 9 // IN2 en el driver
#define motorPin3 10 // IN3 en el driver
#define motorPin4 11 // IN4 en el driver
#define STEPS 200 //Ponemos el número de pasos que necesita para dar una vuelta. 200 en nuestro caso
// Ponemos nombre al motor, el número de pasos y los pins de control
Stepper stepper(STEPS, 8, 9, 10, 11); //Stepper nombre motor (número de pasos por vuelta, pins de control)
int potenciometro; // Variable lectura potenciómetro
int Velocidad; // Variable de la velocidad.
int direccion; // Variable para indicar la direccón
void setup() {
// Velocidad del motor en RPM
stepper.setSpeed(100);
pinMode(motorPin1, OUTPUT); // Configuración de los PIN-es como salida digital
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
}
void loop() {
potenciometro = analogRead(A0); // Lectura potenciómetro
potenciometro = map(potenciometro, 0, 1023, -100, 100); // Mapeamos para ajustar a nuestros valores.
if(potenciometro>10) {
Velocidad=potenciometro*2;
direccion=potenciometro*2; // Si el potenciometro esta a la derecha, el motor gira a la derecha.
stepper.setSpeed(Velocidad); // Indicamos la velocidad al motor
stepper.step(direccion); // Indicamos la dirección al motor
}
if(potenciometro=(-10) && potenciometro<=10) {
Velocidad=0;
direccion=0; // El motor no se mueve.
stepper.setSpeed(Velocidad);
stepper.step(direccion);
}
}
Boris Mantilla
Hola Francisco.
Te cuento que probé tu código con un motor unipolar pero no me funciona, sera que debo reformarle algo par que me funcione con este tipo de motor?.
David Ato
hola buenas, he seguido este hilo con gran interés, este cogido lo estoy probando y solo gira en una direccion por que pones en velocidad y direccion *2 lo podrías explicar?? Muchas gracias.
Marcelo
Hola tengo un arduino y un arduino motor shield tengo que hacer funcionar un motor pap unipolar de 6 cables . Funciones que necesito pulsar un pulsador y que el motor de x vueltas a una velocidad controlada por un potencio metro cuando de esas vueltas pare y al pulsar otro pulsador haga lo mismo hacia el otro lado. Si alguien me puede ayudar ? Muchas gracias. Marcelo
Fredy
Las explicaciones muy claras, excelente tutorial.
Hice el circuito para el control de velocidad y dirección, trabajo perfecto.
Adicione un motor al circuito con un L293D y sus propios pulsadores, para el cambio de sentido; los dos motores trabajan pero, cuando lo hace uno el otro no.
¿Qué modificaciones tengo que hacer en el programa para que los dos trabajen continuamente y respondan a sus propios pulsadores de cambio de dirección?
Gracias y espero pueda ayudarme.
Este es como quedo el programa:
#include
#define STEPS 200
Stepper stepper(STEPS, 8, 9);
Stepper stepper1(STEPS, 10,11);
int pot;
int derecha=3;
int izquierda=2;
int direccion;
int derecha1=4;
int izquierda1=5;
int direccion1;
void setup()
{
pinMode(derecha,INPUT);
pinMode(izquierda,INPUT);
pinMode(derecha1,INPUT);
pinMode(izquierda1,INPUT);
}
void loop()
{
pot=analogRead(A0);
pot = map(pot, 0, 1023, 30, 150);
stepper.setSpeed(pot);
stepper.step(direccion);
if(digitalRead(izquierda)==HIGH)
{
direccion=200;
}
if(digitalRead(derecha)==HIGH)
{
direccion=-200;
}
stepper1.setSpeed(pot);
stepper1.step(direccion1);
if(digitalRead(izquierda1)==HIGH)
{
direccion1=200;
}
if(digitalRead(derecha1)==HIGH)
{
direccion1=-200;
}
}
raul
Hola para hacer un control de posicion con dos motores pap, pretendo construir una paqueña fresadora, por ahora quiero mover los moteres dandoles yo cantidad de pasos a dar y en que direccion. encuentro programas que los mueven pero niguno con cotrol de pasos . me podrias dar una pista para seguir adelante Gracias
miguel angel baez
hola una pregunta a lo mejor suene tonta pero necesito sabes que son las N que aparecen en el pro-tobar
daniel ferraris
Las N, son los transistores NPN.
Pingback: Programacion | Pearltrees
Pingback: ELECTRÓNICA - sandinotorres | Pearltrees
Pingback: ELECTRÓNICA - sandinotorres | Pearltrees
eugui
Ayuda pls, Esta bien editado mi programa? uso el atmega 328p.
#include //Importamos la librería para controlar motores paso a paso
#define STEPS 200 //Ponemos el número de pasos que necesita para dar una vuelta. 200 en nuestro caso
// Ponemos nombre al motor, el número de pasos y los pins de control
Stepper stepper(1.8, 8, 9); //Stepper nombre motor (número de pasos por vuelta, pins de control)
int pot=A0; //Variable lectura potenciómetro
int derecha=3; //Pulsador derecha
int izquierda=2; //Pulsador izquierda
int direccion; //Variable para indicar la direccón
void setup()
{
pinMode(derecha,3);
pinMode(izquierda,2);
}
void loop()
{
pot=analogRead(A0); //Lectura potenciómetro
pot = map(pot, 0, 1023, 30, 150); //Establecemos la velocidad entre 30 y 150 rpm
stepper.setSpeed(pot); //Indicamos la velocidad al motor
stepper.step(direccion); //Indicamos la dirección al motor
if(digitalRead(izquierda)==HIGH)
{
direccion=200; //Si pulsamos el pulsador izquierdo, el motor gira a la izquierda
}
if(digitalRead(derecha)==HIGH)
{
direccion=-200; //Si pulsamos el pulsador derecho, el motor gira a la derech
}
} // put your setup code here, to run once:
artanis
Hola buena noches a todos , disculpen puedo utilizar este circuito si quiero mover un Motor a pasos M42SP-7 con arduino?
La verdad no tengo muchos conocimientos de programación y de electrónica.
Rodrigo Garcia
Hola Buenas noches, Tengo una pegunta? Soy nuevo en esto del los motores paso a paso, Quería saber si el circuito integrado ULN2803 soporta mi motor de 1.5 A o eso ya depende de mi Fuente de Alimentación? o tengo que cambiar de Circuito Integrado?
Diego
Hola, buenas noches, tengo una duda, el motor que quiero controlar dice en su etiqueta que trabaja a 24V, le pasará algo a mi arduino si conecto ese motor? Es unipolar
ricardo
Hola que tal tengo una pregunta necesito hacer el mismo control de velocidad y giro del ejemplo pero con un motor unipolar mi pregunta es que si solo se le agrega la parte del potenciómetro y los botones para el cambio de giro
JOEL
PREGUNTALE A TU HERMANA =)
Pingback: Control de un motor paso a paso bipolar (de un lector dvd) con Arduino UNO | Bajando de la tarima
Born Piano
Tengo una duda, quiero manejar la funcion del potenciometro desde la computadora, pero no se que parte del programa se necesita modificar para enviar los datos al data_rate…
Irving Delgado Rivera
hola tengo una pequeña duda, en caso de que cuente con el motor shield de arduino el programa funciona de la misma manera o se tiene que modificar para adaptarse al motorshied
roberto rene salguero hidalgo
Hola felicidades muy bueno el tutorial, tengo la misma inquietud que Ricardo, deseo controlar el motor paso a paso bipolar con desplazamieto de cada cinco ò diez grados y dos botones para que el sentido de su giro cambie. gracias
roberto rene salguero hidalgo
Hola felicidades por el tutorial, tengo la misma inquietud que Ricardo, deseo controlar el motor paso a paso bipolar cada cinco ò diez grados y dos botones de pulzacion para cambiar el sentido de giro. Gracias
raul
hola necesito ayuda para programar el motor a pasos con arduino y poder hacer el cambio de giro pero que al iniciar el motor a pasos inicie de un punto establecido o marcado y que no inicie de otra posicion sino que regrese al mismo punto establecido y que parta de ahi mismo
MariaAN
Hola!
Estoy trabajando con un arduino y un motor paso a paso y quería preparar un código que me permitiese empezar con una velocidad de giro baja y que con el tiempo fuese augmentando. Es decir, que por ejemplo estubiese 10 segundos a una velocidad baja, después 20 segundos a una velocidad un poco más alta y así sucessivamente hasta establecer la velocidad que deseo. El problema es que no se que función definir en el delay() para poder establecer esta rampa de velocidades. Muchas gracias!
Fernanda
Hola por ejemplo mi motor paso a paso es de dos entradas como podria conectarlo hay, tendria que usar diodos para porder distribuir la conexion???
Angel
A que te refieres que tu motor tiene dos entradas. Si en realidad tiene solo dos cables no es un motor paso a paso. Los motores paso a paso tienen si o si más de dos entradas.
Maor
Buenas tardes,
Me gustaría saber si es que puedo (con el Arduino UNO) controlar el motor de paso con un sensor de movimiento. Ejemplo: Si se detecta movimiento (con el sensor PIR) el motor gira 90 grados. Y también me gustaría saber si es que se puede conectar 4 sensores PIR (en el Arduino UNO) para darle ordenes a un mismo motor de paso.
sds
quiero programar un motor paso a paso con velocidad variable de mas a menos, si alguien tuiviera el programa
FRANCISCO SOTO
HOLA ES LA PRIMERA VEZ QUE INTECTO CONTACTAR CON ALGUIEN, LA PREGUNTA ES LA SIGUIENTE TENGO UNA MAQUINA LA MARCA MAX_NC 15 SE ME QUEMO UNA DE LAS SALIDAS DE EJE (ESTA MAQUINA FUNCIONABA CON SERVO MOTORES) LO QUE HICE FUE QUE COMPRE OTRA TARGETA CON MOTORES A PASO QUE ME RESULTABA MAS ECONOMICA PORQUE LA ORIGINAL ME SALIA BASTANTE CARA INSTALE TODO Y FUNCIONA PERO AUNQUE LE PONGA EN CONFIGURACION QUE TRABAJE EN MILIMETROS ME TABAJA EN PULGADAS AUNQUE EN EL PAQUETE DE DATOS EXISTA EL CODIGO G21 REFERENCIANDO A MILIMETROS E ESTADO LEYENDO EN FOROS QUE TENGO QUE CONFIGURAR LOS MOTORES MIS MOTORES SON 180 PASOS MONTADOS EN UN TORNILLO DE 1/4 MI PREGUNTA ES EN MOTOR TUNING QUE CANTIDAD DE PASOS DEBO COLOCAR ALGUIEN ME PODRIA AYUDAR O EXPLICAR COMO LE HAGO PARA TRABAJAR EN MILIMETROS NO EN PULGADAS AGRADECERIA QUE ME PUDIERAN AYUDAR A LA BREVEDAD POSIBLE YA QUE TENGO LA NECESIDAD DE TRABAJAR LA MQUINITA ME DESPIDO MUCHAS GRACIAS. FRANCISCO DE LEON.GTO.
jorge charry
hola, la verdad es que no tengo conocimientos de arduino, pero estoy muy interesado en meterme. Hago iluminación para eventos y tengo ganas de hacer algunos experimentos. Hago una consulta, me gustó la nota sobre los motores, para comandar los motores via dmx, es mucho mas complejo de lo que vi en esta nota? Agradecería si me dan una idea general como para poder captar la idea. muchas gracias
Nestor
Hola, si alguien puede ayudarme, con una plaqueta Arduino UNO, necesito hacer el código para que al activarse un sensor de movimiento se enciendan dos relay (con sus tempoerizaciones propias, delay); luego de mantenerse unos 10 minutos este encendido-apagado de los reles, deben detenerse hasta la nueva activación del sensor de movimiento.
Desde ya muchas gracias y el post esta muy bueno
Delfor
Hola a todos. Estoy trabajando con lo mismo. Dos motores paso a paso y con dos puentes H. Pero no se como hacer para que funcionen simultáneamente ya que el código es secuencial. Agradecería que alguien aporte a mi duda. Desde ya muchas gracias.!
antonio lazcano
saludos intento controlar un motos a pasos solo con un pin conectado a un contolador.,el cotrolador solo tiene dos salidas la de dirección 1y0 y la de control solo son dos pines los que conecto .. espero me puedan ayudar ..
Faidher Arley Galindo Rodriguez
Hola que tal, he tenido problemas al momento de mover dos motores paso a paso al tiempo no lo he conseguido, lo que deben hacer lo motores es moverse hacia una misma dirección al tiempo, luego un motor hacia una dirección y el otro hacia la otra dirección pero ambos al tiempo, si me pudieras ayudar seria grandioso lo que pasa es que estoy tratando de hacer un proyecto pero programando en arduino ó en «C++» solo me permite hacer el movimiento de un solo motor por lo que su funcionamiento es secuencial, no se si de casualidad exista una librería o una forma de hacer que esto sea posible, de nuevo muchas gracias si me puedes ayudar, y por cierto gran explicación la que tienes aquí muy completa.
Saludos desde Colombia-Bogotá D.C.
Leonardo
buenas quiero controlar 3 motores paso a paso unipolares de 24v 3A. que es lo que necesito?
desde ya, muchas gracias-
jose
compañero como se llama el simulador de arduino?? :c
Víctor
lo único que encontré realmente bueno para simular arduino es proteus 8.4
en líneas generales, una vez instalado proteus pasás a instalar la librería Arduino, la que tendrá bastantes versiones de arduino para simular, luego en las propiedades del modulo arduino que uses en tu simulación, tendrás que poner el path y nombre de archivo (con extensión .hex)
en youtube hay varios tutoriales que explican cómo se hace, no es dificil.
hay también varios módulos disponibles para usar en las simulaciones, como por ejemplo el SFR04 (sensor de ultrasonidos de 5 pines) o motores PAP entre otros.
éxitos!!!
Rui
Hola, tengo este Codico que sólo funciona con Arduino, pero quería aplicar más motores y el uso de signos A4988 pero no funciona. ¿Me puede ayudar a golpear el Codico. Hace las tarjetas A4988 trabajan el mismo esquema que se presenta con L293D ????
Nota: Yo soy portugués y por lo que mi español no es la mejor.
Agradezco su ayuda. Un abrazo.
————————————————
#include
// My motor es un Mercury Motor 12V 200 Steps 1.8 Step angle
#define STEPS 200
Stepper stepper1(STEPS, 2, 3, 4, 5);
Stepper stepper2(STEPS, 6, 7, 8, 9);
Stepper stepper3(STEPS, 10, 11, 12, 13);
//Necesito cambiar a este formulario, pero no funciona de la misma manera.
//Stepper stepper1(STEPS, 2, 3); //2 dir e 3 step
//Stepper stepper2(STEPS, 6, 7); //6 dir e 7 step
//Stepper stepper3(STEPS, 10, 11); //10 dir e 11 step
void setup()
{
stepper1.setSpeed(60);
stepper2.setSpeed(60);
stepper3.setSpeed(300);
}
void loop()
{
stepper1.step(30);
stepper2.step(-30);
delay(2000);
stepper1.step(70);
stepper1.step(-100);
stepper2.step(-70);
stepper2.step(100);
stepper3.step(1200);
stepper3.step(-1200);
}
Erik Serrato Hernandez
Hola que tal, tengo una gran duda, lo que pasa es que quiero hacer un brazo motion control para stop motion, navegando eh investigado eh dado que se puede realizar mediante el Arduino Mega 2560, Easydriver y codigo que entrga Dragonframe (http://www.dragonframe.com/moco-3d.php) lo que quiero hacer es poder manejar seis movimientos, Paneo, tilt, ejes X, Y, Z y zoom con un brazo suspendido al estilo DIY, (seis motores pap, seis Easydriver y una arduino) pero realmente no se si se pueda realizar tal cosa, espero me puedas asesorar un poco en esta cuestión, Saludos.
Pingback: Motores | Aprendiendo Arduino
Daniel ramirez madrid
buen dia, si quisiera que el motor a pasos nema 23 de 4 hilos diera giros por horario, tengo un RTC el cual me gustaria usar para que el motor a determinada hora gire tantos grados.
Felix
Hola buenas tardes… una colsulta… tengo un motor paso a paso unipolar …. el problema es que el motor no funciona con el programa de libreria … pero cuando hago un programa para que cada bobina encienda … funciona… el problema es que me sale muy largo …. alguien podria ayudarme con ese problema … se lo agradeceria de ante mano..
Andres
Hola todo muy bien, pero sí tengo un motor de 6 hiols?
Joel Garay
buenas .. me gustaria hacer una consulta,, La tension de 12 voltios para que se utilizaria? si la tension es correspondiente a la velocidad deberia de aumentarla ? gracias
julio
Hola, tengo un nema 17 hs 3001 20 b sigo el tutorial para que gire en un sentido y después en otro, varío los pasos, porque según pude leer este motor tiene 1,8 así que introduzco en el programa 200 todo lo demás creo que esta bien controlado. El motor vibra, y gira siempre para un lado. Lo estoy alimentando desde una fuente a 10 vcc y la fuente, en su display varian los valores cada vez que el arduino inyecta una orden de giro hacia un sentido u otro… ¿podeis indicarme que estoy haciendo mal? con otros motores 16py-q203-g2 no tengo problema. Estoy usando un driver l298n
julio
r
dark
como puedo controlar dos motores paso a uno bipolar y uno unipolar
Jorge Lessio
se pueden administrar grupos de 4 o 6 motores paso a paso con un solo sistema Arduino, el sistema soporta trabajar hasta 12 hs continuada, el sistema Arduino se puede administrar por medio de un Software Mach 3
Jorge Lessio
los motores pueden ser unipolar o bipolar de 12 o 24 volts, es para un proyecto industrial
Luis Miguel
Como van, disculpen se puede controlar 4 motores bipolares mediante la configuracion de transistores y a demas que se utilize la libreria Stepper, ya que solo funciona los pines 8,9,10,11 como puedo controlar mas motores bipolares les agradeceria la informacion
marcobra1602
Hola amigos soy de santiago de chile. me estoy fabricando una cnc y deseo saber si con arduino uno se puede controlar un cuarto eje independiente, para poder manejar un mini torno dentro de la fresa.
anilandro
Estoy comenzando con los motores paso a paso, y con la librería al controlar un bipolar con el módulo L298 me encuentro que siempre está dando corriente a una bobina del motor, incluso con el motor parado, lo cual hace que éste esté un poco frenado, pero que consuma bastante corriente en este estado, lo cual es un problema con sistemas alimentados por baterías. La solución ha sido pasar de esta librería y hacer mis propias funciones, con las cuales el giro es incluso más regular, ya que la stepper genera en el motor un ruido cíclico sincopado que indica falta de regularidad.
También hice otras funciones para controlar los unipolares con el ULN2003, que permiten los tres modos de control, el wave drive, el normal y el medio paso.
Saludos a todos
Cristobal
buenas
muy buena explicacion.
Estoy intentando controlar la velocidad y el sentido de un motor en este caso unipolar (28BYJ-48) como has hecho el la ultima práctica, y no lo consigo ,la velocidad si pero la direccion no. Pido una ayudita .
Un saludo
Carlos