multiple vibration motors

Hi all,

I just started arduino few weeks ago, but I should finish hardware part in my team project. I should use 14 coin vibration motors that each one can be controlled, 2 softpot 500mm sensor, 1.2m LED strip, HC-06, battery, charge module, KY-038(sound sensor), Arduino board.

  1. In this situation, What kind of Arduino board should I use? (ex UNO, MEGA, ...)

  2. Should I use extra board to control modules and sensors?

  3. Can rechargeable battery support my hardware?

  4. If I want to control each vibration motor, should I use a lot of lines to controll for that? Isn't there better way?

I'm sorry for my naff English writing. Now I'm researching information everyday. Thanks.

14 coin vibration motors that each one can be controlled

Are the motors just on, off or do you need to control speed? Do you need forward and reverse rotation? one or 2 pins for each motor, depending. If you want PWM for each an Uno can only support 6 a Mega, 14.

2 softpot 500mm sensor,

That would take 2 analog inputs.

1.2m LED strip

More detail required. There are so many different LED strips.

HC06 needs a serial port. Can use a software serial port on Uno. Mega has 3 hardware serial ports. KY-038 takes 1 digital and/or 1 analog pin

  1. A Mega can easily support your hardware.
  2. No.
  3. Yes, depending, of course, on the battery. You need to calculate the current needs of the circuit and multiply by the time between charges to estimate the required battery capacity. Data sheets will help to find the current requirements.
  4. That depends on your definition of control (as asked above).

A set of ULN2803 or ULN2003's would be good for small motors for single-direction on-off control, they have built-in free-wheel diodes.

groundFungus! Thanks for your kind reply.

I'll just turn on/off vibration motors, and the name of model is MS1020. Then, LED strip model is Adafruit NeoPixel Digital RGBW LED Strip - White PCB 30 LED/m that each LED can be controlled separately.

If you can explain how to control motors without a lot of lines, can you tell me?

Thanks again.

Mark Thanks for recommending. I'll try that model.

cj1ne: groundFungus! Thanks for your kind reply.

I'll just turn on/off vibration motors, and the name of model is MS1020.

Google says that's a 24V scooter motor! Rather than make us search, provide the link you already have then we'll be talking about the right motor. We need to check its suitable to switching from an ULN2803 (low enough stall current).

Then, LED strip model is Adafruit NeoPixel Digital RGBW LED Strip - White PCB 30 LED/m that each LED can be controlled separately.

If you can explain how to control motors without a lot of lines, can you tell me?

Same way you control a lot of anything with a few lines, '595 shift registers.

Thanks again.

The coin motors that I found were 3V, 70mA. Are those like yours?

There is a variant of the 595 (74HC595) that MarkT mentioned that may be what you need to drive your motors using only 3 pins. I have not used it, am not 100% sure that it will work, but it bears investigating. It is the TPIC6C595 Power Logic 8-Bit Shift Register. It has 8 open drain outputs capable of sinking 100mA continuous, each, and can be daisy chained. Each motor will need a flyback diode.

Using 595s to drive the motors (on-off) reduces pin count to where an Uno should work, if so inclined.

http://mechasolution.com/shop/goods/goods_view.php?&goodsno=330383

This is coin vibration motor that I bought,

I heard that vibration motor would need diode, transistor, register, capacitor. Should I use these for each motor?
Then, how can I connect every sensor and module using 595 shift register?

Thank you so much.

That looks to be the same as the motor that I found. 3V 70mA.

You can't connect every sensor and module with 595s. It makes sense to use a 595 for the motors, not for HC06, NeoPixels, KY038.

If you want to use a 74HC595 you do need transistors for the motors as the 74HC595 output current is max 25mA. The motor + lead to +3V, minus lead to the transistor collector, transistor emitter to ground and the base connected to 595 output with 180 ohm resistor. Reverse biased diode across the motor. A 2N3904 transistor should work there.

Edit to add MOSFET A logic level MOSFET would also work (in place of BJT). Motor + to 3V, motor - to drain, source to ground and 595 output to 10k resistor to ground and 595 output through 180 ohm resistor to gate. And the diode as above. 2N7000 for the MOSFET.

I bought everything that you said, but I still have many questions.

  1. When I connect many motors and start every motors, the strength of vibration is too week. In this situation what should I do? As I told you, I 'll use 14 motors.

  2. When I use shift register(595), Should I use register, transistor, diode, capacity for each motor?

  1. What power supply are you using for the motors? To run all motors at the same time will require 1 Amp.

  2. Each motor needs to be connected to one 595 output, with resistor(s), through a transistor and have a diode across it. So you need 2 595 chips, daisy chained. What do you mean by capacity?

Can you show me your connections (wiring)? I need to know what parts that you used and how they are connected.

Now I’m just test that 14 motors can be activated at one time.
This drawing would reply to your question. I can’t understand to connect module and sensor using text.
Can you show me the drawing for the connection?

Here is LED Shift register example that I found.

Do you want to individually control the motors or turn all 14 on and off at the same time? Individual control will require a 595 output, transistor, resistors, diode and cap for EACH motor. If you just want to turn them ALL on or off at the same time a different transistor is required and no shift register.

I can't understand to connect module and sensor using text.

What module, what sensor? Please try to be specific.

You will need an external power supply for the motors. The Arduino supply can handle 4 or 5 motors at best depending on what else is connected to the Arduino supply.