We will be modelling the motors (or rather, the switches for the motors) using a set of 3 LEDs - one red, one yellow and one green. So turning an LED on represents the corresponding motor being turned on-Our task is to control the 3 motors.
Inputs via a 12-key keypad that will allow users to select one of a series of preset programs. Each program has a different sequence and timing for the ‘motors' as described below.
Program No
|
Operation sequence
|
1 |
Green - 5 sec, Yellow - 2 sec, Red - 3 sec, back to Red and continue sequence (continuous loop)
|
2 |
Red - 4 sec, All motors off - 1 sec, Green - 3 sec, All motors off - 2 sec, back to Red and continue sequence (continuous loop)
|
4 |
Red - S sec, stop (this does not loop).
Pressing '4' again should extend the motor run time for another 5 seconds from time the key is pressed.
|
6 |
Same as Program 4, but for Green motor and using '6' to extend run
|
7 |
Red on continuously. Pressing '7' again stops red.
|
8 |
Yellow on continuously. Pressing '8' again stops yellow.
|
9 |
Green on continuously. Pressing '9' again stops green.
|
Safety Constraints:
1) Only one motor can be turned on at a time.
2) To minimise current surges during motor switching, there should be a 1 sec delay between one motor turning off and the next being turned on.
3) Emergency stop switch: This will be a push button switch to stop the motors in the event of an emergency.
Motors will not run until the emergency has been cleared by pressing the ‘*' key on the keypad.
The system will ignore all other inputs while in this ‘emergency' state.
When resuming normal operation, previous program selection is cleared.
Users should be able to select a new program at any point during the normal operation sequence and the system should switch to the new program, but still comply with the safety constraints above.
Even though the ‘user interface' is limited to the LCD screen and keypad, consider making this as ‘user-friendly' as possible and extend to include the following and any others of your choice:
1. User calls up the user defined option by selecting ‘0'.
2. User enters how long the RED ‘motor' should be on in minutes and seconds (up to 80 minutes).
3. User starts program by pressing ‘#'. The appropriate motor is turned on and a ‘countdown timer' is displayed on LCD showing how long is left before motor turns off.
4. If the user presses ‘#' before countdown reaches zero, the program is ‘paused'. The motor is turned off, and the countdown timer stops. Pressing ‘#' again causes program to resume - motor is turned on and countdown continues.
5. When countdown reaches zero (0 mins and 0 secs), the motor will stop and system comes out of user program mode.
Note: The system still has to comply with all safety constraints stated above.
Attachment:- Reading keypad.rar