In this project a step motor is run with an input signal from another DC motor.


Youtube video


The steps of operation is listed below.


  1. Arduino receives the signal from the DC motor’s capacitive sensor.
  2. The microcontroller determines the speed of the step motor using the values minimum speed, maximum speed, average speed, rpm tweaker, rpm.
  3. The DC motor is run at maximum speed. During this, the maximum speed value is calibrated.
  4. The DC motor is run at minimum speed. During this, the minimum speed value is calibrated. This can be selected as 0(zero).
  5. The average speed value is the value received from the sensor. For example, if the sensor gets 6 pulses per second the Arduino will receive this as 6 Hz this is the average speed value. The Arduino will give the step motor a speed corresponding to this frequency.
  6. The signal coming from the sensor is passed through a buffer circuit(ua741 is used) because the signal is too weak to be used in a voltage divider.
  7. The rpm is set. This value is the maximum rpm the step motor will operate at if the DC motor works at full speed. The values that the step motor can run are on a linear curve between minumum speed and maximum speed.
  8. The tweak rpm value can be used to increase or decrease the step motor speed in case the speed needs to be changed.
  9. In case the device is shut down by a power cut or it is closed manually, the last values that are used will need to be recorded. These values are recorded in the EEPROM memory of the Arduino.
  10. Arduino sends a frequency to the step motor to run it at the desired speed.


The step motor.



The LCD interface.



The capacitive sensor.



The step motor driver.



The buffer circuit.