Arduino Alarm clock

Hi, i am New to the arduino world, i have purchased a arduino uno to Complete a task i have gotten at university.

The task we have to Complete is making a Ardunio alarm clock. This is my task as show below:

Description
You are tasked to create an alarm clock which displays the time and can be configured to set of an alarm at a given time. I recommend buying a plastic box (at Nor Engros, Jernia, Ikea...) so you can have everything permanently connected. You can use hot glue (which is easy to remove afterwards) or screws to mount the board.

The important components of the alarm clock are:

Display
Shows the current time when the alarm clock isn't being operated by the user. Shows the new time when time is being adjusted, and shows the alarm time when the alarm is being set. If you want to create menus or add other features the display will naturally be used for those as well.

Note: When the clock is powered on it starts at 12:00, just like other digital clocks usually do.

Piezo speaker
Used to buzz the alarm when the current time matches the configured alarm time.

Red LED
On when an alarm has been configured. Off otherwise.

Green LED
On if the alarm has been snoozed. Off otherwise.

Buttons
Decide for yourself how many buttons your alarm clock needs. Setting the time / alarm can be done with buttons or with a potentiometer for example. Here's a suggestion in case you don't know where to start, but you can do something completely different if you want:

Set time mode (after this the buttons / pot adjust the current time)
Set alarm mode (after this some buttons / pot adjust the alarm time)
Snooze alarm (delays alarm if one is currently active)
Silence alarm (silences the current alarm going off)
Disable alarm (disables the alarm if one is currently active)
Requirements
Clock must show the current time with hour, minutes and seconds
Users must be able to set the clock time
User must be able to set an alarm time.
This alarm time must be stored in EEPROM (Lenker til en ekstern side.)Lenker til en ekstern side. so it is still set after power cycle.
The buzzer goes off (single tone or tune) when the alarm time is reached
The snooze function delays the current alarm for 5 more minutes (but does not change the configured alarm time)

My question to the community here is, if i have no prior experience dealing with arduino or the programmmering, where should i begin?

Kind regards

Nicolay

Hopefully this task is not due in a week or so.
My personal suggestion would be to begin with the tutorials under the RESOURCES tab at the top of this page so that you become comfortable with programming the Arduino.
You also have to decide what type of display you will use, LED or LCD, along with which RTC (Real Time Clock) module (choose one that has the battery included). Then decide what type of controls for the user interface and a suitable Piezo speaker capable of waking up a sound sleeper.
Once you are comfortable using the Arduino IDE for programming, develop some code for driving the display. You will make plenty of mistakes but this Forum is here to help you. Then start working on including your clock module to display the time and alarm. Then add the code for the interface (buttons, LEDs and speaker) until you are satisfied.
Remember, we are here to help you, but we won't write the code for you. Good luck with your task, you will make better progress with small, incremental steps rather than try and do everything at once.

You are fortunate that you were not asked to ensure that the alarm clock automatically respects day light savings time.

Similar to Due_Unto I'd suggest starting by putting just a clock together so you get at least something working that should give you the confidence to go further. For that, maybe a Uno, a display (say an LCD 1602) and a DS3231 RTC module. Set the time through the serial console initially.

Once you've done that, then design on paper the user interface (buttons for setting the clock, the alarm and controlling the alarm functions, and LEDs). Then implement the whole project.

Thanks alot :slight_smile: atleast now i got a place to start. The task is due in 6 weeks so i have alot of time.

For code - I always write the code in plain text like an outline first - use lots of indents etc to make it easy to understand when you go back

C lets you break the code into subroutines oe functions - use that feature - break your code into small bits. Make one bit at a time work (as suggested above)

Good luck - looks like an interesting project and your professor has given you some great guidance to get started.

As the clock is to start at a 12:00 when powered up, you don't need to bother with an RTC. That requirement and the lack of a date function pretty much excludes automatic DST adjustment. Just use the internal timekeeping, accurate enough for an assignment like this.

Other than that I expect you can easily find a few ready-made projects on the Internet that do (almost) exactly what your clock is supposed to do.