As a complete novice, I would like to ask for help regarding my project setup. It seems the more I try to research and figure things out, the deeper in the woods I get. Here is my project description with an itemized list of questions. I apologize for the “wordiness” of the post but after reading several other posts, you guys really seem to prefer specificity. Any help would be very greatly appreciated.
Objective- I would like to run 4 identical DC vibration motors (simultaneously) via PWM signals using an Arduino Uno Rev 3 as a microcontroller. I would like to do so in the most reliable way possible (not the cheapest!). Lastly, for power supply considerations, I would like to use a plug in power supply (AC adapter or the like) rather than a battery to power the motors and/or other ancillaries. I need the Arduino to remain connected to and powered by the USB connection exclusively if possible.
Here are the full specs for the 4 vibration motors…(I know some may not be needed).
Model 325-100 from Precision Microdrives (Uni-Vibe range).
- Typical Operating Current: - 190 mA
- Typical Power Consumption: - 570 mW
- Typical Vibration Amplitude: - 1 G
- Typical Normalized Amplitude: - 10 G
- Rated Voltage: - 3 V
- Rated Speed: - 5000 rpm
- Inertial Test Load Mass of standard test sled - 1000 g
- Max. Start Current At rated voltage - 1500 mA
- Max. Operating Voltage - 3.6 V
- Certified Start Voltage With the inertial test load - 1 V
- Rated Speed At rated voltage using the inertial test load - 5000 rpm +/- 500 rpm
- Min. Vibration Amplitude Peak-to-peak value at rated voltage using the inertial test load - 0.7 G
- Max. Operating Current At rated voltage using the inertial test load - 400 mA
- Typical Operating Current At rated voltage using the inertial test load - 190 mA
- Typical Power Consumption At rated voltage and load - 570 mW
- Typical Vibration Amplitude Peak-to-peak value at rated voltage using the inertial test load - 1 G
- Typical Normalized Amplitude Peak-to-peak vibration amplitude normalized by the inertial test load at rated voltage - 10 G
- Typical Vibration Efficiency At rated voltage using the inertial test load - 1.8 G/W
- Typical Max. Terminal Resistance - 1.3 Ohm
- Typical Max. Terminal Inductance - 1500 uH
- Min. Insulation Resistance At 50V DC between motor terminal and case - 10 MOhm
- Typical Start Voltage With the inertial test load - 1 V
- Typical Start Current At rated voltage - 1500 mA
Questions. 1. Am I correct in assuming that, using 4 separate digital outputs, that I can simultaneously control the 4 DC motors? Also, can this be done WITHOUT interrupts?
The Arduino obviously cannot power the motors directly so I have been pointed in the direction of either a MOSFET solution or an IC ( a DVR 8601 was recommended to me by the support person for the vibration motors.) Although there have been posts regarding which solution is better, I couldn’t find a definite answer and assumed it would be application specific. That being the case, which would you recommend?
According to the precision microdrives website, a ceramic capacitor rated at 100 and a schottky diode are recommended (I believe this is only for the MOSFET based solution). I do have the correct capacitor and my question was whether or not there was a set of specification numbers or ratings on the diode that I needed to “match up” to my project requirements. After looking at transistor ratings, I only became more confused.
Regarding power supply. This project is intended for frequent use so I would need to be able to “plug in” to a wall socket to power the motors with the Arduino hooked into the USB port of the computer to control the PWM signals only (unless the motor shield solution is picked). What type of power supply would work in this scenario?
How would motor shields apply to this project? Could I run two of these and circumvent the need for any of the other issues? Would this be a better solution or just a more costly one?
I’m assuming I need a breadboard for this project? I’m assuming that any MOSFET additions or IC additions are done via interaction between the breadboard and Arduino? This may be a very basic question but I have yet to find a true step by step guide to navigate these issues.
Thank you in advance for reading through the post. I hope that when I have all of this figured out, that I can craft an easily followed tutorial that would hopefully help out some fellow users.