mirror of
https://github.com/taigrr/arduinolibs
synced 2025-01-18 04:33:12 -08:00
Introduce an alarm clock control for a radio
This commit is contained in:
parent
109a0ccc85
commit
f5f4282e1a
@ -38,6 +38,7 @@ Field, SoftI2C, DS1307RTC (or DS3232RTC), Melody and
|
|||||||
\li Configurable alarm timeout between 2 and 10 seconds.
|
\li Configurable alarm timeout between 2 and 10 seconds.
|
||||||
\li Single button to activate the back light and/or stop the alarm.
|
\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 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
|
\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.
|
clock module instead of a DS1307-based module.
|
||||||
|
|
||||||
The whole circuit is built on a prototyping shield, with ribbon cables
|
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
|
connecting to the LCD. The Stop Alarm button, piezo buzzer, and radio
|
||||||
shown in this picture and some of the components are soldered to the bottom
|
relay are not shown in this picture and some of the components are
|
||||||
of the shield:
|
soldered to the bottom of the shield:
|
||||||
|
|
||||||
\image html clock_shield.jpg
|
\image html clock_shield.jpg
|
||||||
|
|
||||||
@ -87,6 +88,17 @@ Arduino designs should also work.
|
|||||||
|
|
||||||
\image html kitten_minimal.jpg
|
\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
|
\section clock_ds3232 Using DS3232 instead of DS1307
|
||||||
|
|
||||||
For clock modules based on the DS3232 chip, such as the
|
For clock modules based on the DS3232 chip, such as the
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
#include "LowPowerMelody.h"
|
#include "LowPowerMelody.h"
|
||||||
|
|
||||||
// I/O pins that are used by this sketch.
|
// I/O pins that are used by this sketch.
|
||||||
|
#define RADIO 11
|
||||||
#define BUZZER 12
|
#define BUZZER 12
|
||||||
#define SENSE_BATTERY A1
|
#define SENSE_BATTERY A1
|
||||||
#define RTC_DATA A4
|
#define RTC_DATA A4
|
||||||
@ -70,6 +71,9 @@ LowPowerMelody alarmMelody(BUZZER);
|
|||||||
uint8_t prevHour = 24;
|
uint8_t prevHour = 24;
|
||||||
bool is24HourClock = false;
|
bool is24HourClock = false;
|
||||||
RTCAlarm nextAlarm;
|
RTCAlarm nextAlarm;
|
||||||
|
bool isRadioPlaying = false;
|
||||||
|
bool sawFirstClick = false;
|
||||||
|
unsigned long firstClickTime;
|
||||||
|
|
||||||
// Create the main form and its fields.
|
// Create the main form and its fields.
|
||||||
Form mainForm(lcd);
|
Form mainForm(lcd);
|
||||||
@ -84,6 +88,7 @@ SetMelody alarmSound(mainForm, "Alarm sound");
|
|||||||
SetTime setTime(mainForm, "Set current time");
|
SetTime setTime(mainForm, "Set current time");
|
||||||
SetDate setDate(mainForm, "Set current date");
|
SetDate setDate(mainForm, "Set current date");
|
||||||
BoolField hourMode(mainForm, "Hour display", "24 hour clock", "12 hour clock", false);
|
BoolField hourMode(mainForm, "Hour display", "24 hour clock", "12 hour clock", false);
|
||||||
|
BoolField radioActive(mainForm, "Radio", "On", "Off", false);
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
// Reduce power consumption on I/O pins we don't need.
|
// Reduce power consumption on I/O pins we don't need.
|
||||||
@ -95,7 +100,6 @@ void setup() {
|
|||||||
unusedPin(1);
|
unusedPin(1);
|
||||||
unusedPin(2);
|
unusedPin(2);
|
||||||
unusedPin(10);
|
unusedPin(10);
|
||||||
unusedPin(11);
|
|
||||||
unusedPin(13);
|
unusedPin(13);
|
||||||
|
|
||||||
// Turn off peripherals we don't need.
|
// Turn off peripherals we don't need.
|
||||||
@ -131,6 +135,11 @@ void setup() {
|
|||||||
frontScreen.setDate(date);
|
frontScreen.setDate(date);
|
||||||
findNextAlarm();
|
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.
|
// Show the main form for the first time.
|
||||||
mainForm.show();
|
mainForm.show();
|
||||||
}
|
}
|
||||||
@ -184,6 +193,12 @@ void loop() {
|
|||||||
rtc.writeByte(SETTING_SNOOZE, (byte)snooze.value());
|
rtc.writeByte(SETTING_SNOOZE, (byte)snooze.value());
|
||||||
} else if (alarmSound.isCurrent()) {
|
} else if (alarmSound.isCurrent()) {
|
||||||
rtc.writeByte(SETTING_MELODY, (byte)alarmSound.value());
|
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.
|
prevHour = 24; // Force an update of the main screen.
|
||||||
findNextAlarm(); // Update the time of the next alarm event.
|
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.
|
// No alarm playing, so put the device to sleep to save power.
|
||||||
sleepFor(SLEEP_15_MS);
|
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)
|
inline int timeToAlarm(const RTCTime ¤tTime, const RTCAlarm &alarm)
|
||||||
@ -279,3 +309,17 @@ void findNextAlarm(const RTCTime ¤tTime, const RTCAlarm &alarm)
|
|||||||
nextAlarm = alarm;
|
nextAlarm = alarm;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void turnRadioOn()
|
||||||
|
{
|
||||||
|
isRadioPlaying = true;
|
||||||
|
digitalWrite(RADIO, HIGH);
|
||||||
|
radioActive.setValue(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void turnRadioOff()
|
||||||
|
{
|
||||||
|
isRadioPlaying = false;
|
||||||
|
digitalWrite(RADIO, LOW);
|
||||||
|
radioActive.setValue(false);
|
||||||
|
}
|
||||||
|
@ -24,9 +24,25 @@
|
|||||||
#include <avr/power.h>
|
#include <avr/power.h>
|
||||||
|
|
||||||
extern void findNextAlarm();
|
extern void findNextAlarm();
|
||||||
|
extern void turnRadioOn();
|
||||||
|
extern void turnRadioOff();
|
||||||
|
|
||||||
|
bool LowPowerMelody::isPlaying() const
|
||||||
|
{
|
||||||
|
if (radioMode)
|
||||||
|
return radioAlarmActive;
|
||||||
|
else
|
||||||
|
return Melody::isPlaying();
|
||||||
|
}
|
||||||
|
|
||||||
void LowPowerMelody::play()
|
void LowPowerMelody::play()
|
||||||
{
|
{
|
||||||
|
if (radioMode) {
|
||||||
|
turnRadioOn();
|
||||||
|
radioAlarmActive = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Turn on Timer2.
|
// Turn on Timer2.
|
||||||
power_timer2_enable();
|
power_timer2_enable();
|
||||||
|
|
||||||
@ -36,6 +52,9 @@ void LowPowerMelody::play()
|
|||||||
|
|
||||||
void LowPowerMelody::playOnce()
|
void LowPowerMelody::playOnce()
|
||||||
{
|
{
|
||||||
|
if (radioMode)
|
||||||
|
return;
|
||||||
|
|
||||||
// Turn on Timer2.
|
// Turn on Timer2.
|
||||||
power_timer2_enable();
|
power_timer2_enable();
|
||||||
|
|
||||||
@ -45,6 +64,12 @@ void LowPowerMelody::playOnce()
|
|||||||
|
|
||||||
void LowPowerMelody::stop()
|
void LowPowerMelody::stop()
|
||||||
{
|
{
|
||||||
|
if (radioMode) {
|
||||||
|
turnRadioOff();
|
||||||
|
radioAlarmActive = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Stop the melody playing.
|
// Stop the melody playing.
|
||||||
Melody::stop();
|
Melody::stop();
|
||||||
|
|
||||||
|
@ -27,11 +27,20 @@
|
|||||||
|
|
||||||
class LowPowerMelody : public Melody {
|
class LowPowerMelody : public Melody {
|
||||||
public:
|
public:
|
||||||
LowPowerMelody(uint8_t pin) : Melody(pin) {}
|
LowPowerMelody(uint8_t pin)
|
||||||
|
: Melody(pin), radioMode(false), radioAlarmActive(false) {}
|
||||||
|
|
||||||
|
bool isPlaying() const;
|
||||||
void play();
|
void play();
|
||||||
void playOnce();
|
void playOnce();
|
||||||
void stop();
|
void stop();
|
||||||
|
|
||||||
|
bool isRadioMode() const { return radioMode; }
|
||||||
|
void setRadioMode(bool mode) { radioMode = mode; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool radioMode;
|
||||||
|
bool radioAlarmActive;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -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_FourBeeps[] PROGMEM = "Four beeps";
|
||||||
static const char item_Haircut[] PROGMEM = "Shave 'n haircut";
|
static const char item_Haircut[] PROGMEM = "Shave 'n haircut";
|
||||||
static const char item_SOS[] PROGMEM = "S.O.S.";
|
static const char item_SOS[] PROGMEM = "S.O.S.";
|
||||||
|
static const char item_Radio[] PROGMEM = "Radio";
|
||||||
static ListItem melodyNames[] PROGMEM = {
|
static ListItem melodyNames[] PROGMEM = {
|
||||||
item_FourBeeps,
|
item_FourBeeps,
|
||||||
item_Haircut,
|
item_Haircut,
|
||||||
item_SOS,
|
item_SOS,
|
||||||
|
item_Radio,
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -79,12 +81,19 @@ void SetMelody::updateMelody()
|
|||||||
switch (value()) {
|
switch (value()) {
|
||||||
case 0: default:
|
case 0: default:
|
||||||
alarmMelody.setMelody(defaultMelodyNotes, defaultMelodyLengths, sizeof(defaultMelodyLengths));
|
alarmMelody.setMelody(defaultMelodyNotes, defaultMelodyLengths, sizeof(defaultMelodyLengths));
|
||||||
|
alarmMelody.setRadioMode(false);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
alarmMelody.setMelody(haircutNotes, haircutLengths, sizeof(haircutLengths));
|
alarmMelody.setMelody(haircutNotes, haircutLengths, sizeof(haircutLengths));
|
||||||
|
alarmMelody.setRadioMode(false);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
alarmMelody.setMelody(sosNotes, sosLengths, sizeof(sosLengths));
|
alarmMelody.setMelody(sosNotes, sosLengths, sizeof(sosLengths));
|
||||||
|
alarmMelody.setRadioMode(false);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
alarmMelody.setMelody(defaultMelodyNotes, defaultMelodyLengths, sizeof(defaultMelodyLengths));
|
||||||
|
alarmMelody.setRadioMode(true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -423,6 +423,54 @@ Single
|
|||||||
2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2
|
2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2
|
||||||
10575 4275 10480 4275
|
10575 4275 10480 4275
|
||||||
-6
|
-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
|
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
|
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
|
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
|
11475 3960 11475 4050
|
||||||
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
|
||||||
10575 4275 11115 4275
|
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 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 405 8730 1710 GND\001
|
||||||
4 0 0 50 -1 0 12 4.7124 4 135 240 8955 1890 5V\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 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 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 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
|
||||||
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 38 KiB |
95
libraries/RTC/examples/AlarmClock/relay_control.fig
Normal file
95
libraries/RTC/examples/AlarmClock/relay_control.fig
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
#FIG 3.2 Produced by xfig version 3.2.5b
|
||||||
|
Landscape
|
||||||
|
Center
|
||||||
|
Metric
|
||||||
|
A4
|
||||||
|
100.00
|
||||||
|
Single
|
||||||
|
-2
|
||||||
|
1200 2
|
||||||
|
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
|
||||||
|
6 3960 6660 4140 6930
|
||||||
|
2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2
|
||||||
|
4035 6930 4065 6930
|
||||||
|
2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2
|
||||||
|
4000 6885 4100 6885
|
||||||
|
2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2
|
||||||
|
3960 6840 4140 6840
|
||||||
|
2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2
|
||||||
|
4050 6660 4050 6840
|
||||||
|
-6
|
||||||
|
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 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 6435 3375 6435
|
||||||
|
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3
|
||||||
|
1 1 1.00 60.00 120.00
|
||||||
|
4410 6300 4050 6300 4050 5400
|
||||||
|
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
|
||||||
|
5175 5850 5175 5400
|
||||||
|
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
|
||||||
|
4050 6660 3375 6660
|
||||||
|
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 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 345 4995 5355 D11\001
|
||||||
|
4 0 0 50 -1 0 12 0.0000 4 135 240 3960 5355 5V\001
|
||||||
|
4 0 0 50 -1 0 12 0.0000 4 135 765 2520 6615 To Radio\001
|
BIN
libraries/RTC/examples/AlarmClock/relay_control.pdf
Normal file
BIN
libraries/RTC/examples/AlarmClock/relay_control.pdf
Normal file
Binary file not shown.
BIN
libraries/RTC/examples/AlarmClock/relay_control.png
Normal file
BIN
libraries/RTC/examples/AlarmClock/relay_control.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
Loading…
x
Reference in New Issue
Block a user