...
Create a program such that the rotation speed and direction of a motor is dependent on the distance from an obstacle as given in the table below. The motor has to be powered using a separate battery, and not from Arduino (Arduino only controls the motor, does not power it).
Distance from Obstacle | Motor Rotation |
---|---|
Distance > 50 cm | Clockwise, full-speed |
35 < Distance <= 50 cm | Clockwise, quarter-speed |
30 < Distance <= 35 cm | No rotation |
20 < Distance <= 30 cm | Anticlockwise, quarter-speed |
Distance <= 20 cm | Anticlockwise, full-speed |
Hints
Combine the codes and circuits in Ultrasonic Distance Sensor and DC Motors, and use multiple if conditions. You will need ifs to be nested, i.e., ifs within ifs.
analogWrite() with values 255,0 (dir1speed,dir2speed) and 64,0 respectively can be used for full-speed and quarter-speed clockwise rotation. 0,255 and 0,64 can be used for full-speed and quarter-speed anticlockwise rotation respectively. The speed is not perfectly linearly related to the value (duty cycle) in practice, and that is ok for this exercise.