You are required to design a system that controls the speed of a fan's rotation. The speed at which the fan rotates is determined by the ambient temperature, i.e. as the temperature increases, so does the rotation speed of the fan. The system makes use of a small D.C. Motor connected to a microcontroller via a H-Bridge configuration, so that the direction of the fan's rotation can also be controlled.
As the fan rotates, a small disk attached to shaft of the motor passes through an optical encoder, this facility allows us measure the number of rotations in a specific time, usually measured as Rotations Per Minute (RPM)
The user of the system can configure the speed of rotation for a given temperature. This is achieved by using a 4x4 keypad, along with a 128x64 graphics liquid crystal display, to provide feedback to the user. The initial LCD layout is shown below when normally operating.
Temperature Fan's Rotation
Enter Pin to Change System Parameters
A four digit PIN number is required to gain access to allow configuration of system parameters. The method adopted for entering the pin number, needs to be a non-blocking approach, as the motor's speed needs to be continually monitored and controlled as a background task.
As soon as a the four digits have been entered, validation of the entered pin is required. If the PIN number has been entered incorrectly, an appropriate message needs to be displayed for 3 seconds before returning to the normal operation. A correctly entered pin, will display the configuration menu as below Please select one of the following
Change PIN number
Configure Temperature vs RPM
A message asking the user to enter their old PIN number will be displayed. If correctly entered, a new message prompting the user to enter their New PIN number will be shown. Once entered, they will be required to enter it again for verification. When the process is complete, the system will return to normal operation. Any error during this procedure will be displayed before returning to normal operation, keeping the existing pin number.
As it suggests, Stops the motor before returning to normal operation. The motor's speed will need to be ramped down before stopping.
Starts the motor before returning to normal operation where the rotation speed is determined by the ambient temperature. The motor's speed needs to be ramped up to the RPM.