EFA:How to Move Things with the Arduino

How to move things with the Arduino?

The Arduino outputs themselves are limited to only 5 volts and about 40 mA of current. That is really only enough to turn on some LEDs or very small motors. Even the 5V power pin can only provide 500mA of current. In order to control devices that require bigger voltage or current we have a couple of options.

How to Choose the Right Motor or Actuator?

Servo Motors

  • Servo motors usually have 3 wires (VCC,GND,DATA)
  • No need for special controlling circuits if you have an Arduino
  • Needs a PWM signal for controlling it
  • In Arduino you can use the Servo library
  • Small servo motors will be ok to power from the Arduino 5V (max 500 mA), but it is recommended to always use an external power supply
  • Standard servo motors are usually limited to a range between 0-180 degrees, but continuous and multi-turn servos also exist

DC Motors

  • Usually just 2 wires
  • You can control the speed and direction. The direction depends on which terminal of the motor you connect to + and – of your power supply
  • Use a transistor or an H-Bridge circuit to control
  • On the Arduino you can just use digitalWrite() and analogWrite()
  • A standard brushed DC motor usually has a very high rpm, but very low torque. Some sort of gear system is usually required for real-life applications.

TT Motor

  • 3–6V DC
  • about 250 rpm
  • cheap
  • plastic gears

12V DC Motors

  • Stronger
  • Different gear ratios (slower rpm means higher torque)
  • We have at least 50 rpm and 1 rpm motors

Stepper Motors

  • Stepper motors move in discrete steps
  • Different motors will have different amount of steps in one rotation. Common values are 200 and 400, but others also exist.
  • Stepper motors are used when you need high precision in the movement. They are used in 3D printers and CNC machines.
  • Commonly used stepper motors are either unipolar or bipolar two-phase motors. Bipolar motors are often a little bit easier to work with.
  • Unipolar stepper motors usually have 5 or 6 wires.
  • Bipolar stepper motors usually have 4 wires.
  • You can control the speed and direction of the motor
  • Bipolar stepper motors can also be controlled with the H-Bridge circuit. You will need both sides of the L293D chip to control.
  • A better way to control stepper motors is to use a controller chip that controls the current for the motor. These controllers from Pololu work well.


Air & Water Pumps

Most pumps are basically just DC motors that are able to move air or water around. You can control them like you would a DC motor.

Air pumps can be used for example in soft robotics.

Muscle Wire/Shape Memory Alloy (Flexinol, Nitinol)

Muscle wire/shape memory alloy is an interesting material that has “memory”. It is usually sold as wires of different thicknesses. When the material is heated up, the wire will return to a shape that has been stored into the memory of the material. If the material has no specific shape stored into it, it will just shrink. This shrinking can be used to move things in a way that seems very magical, since the wire makes no sound and can be hidden inside various materials.

The temperature of muscle wire can be controlled by running current through the wire. This can be done with a transistor, but you need to be careful in limiting the current so that you don’t set things on fire.

The wire is sometimes called Flexinol or Nitinol wire (these are brand names for specific products).

How to Control Them?