I currently have 4x stepper motors (not load bearing), which are being controlled by an Arduino. The power source is an external 12V supply, which goes through a LM2596 DC-DC converter to step this down to 5V, which then supplies power to the motors and arduino.
Motor being used: Ebay link
Driver board: X113647
Everything works fine at the moment, but something I have noticed is the motors that are 'idle' get quite warm (they may move once every 60 mins depending on the situation). In the first 5 mins or so, it's warm but not hot, but after this it continues to climb getting hotter (i've only left them 10 mins and they got to around 43C). The drivers themselves aren't too hot (generally 8-10C less than the motors) but also get warm over time and seem to increase along with the motor.
I think the reason for this is because the motor phases are being continually energised to hold position when 'idel' and heat builds as the phase isn't ever switched off (as position doesn't change for a period of time).
Does that sound like what is causing the heat build in the 'idle' motors?
If my theory is correct, I have two ideas to deal with the issue:
- Turn off the power to the steppers/drivers when there isn't going to be any movement for some time and motor needs to be idle
- Turn off the motor phases rather than the power to the driver/motor
The first question is, is there a way to turn off the phases from the Arduino via the Stepper library or another stepper library (i.e. AccelStepper. Or is there a way to just turn all phases off outside of the libraries)?
If I opt to turn off the power to the drivers themselves, I imagine I need an NPN transistor or something, is that correct and how you can control external power on/off states?
The X113647 driver has a jumper connecting two pins which enabled positive connections to the board, if this is removed the driver doesn't receive power. My working theory is I remove the jumper, and use a NPN transistor to control power flow between these two pins.