Smart temperature controller using PIC16F877
This program consists of designing, implementing and building an small temperature controller. This controller measures the temperature in the room and turns on or off an air conditioner as needed. The user should also be able to program the controller with different temperatures for the different parts of the day.
- The controller must contain its own clock. The user will start by setting the clock, then the controller must manage on its own.
- Interface 8 switches to one of the input ports to simulate reading the ambient temperature in BCD format.
- Interface an LCD and use it to constantly display the clock, the current ambient temperature, the current temperature setting and the status of the A/C (ON/OFF).
- If the clock has not been set, 12:00 should flash on the LCD. Add a push-button input to allow the user to set the desired temperature (in non-program mode).
- Add two push buttons to increase/decrease the current setting.
- The default setting is 15 degrees. This is also the minimum allowed setting. The maximum is 32 degrees.
- The program should display the new setting as it is being incremented/decremented.
- Add a push-button input to allow setting the clock.
- Use 4 push-buttons to increase/decrease the current setting. 2 for the hours and 2 for the minutes.
- Add a push-button to allow programming the controller.
- Another push-button determines program 1/program 2. (Cycle through).
- The push-buttons for setting the temperature and clock are used to set the desired temperature and the start time.
- Add a push-button for canceling whatever current operation is being done.
- The controller must read the ambient temperature every second. Allow a threshold of 2 degrees.
- The ambient temperature needs to increase by 2 degrees over the setting before the A/C is turned on. It needs to drop by 2 degrees below the setting before the A/C is turned off.