Electronic – DIY small motor that turns for x seconds every y seconds


I'm a civil engineer, hiker, and hobby photographer. I am trying to build a little device that gently turns a small motor on every x seconds, keep it on for y seconds, and stop it for z seconds. For example, Set the motor to run every 30 seconds, have it run for 45 seconds, and stop it for 37 seconds. In addition, the movement of the motor must be such to minimize vibration on the camera that it will support.

Above all this device must be portable in a regular backpack.

I have played with the raspberry pi a little bit (I don't own one) and have dabbled in electronics a touch

Best Answer

Even after your edit the data on timing don't make sense: you can't run a motor for 45 seconds every 30 seconds. But the pattern isn't important for the solution.

I would use a small microcontroller like the PIC10F200, which doesn't need any external components to create the on/off pattern. You can have the 10F200 in a DIL package (left), or a 3 mm long SOT23-6 package.

enter image description here enter image description here

The microcontroller can't drive a motor directly, so use an output pin to control a transistor which drives the motor:

enter image description here

You don't say anything about RPM, but this small geared DC motor is available gear-ratios from 4.4:1 to 499:1 for 2020 RPM down to 12 RPM. For even slower you can add an extra gearbox.

Stepper motors are also often used with microcontrollers because you can control their position very accurately, but they require more complex control signals than the simple on/off, and especially at low RPMs don't run smoothly: they're not called "steppers" for nothing.

Related Topic