From f5f4282e1a174ebe8132a61665117ba6f024b064 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Sat, 2 Jun 2012 21:10:07 +1000 Subject: [PATCH] Introduce an alarm clock control for a radio --- doc/alarm-clock.dox | 18 +++- .../RTC/examples/AlarmClock/AlarmClock.pde | 46 ++++++++- .../examples/AlarmClock/LowPowerMelody.cpp | 25 +++++ .../RTC/examples/AlarmClock/LowPowerMelody.h | 11 +- .../RTC/examples/AlarmClock/SetMelody.cpp | 9 ++ .../RTC/examples/AlarmClock/alarm_circuit.fig | 71 +++++++++++++ .../RTC/examples/AlarmClock/alarm_circuit.pdf | Bin 15531 -> 16402 bytes .../RTC/examples/AlarmClock/alarm_circuit.png | Bin 36734 -> 39364 bytes .../RTC/examples/AlarmClock/relay_control.fig | 95 ++++++++++++++++++ .../RTC/examples/AlarmClock/relay_control.pdf | Bin 0 -> 6425 bytes .../RTC/examples/AlarmClock/relay_control.png | Bin 0 -> 4345 bytes 11 files changed, 270 insertions(+), 5 deletions(-) create mode 100644 libraries/RTC/examples/AlarmClock/relay_control.fig create mode 100644 libraries/RTC/examples/AlarmClock/relay_control.pdf create mode 100644 libraries/RTC/examples/AlarmClock/relay_control.png diff --git a/doc/alarm-clock.dox b/doc/alarm-clock.dox index 909adf85..bcbc09ff 100644 --- a/doc/alarm-clock.dox +++ b/doc/alarm-clock.dox @@ -38,6 +38,7 @@ Field, SoftI2C, DS1307RTC (or DS3232RTC), Melody and \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. +\li Relay that controls the power to a separate radio circuit. \section clock_main_circuit Main circuit @@ -57,9 +58,9 @@ See \ref clock_ds3232 "below" for information on using a DS3232-based clock module instead of a DS1307-based module. 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: +connecting to the LCD. The Stop Alarm button, piezo buzzer, and radio +relay are not shown in this picture and some of the components are +soldered to the bottom of the shield: \image html clock_shield.jpg @@ -87,6 +88,17 @@ Arduino designs should also work. \image html kitten_minimal.jpg +\section clock_radio Controlling a radio + +The relay connected to D11 can be used to control the power to a separate +radio circuit so that the radio can be used as an alarm. The relay switch +should be inserted between the radio's power supply and the main radio circuit. +When the relay is off, no power is applied to the radio. If the radio is +powered off 5V, then the relay circuit can be altered as follows to power +the radio directly from the Arduino's power supply: + +\image html relay_control.png + \section clock_ds3232 Using DS3232 instead of DS1307 For clock modules based on the DS3232 chip, such as the diff --git a/libraries/RTC/examples/AlarmClock/AlarmClock.pde b/libraries/RTC/examples/AlarmClock/AlarmClock.pde index 5677e343..3d710ffe 100644 --- a/libraries/RTC/examples/AlarmClock/AlarmClock.pde +++ b/libraries/RTC/examples/AlarmClock/AlarmClock.pde @@ -40,6 +40,7 @@ #include "LowPowerMelody.h" // I/O pins that are used by this sketch. +#define RADIO 11 #define BUZZER 12 #define SENSE_BATTERY A1 #define RTC_DATA A4 @@ -70,6 +71,9 @@ LowPowerMelody alarmMelody(BUZZER); uint8_t prevHour = 24; bool is24HourClock = false; RTCAlarm nextAlarm; +bool isRadioPlaying = false; +bool sawFirstClick = false; +unsigned long firstClickTime; // Create the main form and its fields. Form mainForm(lcd); @@ -84,6 +88,7 @@ SetMelody alarmSound(mainForm, "Alarm sound"); SetTime setTime(mainForm, "Set current time"); SetDate setDate(mainForm, "Set current date"); BoolField hourMode(mainForm, "Hour display", "24 hour clock", "12 hour clock", false); +BoolField radioActive(mainForm, "Radio", "On", "Off", false); void setup() { // Reduce power consumption on I/O pins we don't need. @@ -95,7 +100,6 @@ void setup() { unusedPin(1); unusedPin(2); unusedPin(10); - unusedPin(11); unusedPin(13); // Turn off peripherals we don't need. @@ -131,6 +135,11 @@ void setup() { frontScreen.setDate(date); findNextAlarm(); + // The radio is turned on or off with a relay connected to an output pin. + // Configure the pin and turn the radio off initially. + digitalWrite(RADIO, LOW); + pinMode(RADIO, OUTPUT); + // Show the main form for the first time. mainForm.show(); } @@ -184,6 +193,12 @@ void loop() { rtc.writeByte(SETTING_SNOOZE, (byte)snooze.value()); } else if (alarmSound.isCurrent()) { rtc.writeByte(SETTING_MELODY, (byte)alarmSound.value()); + } else if (radioActive.isCurrent()) { + isRadioPlaying = radioActive.value(); + if (isRadioPlaying) + digitalWrite(RADIO, HIGH); + else + digitalWrite(RADIO, LOW); } prevHour = 24; // Force an update of the main screen. findNextAlarm(); // Update the time of the next alarm event. @@ -201,6 +216,21 @@ void loop() { // No alarm playing, so put the device to sleep to save power. sleepFor(SLEEP_15_MS); } + + // Select once means radio off, double-click select means radio on. + if (event == LCD_BUTTON_SELECT) { + unsigned long ms = millis(); + if (sawFirstClick && (ms - firstClickTime) > 500) + sawFirstClick = false; + if (sawFirstClick) { + sawFirstClick = false; + turnRadioOn(); + } else { + firstClickTime = ms; + sawFirstClick = true; + turnRadioOff(); + } + } } inline int timeToAlarm(const RTCTime ¤tTime, const RTCAlarm &alarm) @@ -279,3 +309,17 @@ void findNextAlarm(const RTCTime ¤tTime, const RTCAlarm &alarm) nextAlarm = alarm; } } + +void turnRadioOn() +{ + isRadioPlaying = true; + digitalWrite(RADIO, HIGH); + radioActive.setValue(true); +} + +void turnRadioOff() +{ + isRadioPlaying = false; + digitalWrite(RADIO, LOW); + radioActive.setValue(false); +} diff --git a/libraries/RTC/examples/AlarmClock/LowPowerMelody.cpp b/libraries/RTC/examples/AlarmClock/LowPowerMelody.cpp index 07745a1a..492db727 100644 --- a/libraries/RTC/examples/AlarmClock/LowPowerMelody.cpp +++ b/libraries/RTC/examples/AlarmClock/LowPowerMelody.cpp @@ -24,9 +24,25 @@ #include extern void findNextAlarm(); +extern void turnRadioOn(); +extern void turnRadioOff(); + +bool LowPowerMelody::isPlaying() const +{ + if (radioMode) + return radioAlarmActive; + else + return Melody::isPlaying(); +} void LowPowerMelody::play() { + if (radioMode) { + turnRadioOn(); + radioAlarmActive = true; + return; + } + // Turn on Timer2. power_timer2_enable(); @@ -36,6 +52,9 @@ void LowPowerMelody::play() void LowPowerMelody::playOnce() { + if (radioMode) + return; + // Turn on Timer2. power_timer2_enable(); @@ -45,6 +64,12 @@ void LowPowerMelody::playOnce() void LowPowerMelody::stop() { + if (radioMode) { + turnRadioOff(); + radioAlarmActive = false; + return; + } + // Stop the melody playing. Melody::stop(); diff --git a/libraries/RTC/examples/AlarmClock/LowPowerMelody.h b/libraries/RTC/examples/AlarmClock/LowPowerMelody.h index 714a586a..4583382d 100644 --- a/libraries/RTC/examples/AlarmClock/LowPowerMelody.h +++ b/libraries/RTC/examples/AlarmClock/LowPowerMelody.h @@ -27,11 +27,20 @@ class LowPowerMelody : public Melody { public: - LowPowerMelody(uint8_t pin) : Melody(pin) {} + LowPowerMelody(uint8_t pin) + : Melody(pin), radioMode(false), radioAlarmActive(false) {} + bool isPlaying() const; void play(); void playOnce(); void stop(); + + bool isRadioMode() const { return radioMode; } + void setRadioMode(bool mode) { radioMode = mode; } + +private: + bool radioMode; + bool radioAlarmActive; }; #endif diff --git a/libraries/RTC/examples/AlarmClock/SetMelody.cpp b/libraries/RTC/examples/AlarmClock/SetMelody.cpp index 15c24f6b..5054454f 100644 --- a/libraries/RTC/examples/AlarmClock/SetMelody.cpp +++ b/libraries/RTC/examples/AlarmClock/SetMelody.cpp @@ -48,10 +48,12 @@ static byte sosLengths[] = {8, 8, 8, 8, 4, 4, 4, 8, 8, 8, 8, 2}; static const char item_FourBeeps[] PROGMEM = "Four beeps"; static const char item_Haircut[] PROGMEM = "Shave 'n haircut"; static const char item_SOS[] PROGMEM = "S.O.S."; +static const char item_Radio[] PROGMEM = "Radio"; static ListItem melodyNames[] PROGMEM = { item_FourBeeps, item_Haircut, item_SOS, + item_Radio, 0 }; @@ -79,12 +81,19 @@ void SetMelody::updateMelody() switch (value()) { case 0: default: alarmMelody.setMelody(defaultMelodyNotes, defaultMelodyLengths, sizeof(defaultMelodyLengths)); + alarmMelody.setRadioMode(false); break; case 1: alarmMelody.setMelody(haircutNotes, haircutLengths, sizeof(haircutLengths)); + alarmMelody.setRadioMode(false); break; case 2: alarmMelody.setMelody(sosNotes, sosLengths, sizeof(sosLengths)); + alarmMelody.setRadioMode(false); + break; + case 3: + alarmMelody.setMelody(defaultMelodyNotes, defaultMelodyLengths, sizeof(defaultMelodyLengths)); + alarmMelody.setRadioMode(true); break; } } diff --git a/libraries/RTC/examples/AlarmClock/alarm_circuit.fig b/libraries/RTC/examples/AlarmClock/alarm_circuit.fig index 9a36eff1..f529d96d 100644 --- a/libraries/RTC/examples/AlarmClock/alarm_circuit.fig +++ b/libraries/RTC/examples/AlarmClock/alarm_circuit.fig @@ -423,6 +423,54 @@ Single 2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 10575 4275 10480 4275 -6 +6 4815 6075 4950 6525 +5 1 0 1 0 -1 0 0 -1 0.000 1 1 0 0 4950.000 6390.000 4950 6345 4905 6390 4950 6435 +5 1 0 1 0 -1 0 0 -1 0.000 1 1 0 0 4950.000 6300.000 4950 6255 4905 6300 4950 6345 +5 1 0 1 0 -1 0 0 -1 0.000 1 1 0 0 4950.000 6210.000 4950 6165 4905 6210 4950 6255 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 4950 6435 4950 6525 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 4950 6165 4950 6075 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 4880 6165 4880 6435 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 4850 6165 4850 6435 +-6 +6 5355 6075 5445 6435 +2 1 0 1 0 -1 0 0 20 0.000 1 0 -1 0 0 4 + 5400 6210 5445 6300 5355 6300 5400 6210 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 5355 6210 5445 6210 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 5400 6300 5400 6435 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 5400 6210 5400 6075 +-6 +6 5085 6750 5265 7020 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 5160 7020 5190 7020 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 5125 6975 5225 6975 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 5085 6930 5265 6930 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 5175 6750 5175 6930 +-6 +6 5130 5805 5220 5895 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 5175 5850 30 30 5175 5850 5175 5880 +-6 +6 5130 6705 5220 6795 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 5175 6750 30 30 5175 6750 5175 6780 +-6 +6 4365 6120 4455 6210 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 4410 6165 15 15 4410 6165 4425 6165 +-6 +6 4365 6255 4455 6345 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 4410 6300 15 15 4410 6300 4425 6300 +-6 +6 4365 6390 4455 6480 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 4410 6435 15 15 4410 6435 4425 6435 +-6 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 4500 1350 7425 1350 7425 5400 4500 5400 4500 1350 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 @@ -506,6 +554,24 @@ Single 11475 3960 11475 4050 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 10575 4275 11115 4275 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4 + 4950 6075 4950 5850 5400 5850 5400 6075 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4 + 4950 6525 4950 6750 5400 6750 5400 6435 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 5175 5850 5175 5400 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4 + 4410 6165 4725 6165 4680 6210 4635 6165 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4 + 4410 6435 4725 6435 4680 6390 4635 6435 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 4410 6300 4725 6210 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 4410 6300 3375 6300 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 4410 6435 3375 6435 4 0 0 50 -1 0 12 0.0000 4 135 450 4590 1710 Reset\001 4 0 0 50 -1 0 12 4.7124 4 135 405 8730 1710 GND\001 4 0 0 50 -1 0 12 4.7124 4 135 240 8955 1890 5V\001 @@ -561,3 +627,8 @@ Single 4 0 0 50 -1 0 12 0.0000 4 180 1215 11610 3735 33R (adjust for\001 4 0 0 50 -1 0 12 0.0000 4 180 840 11745 3960 LED type)\001 4 0 0 50 -1 0 12 0.0000 4 135 675 5535 2655 Arduino\001 +4 0 0 50 -1 0 12 0.0000 4 135 615 5535 6345 IN4001\001 +4 0 0 50 -1 0 12 0.0000 4 135 345 5040 5310 D11\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 4455 6705 5V\001 +4 0 0 50 -1 0 12 0.0000 4 180 480 4365 6885 Relay\001 +4 0 0 50 -1 0 12 0.0000 4 135 765 2430 6435 To Radio\001 diff --git a/libraries/RTC/examples/AlarmClock/alarm_circuit.pdf b/libraries/RTC/examples/AlarmClock/alarm_circuit.pdf index 2f156893817709d119053a0b6afc9f25d1cf1f09..17c4d4cd68b61cb82938b73922e0cc0903c3a9cc 100644 GIT binary patch delta 6902 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 delta 12174 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 YZ^eW#Lja2nM5a;+7!?(xO~#o21JgdeKL7v# literal 0 HcmV?d00001 diff --git a/libraries/RTC/examples/AlarmClock/relay_control.png b/libraries/RTC/examples/AlarmClock/relay_control.png new file mode 100644 index 0000000000000000000000000000000000000000..53b0bf49aa81151e068445a8a234c7f0f8d0683f GIT binary patch literal 4345 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 b