Seven day alarm Using Atmega644

Seven day alarm

Introduction

The variability of a college student’s class and school work schedule gives way to an abnormal sleep/wake pattern that is not experienced any other age group. Few lucky students have the pleasure of having all their classes start at the same time every day. However, most students do not have this luxury. This requires that most students reset their alarm clocks every night in to adjust to each day’s different schedule. Forgetting to reset the clock could result in sleeping through classes, or unexpected wake-ups hours before classes start. This abnormal schedule disrupts your circadian rhythm and makes it increasingly difficult to get out of bed in the morning. For some it leads to snoozing your way through morning classes.

Seven day alarm

We have created a new type of alarm clock that will have a built in record of your weekly schedule so that it may wake you up at the right time, every time, every day. Our alarm clock will includes extra features that improve on the shortcommings of current alarm clock designs.

Features Introduction

Even chronic snoozers will have no excuse for sleeping through another class again. Each of the daily alarms will include a feature that indicates a priority for the wake up time. For example, a student may give waking up on Monday morning for class a high priority, while giving waking up for a Saturday morning jog a low priority.
The different priorities will determine how hard it is to disable the alarm. High priority alarms will be louder and annoyingly difficult to reset. This will ensure that the user is well awake before the alarm can be silenced. In contrast, a low priority alarm can be snoozed or disabled with the single press of a button.
The backlight LCD display will inform the user of the day of the week and the date. It will also display the next upcoming alarm to the user. The calendar feature of the clock automatically compensates for leap years. The alarm also features a ambient light controller that will make sure that the seven segment LED display is always an appropriate brightness.

User Input

We wanted to make sure that setting the time for the device was simple and intuitive. We were originally debating over two input methods. A simple interface with 4 navigation buttons or the use of a large keypad for data input. The added features such as the 7 day programmable alarms made it essential that data input was easy for the user.
It has buttons for incrementing and decrementing a value, a back button and an enter button. The keypad represents a 4×4 grid of buttons for user input. We ultimately decided that the navigational keypad would not only simplify the user experience when inputting data but would also help reduce the complexity of the state machine.

Block Diagram

Standards

Communication between chips takes place using two standardized communication protocols. The first of which is SPI interface. This is used by both the LED drivers and the digital to analog converter. We wrote the software to communicate over SPI to both of the chips. Both of the chips communicate using SPI standard 1. The clock calendar chip uses the I2C interface. To communicate to the clock calendar chip over I2C we used the library created by Peter Fleury. His open source software can be found at the link referenced at the bottom of the page.

Patents and Copyrights

Seven day alarm Schemetic

We were only able to find one other standalone programmable alarm clock. Although they seem to be the only unique product with this feature we do not infringe on any of their patents. We were only able to find patents for their user interface and not for their 7 alarm feature. Since the user interface of our clock is vastly different from theirs there are no patent conflicts.

Parts List:

Component Name Quantity Cost Vendor P/N Project Cost Total Cost
Chips Atmel ATmega644 CPU 1 6 Land 6 6
MCP 4822 12-Bit DAC 1 3 Sample MCP4822-E/P 3
NXP PCF8563p Real Time Clock 1 2.11 Digikey PCF8563P/F4 2.11 2.11
Allegro A6276EA-T Led Drivers 2 3 FSAE Stock A6276EA-T 6
Displays LCD 16×2 1 8.5 All Electronics 8.5 8.5
Unitech Systems 1″ 7 Segment Displays 4 2 FSAE Stock LCS-10012TUR11 8
Passive Components 10k Potentiometer 1 1 Land 1
Photoresistor 1 1 Land 1
32.768kHz Crystal 1 1 Ebay 1 1
Misc resistors 1 1 Land 1
Misc capicators 1 1 Land 1
Other Hardware Keypad 1 6 Land 6 6
Illumniated Buttons 4 4 Digikey CW152-ND 16 16
Power Supply 1 5 Land 5
Atmega PCB board 1 4 Land 4 4
Lego Whitehouse 1 50 Stock 21006 50
Whiteboard 1 6 Land 6 6
Solder Board Small 2 1 Land 2 2
Solder Board Large 1 2.5 Land 2.5 2.5
DIP Socket 4 0.5 Land 4 2
Total Cost: 58.11 132.11
User Input

When the clock first turns on the user is prompted to set the time for the clock. The device is unusable until the user sets the time. The keypad is used as the major user input device for time setting. The 4×4 keypad has the numbers 0-9 and the letters a-f. The letters represent various functions of the clock such as setting the alarm, setting the time and enter. The keypad is plugged into ports d0..d3 and c4..c7. The keypad was split onto two ports because other hardware required the alternate functions of special pins (described in following paragraphs).

Read more: Seven day alarm Using Atmega644

Leave a Comment

Your email address will not be published. Required fields are marked *