This is an old revision of the document!


Alarm Clock For Heavy Sleepers

Introduction

Description: The project consists of an alarm clock that, on ringing, will diplay a series of math questions and the user will have to correcty answer three in a row for the alarm to stop. Alternatively, if math proves to be too difficult at the time, the user can stop the alarm by yelling at it with sufficient volume.

Purpose: The purpose of the device is to make sure that the user is actually awake when turning off the alarm.

Utility: It's inteded to be usefull for people who frequently turn off their morning alarm and imediately fall back asleep.

General description

Normal state Device displays current time. The microcontroller reads the time from the RTC module and displays it on the LCD. From this state the user can press the 1 key to open settings.

Settings menu Time is replaces by settings menu. The LCD will show on the top row the name of a setting (ex: “set alarm”) and on the bottom row the options “1back 2ok 3next”. If the user presses 1 the clock goes back to normal state, if they press 2 the bottom row is replaced with input options for the setting in question” and if they press 3 the top row will display next setting. The possible settings are the following:

  • set alarm - the user can input the time for the alarm to ring or turn off alarm (a LED will be lit if alarm is set)
  • ragequit mode - on/off setting that enables or disables the function to turn off alarm by yelling (a LED will be lit if mode is enabled)
  • volume - allows user to adjust alarm volume
  • brightness - allows user to adjust display brightness

Alarm time When current time reaches the value set for the alarm, the microcontroller will send the alarm tone signal to the buzzer for it to ring. On the display, the current time will be replaced by a math question generated by the microcontroller. The user will be able to enter answer trough keypad and the microcontroller will keep track of the number of consecutive correct anwers. If this number reaches 3, the alarm will turn off and the clock will go back to normal state.

At the same time, if ragequit mode is enabled, the microcontroller will check the inputs from the noise sensor and turn the alarm off if a loud enough sound was detected.

Hardware Design

No Component Role
1 atmega328p-xPlained Mini microcontroller
2 16×2 LCD displays time + math questions + settings menu
3 4×4 Keypad user input for settings and question answers
4 Noise Sensor detects if sound exceeds a treshold (user yelled loud enough)
5 Passive Buzzer produces alarm sound
6 RTC Module keeps time
7 LED (x2) display certain settings (1 for showing if an alarm time is set, 1 for showing if ragequiting mode is enabled)
8 220ohmRezistors (x2) creating the LED circuits
9 Breadboard connecting other components
10 Dunport wires (various types) connecting other components
No Component component pin microcontroller pin
1 LCD SDA PC4
SCL PC5
VCC 5V
GND GND
2 Keypad SDA PD4
SCL PD5
VCC 5V
GND GND
4 Noise Sensor OUT PD0
VCC 5V
GND GND
5 Passive Buzzer + PD1
- GND
6 RTC Module SDA PC4
SCL PC5
VCC 5V
GND GND
7 LED1 + PD2
- GND
8 LED2 + PD3
- GND

Aici puneţi tot ce ţine de hardware design:

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2026/jan.vaduva/ioana.vatasescu.1779088368.txt.gz · Last modified: 2026/05/18 10:12 by ioana.vatasescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0