You are to create a system that will change the position of a DC
servo motor using a potentiometer. The
system will have an user adjustable maximum travel from neutral in
both CW and CCW directions.
When requested by the user timestamped position data will be logged
to the terminal screen.
The project is to have the following functionality :
1. Power on self check. Servo will move to it's neutral/1.5 msec/90
deg position. Blink a red status
LED once.
2. Display main menu options: 1) set up 2) run 3) download. Ask for
selection
3. Press 1 to access the set up menu – select CW or CCW
setup.
CW setup: using the pot adjust the servo to a desired position
between 90 and 180 deg. Provide a
method for the system to accept this value ( keypad or push
button). This position will become the limit
for travel in the CW direction. When the value is accepted the
servo will return to the neutral position.
CCW setup: using the pot adjust the servo to a desired position
between 0 and 90 deg. Provide a
method for the system to accept this value ( keypad or push
button). This position will become the limit
for travel in the CCW direction. When the value is accepted the
servo will return to the neutral position.
Blink the status LED twice and return to main menu when
finished.
4. Press 2 to enter run mode. Adjust the pot so the servo starts in
the neutral (90 deg) position. Adjust
the pot CW or CCW. The servo should stop moving when it reachs the
max CW or CCW travel limit
programmed in step 2. The amount and direction of travel (CW or
CCW) should be continuously
displayed as a number on line one and a bar graph on line two of
the LCD. You can express the
numerical position in deg, usec or percent travel from neutral.
It's your choice. The bargraph will start
at 0 degs , 90 degs will be mid scale and 180 degs will be full
scale. Use 5 vertical bars per character
(similar to the lab). The total number of bars between 0 and 180
degs is your choice. I suggest 12
characters = 60 bars = approx 3 degs per bar.
5. Press 3 to download timestamped position data to the remote
terminal. Blink the status LED three
times. Return to the main menu after the download. The servo will
return to the neutral position after a
download.