Control direction of DC motor

Hi there,

I'm new to arduino.

Could somebody advise how to I could change the direction of a small DC motor every 10 seconds? Do I need anything except a board and a motor?

I think an arduino Uno may be to big for my application? Is there a smaller board?


To change direction of a dc motor, you need an h-bridge of some description, such as but not limited to the Arduino motor shield.

One method that requires no Arduino is a 555 timer circuit that produces a 20-second square wave (10 seconds on, 10 seconds off) driving a small DPDT relay to control the motor direction.

See "50% Duty Cycle Astable Oscillator":

I think an arduino Uno may be to big for my application? Is there a smaller board?

You tell me.



Thanks for you reply.

I will use an arduino nano and the motor shield to control 2 12 volt DC motots. It is school project for my son - the rule is max 9v power supply.

I think a 9 volt battery will not be sufficient to power it all. Would 6 AA batteries be sufficient - the motors do not need to be rotating at full speed?


Uh, you know you can't plug the shield into the nano, right? The nano is too small to take shields (as you can probably see in the pictures).

When I first started using Arduino's I was as confused if not more than yourself.

If you need the project to be small you should consider creating your own little board using an arduino nano, a L293D, the battery and the motors.

Adafruit have a great tutorial for it (Overview | Arduino Lesson 15. DC Motor Reversing | Adafruit Learning System) and many many others - I am in no way affiliated with adafruit but I certainly started my learning there!