mirror of
https://github.com/taigrr/arduinolibs
synced 2025-01-18 04:33:12 -08:00
More docs for alarm clock example
This commit is contained in:
parent
553a87b2d4
commit
9a674fc632
@ -22,7 +22,74 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\file alarm-clock.dox
|
\file alarm-clock.dox
|
||||||
\page alarm_clock Wind-Up Alarm Clock
|
\page alarm_clock Alarm Clock
|
||||||
|
|
||||||
|
\section clock_features Features
|
||||||
|
|
||||||
|
The alarm clock described on this page is a large example application that
|
||||||
|
uses many of the classes in the provided libraries: FreetronicsLCD, Form,
|
||||||
|
Field, SoftI2C, DS1307RTC, Melody and \ref power_save "PowerSave".
|
||||||
|
The clock has the following features:
|
||||||
|
|
||||||
|
\li Displays both the time and date.
|
||||||
|
\li 12 hour and 24 hour time display modes.
|
||||||
|
\li Up to 4 configurable alarm times, plus a snooze alarm.
|
||||||
|
\li Three alarm sounds to choose from.
|
||||||
|
\li Configurable alarm timeout between 2 and 10 seconds.
|
||||||
|
\li Single button to activate the back light and/or stop the alarm.
|
||||||
|
\li Up, down, left, and right buttons to change clock settings.
|
||||||
|
|
||||||
|
\section clock_main_circuit Main circuit
|
||||||
|
|
||||||
|
The main clock circuit consists of an Arduino Uno compatible board, a 16x2
|
||||||
|
LCD module, a realtime clock chip, and a piezo buzzer for the alarm:
|
||||||
|
|
||||||
|
\image html alarm_circuit.png
|
||||||
|
|
||||||
|
Some of the components can be purchased ready-made as the
|
||||||
|
<a href="http://www.freetronics.com/pages/16x2-lcd-shield-quickstart-guide">Freetronics
|
||||||
|
16x2 LCD Shield</a> and the <a href="http://www.sparkfun.com/products/99">SparkFun
|
||||||
|
Realtime Clock Module</a>. I used the ready-made realtime clock module,
|
||||||
|
but made my own equivalent to the LCD shield from parts to aid in spacing
|
||||||
|
out the LCD and pushbuttons on the exterior of the box. The value of the 33R
|
||||||
|
resistor may need to be adjusted for different types of back light LED's.
|
||||||
|
|
||||||
|
The whole circuit is built on a prototyping shield, with ribbon cables
|
||||||
|
connecting to the LCD. The Stop Alarm button and piezo buzzer are not
|
||||||
|
shown in this picture and some of the components are soldered to the bottom
|
||||||
|
of the shield:
|
||||||
|
|
||||||
|
\image html clock_shield.jpg
|
||||||
|
|
||||||
|
The clock module is based on the DS1307 chip and has an on-board coin battery
|
||||||
|
to keep the time and date ticking over even if the main circuit loses power.
|
||||||
|
The chip is I2C-based and has an auxillary SQW output that can be configured
|
||||||
|
to provide a 1 Hz squarewave signal. This signal is used by the software
|
||||||
|
running on the Arduino to detect when a new time or date is available for
|
||||||
|
display on the LCD. The DS1307RTC class takes care of the details of
|
||||||
|
talking to the chip via I2C.
|
||||||
|
|
||||||
|
\section clock_arduino_board Arduino board
|
||||||
|
|
||||||
|
To keep power consumption low, say for being powered by batteries, we don't
|
||||||
|
need a full Arduino Uno or similar board. The USB interface is unnecessary,
|
||||||
|
as is the on-board power supply if there is an external source of 5 volt power.
|
||||||
|
We also don't want the power and D13 status LED's to be draining power.
|
||||||
|
Therefore, a cut-down version of the Arduino is recommended. We used the
|
||||||
|
<a href="http://www.freetronics.com/collections/arduino/products/kitten">KitTen</a>
|
||||||
|
kit from <a href="http://www.freetronics.com/">Freetronics</a>, and didn't
|
||||||
|
solder up anything that wasn't strictly necessary. A
|
||||||
|
<a href="http://www.freetronics.com/ftdi-cable">5v FTDI USB-to-Serial cable</a>
|
||||||
|
is necessary for programming. Similar minimalistic built-it-yourself
|
||||||
|
Arduino designs should also work.
|
||||||
|
|
||||||
|
\image html kitten_minimal.jpg
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
NOTE: The following has been commented out for now. More work is needed
|
||||||
|
on the wind-up power supply.
|
||||||
|
|
||||||
\section clock_power Power supply
|
\section clock_power Power supply
|
||||||
|
|
||||||
@ -74,46 +141,4 @@ the battery voltage and display the current status to the user (after
|
|||||||
adding 0.7 to account for the voltage drop on D2).
|
adding 0.7 to account for the voltage drop on D2).
|
||||||
|
|
||||||
If you don't have 1N4001 diodes to hand, then 1N4004 will work just as well.
|
If you don't have 1N4001 diodes to hand, then 1N4004 will work just as well.
|
||||||
|
|
||||||
\section clock_arduino_board Arduino board
|
|
||||||
|
|
||||||
Because we want to keep power consumption low, we actually don't want a full
|
|
||||||
Arduino Uno or similar board. The USB interface is unnecessary, as is the
|
|
||||||
on-board power supply. We also don't want the power and D13 status LED's
|
|
||||||
to be draining power. Therefore, a cut-down version of the Arduino is
|
|
||||||
recommended. We used the <a href="http://www.freetronics.com/collections/arduino/products/kitten">KitTen</a>
|
|
||||||
kit from <a href="http://www.freetronics.com/">Freetronics</a>, and didn't
|
|
||||||
solder up anything that wasn't strictly necessary. A
|
|
||||||
<a href="http://www.freetronics.com/ftdi-cable">5v FTDI USB-to-Serial cable</a>
|
|
||||||
is necessary for programming. Similar minimalistic built-it-yourself
|
|
||||||
Arduino designs should also work.
|
|
||||||
|
|
||||||
\section clock_main_circuit Main circuit
|
|
||||||
|
|
||||||
The main clock circuit consists of an Arduino Uno compatible board, a 16x2
|
|
||||||
LCD module, a realtime clock chip, and a piezo buzzer for the alarm:
|
|
||||||
|
|
||||||
\image html alarm_circuit.png
|
|
||||||
|
|
||||||
Some of the components can be purchased ready-made as the
|
|
||||||
<a href="http://www.freetronics.com/pages/16x2-lcd-shield-quickstart-guide">Freetronics
|
|
||||||
16x2 LCD Shield</a> and the <a href="http://www.sparkfun.com/products/99">SparkFun
|
|
||||||
Realtime Clock Module</a>. I used the ready-made realtime clock module,
|
|
||||||
but made my own equivalent to the LCD shield from parts to aid in spacing
|
|
||||||
out the LCD and pushbuttons on the exterior of the box. The value of the 33R
|
|
||||||
resistor may need to be adjusted for different types of back light LED's.
|
|
||||||
|
|
||||||
The clock module is based on the DS1307 chip and has an on-board coin battery
|
|
||||||
to keep the time and date ticking over even if the main circuit loses power.
|
|
||||||
The chip is I2C-based and has an auxillary SQW output that can be configured
|
|
||||||
to provide a 1 Hz squarewave signal. This signal is used by the software
|
|
||||||
running on the Arduino to detect when a new time or date is available for
|
|
||||||
display on the LCD. The DS1307RTC class takes care of the details of
|
|
||||||
talking to the chip via I2C.
|
|
||||||
|
|
||||||
Note: the above circuit works just as well for a non-wind-up clock powered
|
|
||||||
from batteries or mains power. The only difference will be the "Sense
|
|
||||||
Battery Status" input on A1. Either remove the battery monitoring logic
|
|
||||||
from the source code or tie A1 to 5V via a 10K resistor.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@ -66,9 +66,8 @@ including support for configuring alarms and storing clock settings.
|
|||||||
The default implementation simulates the time and date based on the value of
|
The default implementation simulates the time and date based on the value of
|
||||||
<tt>millis()</tt>.
|
<tt>millis()</tt>.
|
||||||
\li DS1307RTC class that talks to the DS1307 realtime clock chip via I2C.
|
\li DS1307RTC class that talks to the DS1307 realtime clock chip via I2C.
|
||||||
\li \ref alarm_clock "Wind-Up Alarm Clock" example that uses the DS1307
|
\li \ref alarm_clock "Alarm Clock" example that uses the DS1307
|
||||||
realtime clock and the FreetronicsLCD library to implement an alarm clock
|
realtime clock and the FreetronicsLCD library to implement an alarm clock.
|
||||||
where the internal battery is charged by hand-cranking a dynamo.
|
|
||||||
|
|
||||||
\section main_other Other
|
\section main_other Other
|
||||||
|
|
||||||
|
@ -494,9 +494,6 @@ Single
|
|||||||
3375 3690 4500 3690
|
3375 3690 4500 3690
|
||||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||||
3375 4050 4500 4050
|
3375 4050 4500 4050
|
||||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
|
|
||||||
8 1 1.00 60.00 120.00
|
|
||||||
5175 5400 5175 6075
|
|
||||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||||
4500 1665 3150 1665
|
4500 1665 3150 1665
|
||||||
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
|
||||||
@ -555,10 +552,6 @@ Single
|
|||||||
4 0 0 50 -1 0 12 0.0000 4 135 240 4545 3420 A3\001
|
4 0 0 50 -1 0 12 0.0000 4 135 240 4545 3420 A3\001
|
||||||
4 0 0 50 -1 0 12 0.0000 4 165 1410 4545 3735 A5 (I2C CLOCK)\001
|
4 0 0 50 -1 0 12 0.0000 4 165 1410 4545 3735 A5 (I2C CLOCK)\001
|
||||||
4 0 0 50 -1 0 12 0.0000 4 165 1275 4545 4095 A4 (I2C DATA)\001
|
4 0 0 50 -1 0 12 0.0000 4 165 1275 4545 4095 A4 (I2C DATA)\001
|
||||||
4 0 0 50 -1 0 12 0.0000 4 135 240 5040 5265 A1\001
|
|
||||||
4 0 0 50 -1 0 12 0.0000 4 135 465 4995 6300 Sense\001
|
|
||||||
4 0 0 50 -1 0 12 0.0000 4 180 600 4950 6525 Battery\001
|
|
||||||
4 0 0 50 -1 0 12 0.0000 4 135 495 4995 6750 Status\001
|
|
||||||
4 0 0 50 -1 0 12 0.0000 4 135 345 6570 5310 D12\001
|
4 0 0 50 -1 0 12 0.0000 4 135 345 6570 5310 D12\001
|
||||||
4 0 0 50 -1 0 12 0.0000 4 135 2370 10440 7290 Freetronics 16x2 LCD Shield\001
|
4 0 0 50 -1 0 12 0.0000 4 135 2370 10440 7290 Freetronics 16x2 LCD Shield\001
|
||||||
4 0 0 50 -1 0 12 0.0000 4 135 450 6975 5805 Piezo\001
|
4 0 0 50 -1 0 12 0.0000 4 135 450 6975 5805 Piezo\001
|
||||||
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 36 KiB |
BIN
libraries/RTC/examples/AlarmClock/clock_shield.jpg
Normal file
BIN
libraries/RTC/examples/AlarmClock/clock_shield.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 91 KiB |
BIN
libraries/RTC/examples/AlarmClock/kitten_minimal.jpg
Normal file
BIN
libraries/RTC/examples/AlarmClock/kitten_minimal.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 58 KiB |
Loading…
x
Reference in New Issue
Block a user