El hilo de ARDUINO: Dudas, código, ejemplos, etc

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
Jassss lo tengo casi

He conseguido cargar el hex en la placa y ya me la reconoce y también me reconoce el giro, he abierto assetto y también lo reconoce, creo que tengo un pequeño error o es es que el motor está haciendo fuerza en el centro y con la mano no consigo girarlo, igual puede ser porque puentee los positivos de dirección y pulsos a los 5v de la placa, esta noche invierto el esquema y puenteo los negativos o a ver si con la mordaza lo puedo girar pero ni bajándole la ganancia al mínimo
 

elbader

En Practicas
Modelo
F31/XJR-SP
Registrado
12 Sep 2014
Mensajes
512
Reacciones
720
No tengo los trastos al alcance para mirar si es normal que no puedas mover el eje, pero creo que para 9nm necesitarás ya una cierta palanca.
 

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
No tengo los trastos al alcance para mirar si es normal que no puedas mover el eje, pero creo que para 9nm necesitarás ya una cierta palanca.
Al parecer es normal pues pensaba que trabajaba como los motores de paso pero al parecer es un Servo que vuelve a la posición inicial, con una mordaza se puede mover y vuelve a su sitio

He estado indagando y tengo que añadir otro encoder que me de la posición del eje y el giro, va a quedar un poco ñapas pero hay que acoplarselo al eje lo que no se es si poner un disco con el sensor o uno de esos rotativos que viene con un eje y acoplarselo con unas poleas
 

elbader

En Practicas
Modelo
F31/XJR-SP
Registrado
12 Sep 2014
Mensajes
512
Reacciones
720
Estaba dándole vueltas al asunto, pero creo que lo primero es aclarar si el motor es servo o paso a paso. Si efectivamente es servo no necesitas encoder :)
 

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
Es un Servo porque lleva encoder interno y lo pone en el driver hybrid Step-Servo

Pero mi problema es que el programa no me reconoce la posición del eje, le doy a calibrar y gira el motor pero como no sabe donde está el centro ni los grados que está girando por lo tanto no hace tope en los grados marcados y me lanza el mensaje de error

Me estoy volviendo un poco loco total que por unos cuantos euros le pongo un encoder al eje y hago la prueba porque llevo 20000 intentos y todo funciona menos la posición del eje
 

elbader

En Practicas
Modelo
F31/XJR-SP
Registrado
12 Sep 2014
Mensajes
512
Reacciones
720
Editado para borrarlo por no hacerte/haceros perder el tiempo.

¿Tienes algún enlace a los datasheet de la controladora y motor?
 
Última edición:

elbader

En Practicas
Modelo
F31/XJR-SP
Registrado
12 Sep 2014
Mensajes
512
Reacciones
720
Editado para borrarlo por no hacerte/haceros perder el tiempo.
 
Última edición:

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
Echa un vistazo aquí:
https://learn.adafruit.com/analog-feedback-servos/using-feedback

Viene a decir que la posición del servo de rotación se puede leer a través de uno de sus pines enchufado a un pin analógico de Arduino (no tenía ni idea xD). Por lo que dices tu motor tiene que tenerlo.
Eso pensaba yo también pero ya lo intenté y sigue sin reconocer la posición
Se supone que entre los a y b del encoder me lo tiene que dar pero conecto a la entrada analógica de la placa y estoy en las mismas

Voy a sacar el polimetro y empiezo a medir
 

pasko

Forista Senior
Modelo
F45 - K54
Registrado
21 Sep 2017
Mensajes
4.203
Reacciones
10.200
Hola.

Eso pensaba yo también pero ya lo intenté y sigue sin reconocer la posición
Se supone que entre los a y b del encoder me lo tiene que dar pero conecto a la entrada analógica de la placa y estoy en las mismas

Voy a sacar el polimetro y empiezo a medir

El entorno de programación de Arduino tiene una opción útil para monitorizar los pines de la placa, tanto en analógico como digital y saca unas gráficas muy útiles.

¿Cuantos hilos tienes para conectar el motor a la placa Arduino?

Saludos.
 

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
Hola.



El entorno de programación de Arduino tiene una opción útil para monitorizar los pines de la placa, tanto en analógico como digital y saca unas gráficas muy útiles.

¿Cuantos hilos tienes para conectar el motor a la placa Arduino?

Saludos.
Solo 4 dirección pulsos positivo 5v y el Enable que no se a que pin se conecta y veo que la gente tampoco lo usa, los positivos de dirección y pulsos van puenteados

Esta tarde mediré los cables del encoder del motor porque no traía ni esquema ni una triste leyenda en motor, tuve que hurgar en la pagina y en YouTube para ver cómo se conectaba
 

pasko

Forista Senior
Modelo
F45 - K54
Registrado
21 Sep 2017
Mensajes
4.203
Reacciones
10.200
Hola.

Solo 4 dirección pulsos positivo 5v y el Enable que no se a que pin se conecta y veo que la gente tampoco lo usa, los positivos de dirección y pulsos van puenteados

Esta tarde mediré los cables del encoder del motor porque no traía ni esquema ni una triste leyenda en motor, tuve que hurgar en la pagina y en YouTube para ver cómo se conectaba

Si puenteas los hilos de pulsos y dirección ... ¿no debería funcionar como un motor de continua? , vamos girando todo el rato en una dirección, porque no cambian estas señales de entrada. No entiendo bien, pero parece que ¿ lo arrancas y lo paras con la señal de +%Vcc?

Saludos.
 

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
Hola.



Si puenteas los hilos de pulsos y dirección ... ¿no debería funcionar como un motor de continua? , vamos girando todo el rato en una dirección, porque no cambian estas señales de entrada. No entiendo bien, pero parece que ¿ lo arrancas y lo paras con la señal de +%Vcc?

Saludos.
A ver sé puentea del positivo de la placa a positivo de pulso y de ahí al positivo de dirección los negativos van a la placa, entonces la placa lo controla con una señal pwm, depende de la señal gira más pasos o menos y según la señal de la dirección gira en un sentido o en otro, claro al ser un Servo el encoder guarda la posición con la que lo enciendes y mete toda la corriente para dejarlo fijo en ese punto, de ahí puedes girarlo todo lo que quieras que no pierde el paso

Pero claro siguiendo el esquema si no puedo controlar la señal porque no me da la posición ni sabe los grados que lo estoy girando difícilmente va a girar adonde quiero y va a volver al punto que le marque el programa
 

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
Estaba yo maquinando lo del encoder y se me ha encendio la bombilla

2v36fjc.jpg


Me he acordado que tenía unas cuantas radios antiguas y que tenían ruletica para el volumen biggrin

Haré la prueba a ver si gira
 

pasko

Forista Senior
Modelo
F45 - K54
Registrado
21 Sep 2017
Mensajes
4.203
Reacciones
10.200
Hola.

A ver sé puentea del positivo de la placa a positivo de pulso y de ahí al positivo de dirección los negativos van a la placa, entonces la placa lo controla con una señal pwm, depende de la señal gira más pasos o menos y según la señal de la dirección gira en un sentido o en otro, claro al ser un Servo el encoder guarda la posición con la que lo enciendes y mete toda la corriente para dejarlo fijo en ese punto, de ahí puedes girarlo todo lo que quieras que no pierde el paso

Pero claro siguiendo el esquema si no puedo controlar la señal porque no me da la posición ni sabe los grados que lo estoy girando difícilmente va a girar adonde quiero y va a volver al punto que le marque el programa

No se si lo entendi bien, pero parece que envías órdenes con pwm, pero no tienes conexión para recibir la posición del eje, ¿no?

Saludos.
 

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
Hola.



No se si lo entendi bien, pero parece que envías órdenes con pwm, pero no tienes conexión para recibir la posición del eje, ¿no?

Saludos.
Exacto no tengo señal de la posición del eje ni puedo hacerlo girar a mi antojo sin que se vuelva a la posición inicial

De ahí que quiera hacer la prueba con un encoder a parte
 

pasko

Forista Senior
Modelo
F45 - K54
Registrado
21 Sep 2017
Mensajes
4.203
Reacciones
10.200
Hola.

Si funciona paso-a-paso, el motor debería tener una salida (hilo) que se conecte a la placa Arduino para que tu programa la lea.

En esta foto del ejemplo que habéis puesto más arriba, hay cuatro hilos:

Rojo, negro para Vcc(+5) y GND
Amarillo parece que es PWM ....
Y el Blanco debe ser el que se lee desde la placa para ver que el motor ha parado y en qué posición está.

adafruit_products_2013_08_24_IMG_2107cc-1024.jpg



¿Tú lo puedes conectar como en este ejemplo?

Saludos.
 

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
Hola.

Si funciona paso-a-paso, el motor debería tener una salida (hilo) que se conecte a la placa Arduino para que tu programa la lea.

En esta foto del ejemplo que habéis puesto más arriba, hay cuatro hilos:

Rojo, negro para Vcc(+5) y GND
Amarillo parece que es PWM ....
Y el Blanco debe ser el que se lee desde la placa para ver que el motor ha parado y en qué posición está.

adafruit_products_2013_08_24_IMG_2107cc-1024.jpg



¿Tú lo puedes conectar como en este ejemplo?

Saludos.
También lo intente conectar el de pulso a la entrada analógica sin tener ninguna lectura ya que el motor y su encoder van directamente al driver que trae y el driver se conecta a la placa con los dos cables, he intentado de todas las formas posibles y no soy capaz

Total que ya tengo pedido a chinatown un encoder incremental rotativo de 2500 pr pa acoplarlo al eje porque en esto que quiero hacer parece absolutamente necesario
 

elbader

En Practicas
Modelo
F31/XJR-SP
Registrado
12 Sep 2014
Mensajes
512
Reacciones
720
He mirado el manual y aunque estoy pegado con el inglés para mí que no trae encoder, pero viene preparado para conectar uno.
En el mismo manual también me parece entender que para modificar un montón de parámetros de cómo reacciona el servo necesitas un aparato que se conecta por RS232. No se si estará hackeado la cosa para meterle mano por otro lado.

El manual:
https://hardware-cnc.nl/images/PDF/ACT/HBS86H_English_Manuel.pdf

En el punto 9 se ve claro lo del encoder y en el 10 lo del aparato.

El aparato: https://es.aliexpress.com/item/32891988181.html

Edito: He mirado en las fotos que has subido y tienes conectado un cable a la entrada del encoder ¿dónde va conectado el otro extremo, al motor?
 
Última edición:

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
He mirado el manual y aunque estoy pegado con el inglés para mí que no trae encoder, pero viene preparado para conectar uno.
En el mismo manual también me parece entender que para modificar un montón de parámetros de cómo reacciona el servo necesitas un aparato que se conecta por RS232. No se si estará hackeado la cosa para meterle mano por otro lado.

El manual:
https://hardware-cnc.nl/images/PDF/ACT/HBS86H_English_Manuel.pdf

En el punto 9 se ve claro lo del encoder y en el 10 lo del aparato.

El aparato: https://es.aliexpress.com/item/32891988181.html

Edito: He mirado en las fotos que has subido y tienes conectado un cable a la entrada del encoder ¿dónde va conectado el otro extremo, al motor?
Exacto esa es la conexion del encoder del motor al driver

También estuve hurgando por la red y en efecto se pueden modificar los parámetros del driver con el puerto lateral que trae pero por ahí no me atrevo a meterle mano, solo he tocado las patillas laterales para ajustar la resolución y la dirección de giro
 

pasko

Forista Senior
Modelo
F45 - K54
Registrado
21 Sep 2017
Mensajes
4.203
Reacciones
10.200
Hola.

También lo intente conectar el de pulso a la entrada analógica sin tener ninguna lectura ya que el motor y su encoder van directamente al driver que trae y el driver se conecta a la placa con los dos cables, he intentado de todas las formas posibles y no soy capaz

Total que ya tengo pedido a chinatown un encoder incremental rotativo de 2500 pr pa acoplarlo al eje porque en esto que quiero hacer parece absolutamente necesario

Jajaja. Así habla también mi mujer. biggrin

Si todavía no has pedido el encoder, me leo el manual que habéis colgado antes y te digo algo. No me cuadra que la salida del motor para indicar la posición sea analógica ( o que lo conectes a una entrada analógica).

Saludos.
 

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
Hola.



Jajaja. Así habla también mi mujer. biggrin

Si todavía no has pedido el encoder, me leo el manual que habéis colgado antes y te digo algo. No me cuadra que la salida del motor para indicar la posición sea analógica ( o que lo conectes a una entrada analógica).

Saludos.
Está pedido ya, pero bueno si me puedo ahorrar hacerle el acople mejor

Toda ayuda es bien recibida, y aún no he tenido tiempo de mirar el manual
 

pasko

Forista Senior
Modelo
F45 - K54
Registrado
21 Sep 2017
Mensajes
4.203
Reacciones
10.200
Hola.

Creo que me precipité en mi anterior mensaje.

La conexión más parecida que he encontrado para arduino está en este artículo:

https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/#Conexionado_con_Arduino

Pero como tú lo quieres controlar como paso-a-paso no estoy muy seguro de que te sirva...:( El artículo explica como hacerlo con tres hilos, como tú comentabas que lo tenías más o menos. Permite fijar unos grados de giro y mantener una posición.

Saludos.
 
Última edición:

pasko

Forista Senior
Modelo
F45 - K54
Registrado
21 Sep 2017
Mensajes
4.203
Reacciones
10.200
Hola.

Está pedido ya, pero bueno si me puedo ahorrar hacerle el acople mejor

Toda ayuda es bien recibida, y aún no he tenido tiempo de mirar el manual

Hecha un ojo al artículo de mi anterior post (igual ya lo habías visto) y coméntanos por aquí.:guiño:

Saludos.
 

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
Hola.

Creo que me precipité en mi anterior mensaje.

La conexión más parecida que he encontrado para arduino está en este artículo:

https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/#Conexionado_con_Arduino

Pero como tú lo quieres controlar como paso-a-paso no estoy muy seguro de que te sirva...:( El artículo explica como hacerlo con tres hilos, como tú comentabas que lo tenías más o menos. Permite fijar unos grados de giro y mantener una posición.

Saludos.
Ufff si le tengo que meter códigos aparte al arduino se me complica la cosa porque el firmware lo tengo intalado desde un archivo hex en la placa y no tengo ni idea de cómo modificarlo para incluirle esos parámetros, esta noche con más calma le doy unas vueltas a ver
 

pasko

Forista Senior
Modelo
F45 - K54
Registrado
21 Sep 2017
Mensajes
4.203
Reacciones
10.200
Hola.

Ufff si le tengo que meter códigos aparte al arduino se me complica la cosa porque el firmware lo tengo intalado desde un archivo hex en la placa y no tengo ni idea de cómo modificarlo para incluirle esos parámetros, esta noche con más calma le doy unas vueltas a ver

Ahora entiendo lo del archivo hex en la placa! :)

La idea que me ha quedado del último enlace que te puse es que el Arduino se usa como driver, es decir:

Le das ódenes con el hilo de PWM,
y la respuesta del motor la lees por el puerto serie de la placa Arduino.

Así cuadran todas las conexiones.

Lo de andar con el entorno de desarrollo para tocar el software de la placa es sencillo, hasta un torpe como yo con tiempo he conseguido ponerle cosas :guiño: Sólo hace falta conectarlo con su cable USB al PC y cambiar 4 chorradas.


Saludos.
 

elbader

En Practicas
Modelo
F31/XJR-SP
Registrado
12 Sep 2014
Mensajes
512
Reacciones
720
Una cosilla. Yo es que no tengo claro si el problema viene por un error de conexión, configuración del hex o porque está estropeado. Y es que sería una lástima que sea por lo último y no lo devuelvas por otro, porque estoy pensado que añadir otro encoder va a ser un poco berenjenal luego programarlo para que funcione bien.
Si tu encoder tuviese 5 hilos te pasaba un código para poder leerlo y ver si funciona, pero es que tiene 6 :LOL:

No se si esto podría servir:
https://www.instructables.com/id/Motor-With-Encoder-How-to-Read-Input-Value-From-En/

Por cierto ¿podrías hacer un copia/pega del hex? Igual suena la campana.
 

josete_perez

Forista Legendario
Modelo
Ex 535i E39
Registrado
21 Ene 2015
Mensajes
10.665
Reacciones
12.305
Una cosilla. Yo es que no tengo claro si el problema viene por un error de conexión, configuración del hex o porque está estropeado. Y es que sería una lástima que sea por lo último y no lo devuelvas por otro, porque estoy pensado que añadir otro encoder va a ser un poco berenjenal luego programarlo para que funcione bien.
Si tu encoder tuviese 5 hilos te pasaba un código para poder leerlo y ver si funciona, pero es que tiene 6 :LOL:

No se si esto podría servir:
https://www.instructables.com/id/Motor-With-Encoder-How-to-Read-Input-Value-From-En/

Por cierto ¿podrías hacer un copia/pega del hex? Igual suena la campana.
Lo abro pero está en binario y no me entero de na, la historia es que el xloader lo carga en la placa y funciona,pero claro está hecho para leer un encoder y en función de eso mover el motor
 

pasko

Forista Senior
Modelo
F45 - K54
Registrado
21 Sep 2017
Mensajes
4.203
Reacciones
10.200
Hola.

Lo abro pero está en binario y no me entero de na, la historia es que el xloader lo carga en la placa y funciona,pero claro está hecho para leer un encoder y en función de eso mover el motor

Una vez que tienes todo montado: ¿porqué no intentas ver si se lee algo en el puerto USB de la placa Arduino desde el PC? Con un programa tipo hyperterminal o parecido debería valerte. A lo mejor el xloader también lo permite, pero no lo conozco.

Saludos.
 

elbader

En Practicas
Modelo
F31/XJR-SP
Registrado
12 Sep 2014
Mensajes
512
Reacciones
720
Lo abro pero está en binario y no me entero de na, la historia es que el xloader lo carga en la placa y funciona,pero claro está hecho para leer un encoder y en función de eso mover el motor

aaaaah c**o, vale.
 
Última edición:
Arriba