To anyone who might have electronic input (CC @thesassyindian @Prestondeeply ), I could use some advice about my magnetic stirrer. I can't get it right.
I'm running +24V to the device itself. The guts is effectively an ESP32 in a circuit with places to plug in the servo drivers and various ports exposed. The board is technically for driving a CNC machine.
The stirrer I put together as a cheap dc motor with a magnet holder attached.
To power the stirrer, I'm using the board's cnc spindle output. When I enable a port on the esp32 (let's say digitalwrite(22, HIGH) or an analog write), the spindle outputs +24V, effectively a basic dc motor driver with no PWM control.
That's way too much voltage and way too much current for the motor. It's way too fast, and would burn out.
What I'm struggling with is how to keep the motor from stalling, while also avoiding it spinning at a billion RPM.
I tried a PWM dc circuit, but if I lower the speed that motor sometimes stalls. Also if it turns off/stalls, it seems to get stuck and higher voltage/speed may not unstick it.
Is there a basic solution I'm missing to this? Maybe I bought crappy motors and need to buy a better one? Any pointers
Hey @richiev , great work with this! From the image above, it looks like the board you are using is the Makerbase DLC32. Yes? I am fairly certain so I'll consider as such for the rest of this message. Here are my scattered thoughts:
- The Spindle output seems like a basic NMOS switch with a flyback diode:
This PWM ideally should work but this greatly depends on the way you've designed your stirring mechanism.
Cheap DC motors typically have cheap Alnico or some other cheap magnet. Whereas the behavior you are experiencing tells me you are using Neodymium magnets for the stirring spindle. Yes?
If so, the magnetic field from the stirring spindle will interfere with the stator magnets in the DC motor. Consider moving the motor away from the stirring spindle and connect it with a pulley.
- Alternatively, can you check the datasheet of the NMOS in the image above for its Ids rating? You may be running into its current limit. Run the motor with your stirring magnets with a power supply and measure the current draw at the rom you wish to run it at. (Remember the current draw will increase once you add the stirrer bar, and liquid. So you should be no more than 50% of the MOSFET current rating.)
- One alternative would be to use dedicated DC motor drivers like a DRV8871 which has an internal current regulation circuit and automatic fault recovery.
- With a dedicated driver like the DRV8871, I would use the TTL Output port to output a PWM to the control pin of the motor driver.
Check if a 1KHz PWM generated on IO32 can be read on one of the three pins on the below connector.