The goal is to write a program which is able to perform tasks described below.

Warm up exercise

  • Controlling the DC motor using buttons of a User Interface module. By pressing S1 button, the motor turns clockwise. By pressing S3 button, the motor revolves clock-counterwise. By pressing S2, the motor is stopped.

For beginners

  1. DC motor control. Movement of a robot is simulated, by using DC motor and touch sensors. Touch sensors are the buttons S1, S2 and S3 of the User Interface module. The motor is controlled by pressing the buttons. S1 and S2 pressed separately stops the engine for two seconds and then start motor again. If both buttons are pressed, then the motor is stopped until the buttons are released. (For a robot, similar scheme should be implemented to control two separate motor).
  2. DC motor accelerates when S1 is pressed down and holds achieved speed when the button is released. By holding S2 pressed down, the motor decelerates smoothly. By pressing button S3, the motor stops instantly.
  3. Servo motor, the servo motor is controlled via the buttons of the User Interface module. By pressing down S1 the servomotor moves one step to the right. By pressing down S3, the servo motor moves one step to the left and S2 makes the servo motor to move to the initial (middle) position. The position of the servo motor is displayed live on the 7 segment display (each number corresponds to 10 degrees of the turn: middle position equals 5).
  4. Radar, UH sensor based radar is simulated. Sensor is installed to the lever of the servo motor. The lever of servo motor is moving constantly form one extreme position to the other. If there happens to be an object in closer range than 0,5 meters of the sensor, then the servo motor is stopped for 5 seconds and by signaling a LED that detection of the object is announced. After 5 seconds of flashing of the LED, scanning continues.
  5. Stepper motor, after each pressing on the buttons S1 and S3 it rotates 50 steps, accordingly clock wise and anti clock wise.

For advanced

  1. Tracking an object. By using ultrasonic distance sensor, which is installed on the lever of the servo-motor, the servomotor has to track a bypassing object. The motor turns according to the movement of the object so that the object is all the time in the middle of the tracking sector of the sensor.
  2. Using a stepper motor, make a second dial of the analog clock. The motor must be make exactly 60 steps on one complete rotation. Movement should be stepped and not smooth.
  3. Acceleration, the program allows changing the acceleration/deceleration of the stepper motor. Use linear speed slopes which can be easily identified at visual inspection. Longer movements have to follow the following scheme: acceleration –> steady speed –> deceleration.
  4. Design a PID regulator (or its simplified form) for a DC motor. NB! This exercise demands a motor with feedback (encoder).
  5. DC motor. The DC motor is controlled via the buttons of the User Interface module. By pressing down S1 the motor moves one step (x encoder pulses) to the left. By pressing down S3, the motor moves the same amount of steps to the back. The motor rotates exact amount of a predetermined steps, regardless of a torque applied to the shaft (in the case where applied torque is less than the engine maximum output torque).


  1. For what is the H-bridge used? On what principle is it working?
  2. How is the position of the shaft of RC servo motor determined?
  3. What is the main difference between unipolar- and bipolar-stepper motors?
  4. How can half step and micro step modes of stepper-motor be applied? Give an example.
  5. How is the rotation speed of a DC motor controlled? Give an example.
  6. Which PWM working cycle is needed to achieve DC motor's shaft rotation speed 70% of nominal?
  7. How is the direction of motor's rotation determined when encoder is used?
  8. How can a DC motor be electrically slowed?
  9. What happens if the scheme of commutation of a stepper-motor is changing too fast?
  10. Is it possible and if yes, how is it possible to use dynamical braking?
en/exercises/motor.txt · Last modified: 2020/07/20 09:00 by
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0