Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Muy buenas,
una vez más, acudo a vuestra inteligencia.
He conectado a la raspberry pi el Motor Paso a Paso mediante el DRV8825 lo he echo de la siguiente manera:
MOTOR:
Rojo -> A1 DRV8825
Negro -> A2 DRV8825
Blanco -> B1 DRV8825
Verde -> B2 DRV8825
Amarillo -> Azul
Naranja -> Marrón
Raspberry Pi
Pin2 (5V) -> RESET y SLEEP del DRV8825
GPIO 17 -> STEP del DRV8825
GPIO 27 -> DIR del DRV8825
GND -> GND del DRV8825
De una Fuente de PC
12 V al VMOT del DRV8825
El motor gira, pero un tanto a sus anchas !
Vídeo No se aprecia, pero si escucháis al estar en la mesa se escucha como un "rebote" como si se atrancase o algo así.
Me explico:
Cuando pongo un 1(=5 V) en la GPIO 17 -> STEP del DRV8825, empieza a girar pero como lo estoy ejecutando el python al final del código te obliga a hacer un cleanup() que limpia los GPIO subiendolos a 1 y bajandolos a 0, pero luego se me queda andando.
Además me hace como tirones.
Ahora mismo estoy haciendo las pruebas en full step = [M0=0 , M1=0 y M2=0]
Preguntas:
1) Debo usar PWM ? Para regular la velocidad del motor?
2) Debo conectar la masa de la raspberry y la masa de la fuente de alimentación del PC (he leído algo en este post )
3) He estado girando el potenciómetro del DRV8825 y a partir de 1.5 A se empieza a calentar y no tengo pegado el disipador. Puedo hacer las pruebas a menos corriente al estar usando los 12 V ?
4) Que sería lo más idóneo para fabricar un disipador más grande para 2 DRV8825 ?
Muchas gracias por adelantado !
Has conectado los bobinados en serie, prueba a conectarlos en paralelo que te dará una inductancia menor y permite que funcione la PWM a mas frecuencia y con mas corriente...
No explicas como alimentas la Raspberry y te falta el cable negro de masa GND de la fuente de PC al DRV8825.
Deberías poner de la fuente de PC ROJO-NEGRO a la respberry y AMARILLO-NEGRO al DRV8825.
No pones el programa, pero algo estará mal porque poniendo un 1 en STEP NO debería girar. Solo debe moverse cuando se CAMBIA el estado de STEP, un pasito a cada cambio. Si va a tirones es que no recibe los pulsos de STEP de forma homogénea... ¿Tienes osciloscopio para verlo?
Si se queda andando sin pulsos es que recibe ruido que interpreta como pulsos...
1) No puedes usar PWM para regular la velocidad del motor. En los motores paso a paso la velocidad se regula variando la frecuencia de los pulsos. La PWM se usa para regular la corriente del motor, y eso lo hace internamente el DRV8825. Se varía con el potenciómetro.
2) Las masas ya estan conectadas entre sí porque las dos masas GND del DRV8825 estan unidas en la placa. Conectarlas externamente solo puede generar ruidos, el esquema que pones esta bien.
3) La corriente del motor debe ser la adecuada al tipo de motor pero el disipador del DRV8825 también debe ser adecuado para la corriente. Puedes usar la corriente que quieras, pero si es baja tendrás poco par y perderas pulsos a alta velocidad y si es demasiado alta se calentará el motor.
4) Lo mas idoneo es un dsipador de cobre de 1Kg pero hay que ser realistas y usar uno de aluminio, mas barato y ligero, y del tamaño adecuado para la temperatura final que quieras. Puedes usar hasta retales de aluminio de ventanas...
Has conectado los bobinados en serie, prueba a conectarlos en paralelo que te dará una inductancia menor y permite que funcione la PWM a mas frecuencia y con mas corriente...
El problema es que el driver solo portar 2,1 A con disipador y aire forzado.
No explicas como alimentas la Raspberry y te falta el cable negro de masa GND de la fuente de PC al DRV8825.
La Raspberry está enchufada al Usb del ordenador(portátil, la fuente es de un sobremesa viejo) y olvidé ponerlo, pero si está conectado alimentación y masa de la puente del pc.
Deberías poner de la fuente de PC ROJO-NEGRO a la respberry y AMARILLO-NEGRO al DRV8825. No sé si es que lo conecté mal, creo que no, pero lo intenté así, alimentarla por los GPIO y no sé encendió, y me dio miedo y la desconecté rápido, porqué leí que necesita los 5 V justo para funcionar, y la fuente estaba sacando 6,5 V o así.
No pones el programa, pero algo estará mal porque poniendo un 1 en STEP NO debería girar. Solo debe moverse cuando se CAMBIA el estado de STEP, un pasito a cada cambio. Si va a tirones es que no recibe los pulsos de STEP de forma homogénea... ¿Tienes osciloscopio para verlo?
Si se queda andando sin pulsos es que recibe ruido que interpreta como pulsos...
El programa era algo como: (hasta el lunes no puedo decirtelo exacto)
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(17, GPIO.output)
GPIO.setup(27, GPIO.output)
GPIO.output(17, HIGH)
time.delay(10)
GPIO.cleanup()
1) No puedes usar PWM para regular la velocidad del motor. En los motores paso a paso la velocidad se regula variando la frecuencia de los pulsos. La PWM se usa para regular la corriente del motor, y eso lo hace internamente el DRV8825. Se varía con el potenciómetro.
2) Las masas ya estan conectadas entre sí porque las dos masas GND del DRV8825 estan unidas en la placa. Conectarlas externamente solo puede generar ruidos, el esquema que pones esta bien.
3) La corriente del motor debe ser la adecuada al tipo de motor pero el disipador del DRV8825 también debe ser adecuado para la corriente. Puedes usar la corriente que quieras, pero si es baja tendrás poco par y perderas pulsos a alta velocidad y si es demasiado alta se calentará el motor.
Entonces me recomiendas conectarlo en paralelo ? A que corriente? A que tensión ?
Recuerda que es para un robot y posiblemente le ponga una batería de 12 V
4) Lo mas idoneo es un dsipador de cobre de 1Kg pero hay que ser realistas y usar uno de aluminio, mas barato y ligero, y del tamaño adecuado para la temperatura final que quieras. Puedes usar hasta retales de aluminio de ventanas...
Te has pasado 1 KG????? Voy a intentar usar los retales de aluminio y hacer uno para los dos driver. Tengo por casa algún ventilador pequeño de tarjeta gráfica, había pensado colocarlo pero al llevar la batería es más consumo, que si se puede reducir poniendo disipadores pasivos lo prefiero.
Me despido, no sin antes volver a darte las gracias por todo lo que me estas enseñando.
Un saludo.
Creo que lo he conseguido, pero los pasos son tan pequeños que apenas se aprecia.
He medido la corriente las bobinas del motor, y la he colocado a 2.0 A , el problema es que el driver se calienta como el 😈 y automáticamente corta. Se esto porqué se pone a cero.
Voy a buscar como conseguir PWM en la raspberry y vuelvo a comentar.
Porque con:
GPIO.output(STEP, 1)
time.sleep(0.05)
GPIO.output(STEP, 0)
time.sleep(0.05)
Va muy lento.
Voy a buscar cual es la velocidad máxima de conmutación de las GPIO.
Como dedo medir la intensidad? Cuando el motor está girando? Con el motor parado?
Creo que lo he conseguido, pero los pasos son tan pequeños que apenas se aprecia.
En "full step" los pasos tienen que ser de 1,8 grados o sea que tienes que hacer 200 pasos para una vuelta...
Para que el motor gire a 3500Rpm, por ejemplo, necesitarás 3500*200=700000 impulsos por segundo en Full Step!
Hay que leer con atención la hoja de datos:
en la página 1 de la datasheet:
The DRV8825 can supply up to 2.5-A peak or 1.75-A RMS output current (with proper heatsinking at 24 V and 25°C).
en la página 15 de la datasheet:
Power dissipation in the DRV8825 is dominated by the power dissipated in the output FET resistance, or RDS(ON).
Average power dissipation when running a stepper motor can be roughly estimated by Equation (2) where PTOT is the total power dissipation, RDS(ON) is the resistance of each FET, and IOUT(RMS) is the RMS output current being applied to each winding. IOUT(RMS) is equal to the approximately 0.7x the full-scale output current setting. The factor of 4 comes from the fact that there are two motor windings, and at any instant two FETs are conducting winding current for each winding (one high-side and one low-side).
The maximum amount of power that can be dissipated in the device is dependent on ambient temperature and
heatsinking.
Note that RDS(ON) increases with temperature, so as the device heats, the power dissipation increases. This must be taken into consideration when sizing the heatsink
El radiador de 1Kg en cobre era una broma que significa que has de usar el mejor radiador que puedas, pero siempre estas limitado por el precio, el peso y el espacio. Por eso al final solo se usa uno "suficientemente bueno".
Para este chip recomiendan hacer el disipador con el cobre de la PCB,
In general, the more copper area that can be provided, the more power can be dissipated. It can be seen that the
heatsink effectiveness increases rapidly to about 20 cm2, then levels off somewhat for larger areas.
pero como la PCB ya esta diseñada y "es la que es" tendrás que fabricar uno en aluminio con uba baja resistencia térmica
Puedes mirar en: http://www.ti.com/lit/an/slva504/slva504.pdf " onclick="window.open(this.href);return false;
aunque ya existen modelos comerciales a la venta: http://store.amberspyglass.co.uk/aluminium-heatsink-for-stepper-driver.html " onclick="window.open(this.href);return false;
busca "DRV8825 heatsink".