I have the Pololu Dual MC33926 Motor Driver for Raspberry Pi (product 2755) attached to a Raspberry Pi 2 Model B
On the MC33926 kit: With 9V power connected to to large VIN/GND pads (the 5 mm terminal blocks) the blue LED near VIN lights up. When I run example.py from the dual-mc33926-motor-driver-rpi library (on the Raspberry), no voltage output can be measured for either M1A/B or M2A/B. Voltage tested positive on the 5V and 3.3V holes in the prototyping space and I see 9V on GND and VOUT holes on the “5v Regulator” call-out. Tested same with 6V input, no difference.
Again testing with the wee holes on the prototyping Motor 1 SF, Motor 2 SF, Motor 1 PWM, Motor 2 PWM do show 3.3V, but Motor 1 EN, Motor 2 EN, Motor 1 DIR, Motor 2 DIR never show voltage.
Since I also have a Pololu DRV8835 Dual Motor Driver Kit (product 2753) attached to a Raspberry Pi B+ and running the same library successfully, I swapped the Pololu Dual MC33926 Motor Driver out on this working Raspberry Pi B+. Where as I could detect voltage with the DRV8835 kit when running example.py, the MC33926 kit again failed to power either M1A/B or M2A/B. I checked the solder points and tested the MC33926 kit again using the pin holes in case it was a bad solder, same results.
When you tested the voltage on the EN pins, did you do it right after calling the example? Do you have an oscilloscope you can use to look at the EN, DIR, and PWM pins while the example is running?
What commands are you using to run the example? Please note that the two boards you mention have different libraries, so you might also double check you are running the correct example.
Excellent catch Brandon… I was running /drv8835-motor-driver-rpi/example.py instead of /dual-mc33926-motor-driver-rpi/example.py
Amazingly enough, once i followed directions and used the right library it worked just fine. For some reason I thought that they shared a library… doh.
Thank you for your help. A second followup question if I may, though… on both Motor Driver kits I see that whatever voltage goes in is what will be sent to the motors. I think I had thought that the motor controller server as a voltage step down and that whatever voltage was applied would be converted to 3.3V… So I had planned to use a 4.5V power supply for the two 3.3V motors, but do not want to burn them out. The examply code did not seem to allow for software control so what would be the mechanism for variable power in the 0-3.3V range for each motor?
I am glad you were able to get it working. Thank you for letting us know what the problem was.
It sounds like you were a little confused about how motor drivers function. It is very common for motor drivers to accept a logic level PWM signal as an input and output a PWM signal at the same voltage as the motor supply voltage. The duty cycle of input signal will determine the duty cycle of the output signal. You can limit the duty cycle of the PWM signal to effectively limit the voltage seen by the motor (e.g. with a duty cycle of 50% the motor should see an effective voltage of half the motor supply voltage). This means that if you want the maximum effective voltage to be 3.3V, you can limit your input duty cycle (in your program) to a maximum of around 73% (for a motor power supply voltage of 4.5V).