From 23de656b9fb56ec77ff26c368eab7915e8ce29c3 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Wed, 16 May 2012 11:56:03 +1000 Subject: [PATCH] Add clock circuit details to the repo --- AlarmClock/AlarmClock.pde | 19 +- AlarmClock/alarm_circuit.fig | 557 +++++++++++++++++++++++++++ AlarmClock/alarm_circuit.pdf | Bin 0 -> 15220 bytes AlarmClock/alarm_circuit.png | Bin 0 -> 36172 bytes AlarmClock/main_circuit.fig | 438 --------------------- AlarmClock/transistor_back_light.fig | 64 +++ AlarmClock/transistor_back_light.pdf | Bin 0 -> 5427 bytes AlarmClock/transistor_back_light.png | Bin 0 -> 3285 bytes doc/alarm-clock.dox | 42 +- 9 files changed, 675 insertions(+), 445 deletions(-) create mode 100644 AlarmClock/alarm_circuit.fig create mode 100644 AlarmClock/alarm_circuit.pdf create mode 100644 AlarmClock/alarm_circuit.png delete mode 100644 AlarmClock/main_circuit.fig create mode 100644 AlarmClock/transistor_back_light.fig create mode 100644 AlarmClock/transistor_back_light.pdf create mode 100644 AlarmClock/transistor_back_light.png diff --git a/AlarmClock/AlarmClock.pde b/AlarmClock/AlarmClock.pde index 38aad3c9..dfddbb12 100644 --- a/AlarmClock/AlarmClock.pde +++ b/AlarmClock/AlarmClock.pde @@ -25,6 +25,7 @@ #include #include #include +#include // I/O pins that are used by this sketch. #define BUZZER 12 @@ -53,7 +54,10 @@ FreetronicsLCD lcd; BitBangI2C bus(RTC_DATA, RTC_CLOCK); DS1307RTC rtc(bus, RTC_ONE_HZ); -bool isAlarmOn = false; +// Melody to play when the alarm sounds. +int alarmNotes[] = {NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_REST}; +byte alarmLengths[] = {8, 8, 8, 8, 2}; +Melody alarmMelody(BUZZER); // Specialized time/date display field for the front screen of the clock. class FrontScreenField : public Field @@ -345,6 +349,11 @@ void setup() { //lcd.enableScreenSaver(); + // Initialize the alarm melody. + alarmMelody.setMelody(alarmNotes, alarmLengths, sizeof(alarmLengths)); + alarmMelody.setLoopDuration(120000UL); + //alarmMelody.play(); + // Show the main form for the first time. mainForm.show(); } @@ -378,8 +387,8 @@ void loop() { prevHour = 24; // Force an update of the main screen. } - // If the alarm is on and a button was pressed, then turn off the alarm. - if (event != LC_BUTTON_NONE && isAlarmOn) { - // TODO - } + // If the alarm is playing and a button was pressed, then turn it off. + if (event != LCD_BUTTON_NONE) + alarmMelody.stop(); + alarmMelody.run(); } diff --git a/AlarmClock/alarm_circuit.fig b/AlarmClock/alarm_circuit.fig new file mode 100644 index 00000000..3e8ff66f --- /dev/null +++ b/AlarmClock/alarm_circuit.fig @@ -0,0 +1,557 @@ +#FIG 3.2 Produced by xfig version 3.2.5b +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +5 1 0 1 0 7 50 -1 -1 0.000 0 0 0 0 11475.000 2700.000 11430 2700 11475 2655 11520 2700 +6 11430 3510 11520 3960 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11475 3865 11475 3960 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 + 11475 3600 11435 3627 11515 3681 11435 3735 11515 3789 11435 3843 + 11475 3870 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11475 3510 11475 3605 +-6 +6 11115 3915 11610 4500 +1 3 0 1 0 -1 0 0 -1 0.000 1 5.4978 11400 4185 191 191 11400 4185 11591 4185 +2 3 0 1 0 -1 0 0 20 0.000 0 0 0 0 0 4 + 11395 4185 11445 4160 11445 4210 11395 4185 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 3 + 11385 4275 11475 4275 11475 4500 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 3 + 11385 4185 11475 4185 11475 4275 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11385 4050 11385 4320 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 3 + 11385 4095 11475 4095 11475 3915 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 3 + 11340 4095 11340 4275 11115 4275 +-6 +6 11385 4500 11565 4770 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11460 4770 11490 4770 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11425 4725 11525 4725 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11385 4680 11565 4680 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11475 4500 11475 4680 +-6 +6 3960 1125 4140 1440 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 4050 1260 4050 1125 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 4050 1305 4050 1440 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 3960 1260 4140 1260 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 3960 1305 4140 1305 +-6 +6 4005 1620 4095 1710 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 4050 1665 30 30 4050 1665 4050 1695 +-6 +6 10800 2520 11250 2745 +2 1 0 1 0 -1 0 0 20 0.000 0 0 -1 0 0 4 + 11025 2655 11060 2585 10990 2585 11025 2655 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10895 2700 10800 2700 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 + 11160 2700 11133 2660 11079 2740 11025 2660 10971 2740 10917 2660 + 10890 2700 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11250 2700 11155 2700 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11025 2520 11025 2610 +-6 +6 10485 2925 10665 3195 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10560 3195 10590 3195 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10525 3150 10625 3150 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10485 3105 10665 3105 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10575 2925 10575 3105 +-6 +6 11655 2655 11745 2745 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 11700 2700 30 30 11700 2700 11700 2730 +-6 +6 10530 2655 10620 2745 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 10575 2700 30 30 10575 2700 10575 2730 +-6 +6 9000 5580 9450 5670 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 9095 5625 9000 5625 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 + 9360 5625 9333 5585 9279 5665 9225 5585 9171 5665 9117 5585 + 9090 5625 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 9450 5625 9355 5625 +-6 +6 8325 5580 8775 5670 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8420 5625 8325 5625 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 + 8685 5625 8658 5585 8604 5665 8550 5585 8496 5665 8442 5585 + 8415 5625 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8775 5625 8680 5625 +-6 +6 9675 5580 10125 5670 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 9770 5625 9675 5625 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 + 10035 5625 10008 5585 9954 5665 9900 5585 9846 5665 9792 5585 + 9765 5625 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10125 5625 10030 5625 +-6 +6 10350 5580 10800 5670 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10445 5625 10350 5625 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 + 10710 5625 10683 5585 10629 5665 10575 5585 10521 5665 10467 5585 + 10440 5625 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10800 5625 10705 5625 +-6 +6 10845 5850 11070 6390 +1 3 0 1 0 -1 0 0 -1 0.000 1 1.5708 11025 6255 38 38 11025 6255 11025 6217 +1 3 0 1 0 -1 0 0 -1 0.000 1 1.5708 11025 5985 38 38 11025 5985 11025 5947 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11025 6300 11025 6390 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11025 5940 11025 5850 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10935 6120 10845 6120 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 10935 6255 10935 5985 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 10845 6165 10845 6075 +-6 +6 10935 6345 11115 6615 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11010 6615 11040 6615 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10975 6570 11075 6570 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10935 6525 11115 6525 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 11025 6345 11025 6525 +-6 +6 9360 5850 9585 6390 +1 3 0 1 0 -1 0 0 -1 0.000 1 1.5708 9540 6255 38 38 9540 6255 9540 6217 +1 3 0 1 0 -1 0 0 -1 0.000 1 1.5708 9540 5985 38 38 9540 5985 9540 5947 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 9540 6300 9540 6390 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 9540 5940 9540 5850 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 9450 6120 9360 6120 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 9450 6255 9450 5985 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 9360 6165 9360 6075 +-6 +6 8730 5850 8955 6390 +1 3 0 1 0 -1 0 0 -1 0.000 1 1.5708 8910 6255 38 38 8910 6255 8910 6217 +1 3 0 1 0 -1 0 0 -1 0.000 1 1.5708 8910 5985 38 38 8910 5985 8910 5947 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8910 6300 8910 6390 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8910 5940 8910 5850 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8820 6120 8730 6120 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 8820 6255 8820 5985 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 8730 6165 8730 6075 +-6 +6 8820 6345 9000 6615 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8895 6615 8925 6615 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8860 6570 8960 6570 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8820 6525 9000 6525 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8910 6345 8910 6525 +-6 +6 9450 6345 9630 6615 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 9525 6615 9555 6615 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 9490 6570 9590 6570 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 9450 6525 9630 6525 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 9540 6345 9540 6525 +-6 +6 10035 5850 10260 6390 +1 3 0 1 0 -1 0 0 -1 0.000 1 1.5708 10215 6255 38 38 10215 6255 10215 6217 +1 3 0 1 0 -1 0 0 -1 0.000 1 1.5708 10215 5985 38 38 10215 5985 10215 5947 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10215 6300 10215 6390 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10215 5940 10215 5850 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10125 6120 10035 6120 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 10125 6255 10125 5985 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 10035 6165 10035 6075 +-6 +6 10125 6345 10305 6615 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10200 6615 10230 6615 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10165 6570 10265 6570 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10125 6525 10305 6525 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 10215 6345 10215 6525 +-6 +6 8550 4905 9000 4995 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8645 4950 8550 4950 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 + 8910 4950 8883 4910 8829 4990 8775 4910 8721 4990 8667 4910 + 8640 4950 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 9000 4950 8905 4950 +-6 +6 8055 5850 8280 6390 +1 3 0 1 0 -1 0 0 -1 0.000 1 1.5708 8235 6255 38 38 8235 6255 8235 6217 +1 3 0 1 0 -1 0 0 -1 0.000 1 1.5708 8235 5985 38 38 8235 5985 8235 5947 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8235 6300 8235 6390 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8235 5940 8235 5850 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8145 6120 8055 6120 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 8145 6255 8145 5985 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 8055 6165 8055 6075 +-6 +6 8145 6345 8325 6615 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8220 6615 8250 6615 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8185 6570 8285 6570 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8145 6525 8325 6525 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 8235 6345 8235 6525 +-6 +6 8190 4905 8280 4995 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 8235 4950 30 30 8235 4950 8235 4980 +-6 +6 8190 5580 8280 5670 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 8235 5625 30 30 8235 5625 8235 5655 +-6 +6 8865 5580 8955 5670 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 8910 5625 30 30 8910 5625 8910 5655 +-6 +6 9495 5580 9585 5670 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 9540 5625 30 30 9540 5625 9540 5655 +-6 +6 10170 5580 10260 5670 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 10215 5625 30 30 10215 5625 10215 5655 +-6 +6 2610 1485 3150 1710 +1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 2745 1665 38 38 2745 1665 2783 1665 +1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 3015 1665 38 38 3015 1665 3053 1665 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 2700 1665 2610 1665 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 3060 1665 3150 1665 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 2880 1575 2880 1485 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 2745 1575 3015 1575 +2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 + 2835 1485 2925 1485 +-6 +6 2160 1665 2340 1935 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 2235 1935 2265 1935 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 2200 1890 2300 1890 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 2160 1845 2340 1845 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 2250 1665 2250 1845 +-6 +6 450 2250 4185 5625 +5 1 0 1 0 7 50 -1 -1 0.000 0 0 0 0 3825.000 3375.000 3825 3330 3870 3375 3825 3420 +5 1 0 1 0 7 50 -1 -1 0.000 0 0 0 0 3825.000 3690.000 3825 3645 3870 3690 3825 3735 +5 1 0 1 0 7 50 -1 -1 0.000 0 0 0 0 3825.000 4050.000 3825 4005 3870 4050 3825 4095 +6 1665 2925 1935 3375 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 1800 3240 1800 3375 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 1710 3240 1890 3240 +2 2 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 5 + 1690 3105 1910 3105 1910 3195 1690 3195 1690 3105 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 1710 3060 1890 3060 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 1800 3060 1800 2925 +-6 +6 1665 3600 1935 4140 +2 1 0 1 0 -1 0 0 0 0.000 0 0 -1 0 0 2 + 1800 3915 1800 4140 +2 2 0 1 0 -1 0 0 20 0.000 0 0 -1 0 0 5 + 1710 3870 1890 3870 1890 3915 1710 3915 1710 3870 +2 1 0 1 0 -1 0 0 0 0.000 0 0 -1 0 0 2 + 1665 3825 1935 3825 +2 1 0 1 0 -1 0 0 0 0.000 0 0 -1 0 0 2 + 1800 3825 1800 3600 +-6 +6 1755 4095 1845 4185 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 1800 4140 30 30 1800 4140 1800 4170 +-6 +6 2655 4635 2970 4815 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 2835 4725 2970 4725 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 2790 4725 2655 4725 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 2835 4635 2835 4815 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 2790 4635 2790 4815 +-6 +6 1710 4860 1890 5130 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 1785 5130 1815 5130 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 1750 5085 1850 5085 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 1710 5040 1890 5040 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 1800 4860 1800 5040 +-6 +6 3780 2880 3870 2970 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 3825 2925 30 30 3825 2925 3825 2955 +-6 +6 1755 4680 1845 4770 +1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 1800 4725 30 30 1800 4725 1800 4755 +-6 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 1800 3375 2250 3375 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 1800 2925 2250 2925 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 1800 3600 2250 3600 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 1800 4140 2250 4140 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 2250 2700 3375 2700 3375 4275 2250 4275 2250 2700 +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 + 3375 2925 3825 2925 3825 2475 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 3825 2925 3825 3330 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 3825 3420 3825 3645 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 3825 3735 3825 4005 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 + 3825 4095 3825 4725 2970 4725 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 1800 4140 1800 4860 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 2700 4725 1800 4725 +2 2 1 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 5 + 450 2250 4185 2250 4185 5625 450 5625 450 2250 +4 0 0 50 -1 0 12 0.0000 4 135 105 2115 2880 1\001 +4 0 0 50 -1 0 12 0.0000 4 135 105 2115 3330 2\001 +4 0 0 50 -1 0 12 0.0000 4 135 900 630 3195 32.768kHz\001 +4 0 0 50 -1 0 12 0.0000 4 135 390 1080 3870 3.3V\001 +4 0 0 50 -1 0 12 0.0000 4 165 810 855 4095 (CR1225)\001 +4 0 0 50 -1 0 12 0.0000 4 135 105 2115 4095 4\001 +4 0 0 50 -1 0 12 0.0000 4 135 105 2115 3555 3\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 3690 2430 5V\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 2295 2970 X1\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 2295 3420 X2\001 +4 0 0 50 -1 0 12 0.0000 4 135 420 2295 3645 VBat\001 +4 0 0 50 -1 0 12 0.0000 4 135 405 2295 4185 GND\001 +4 0 0 50 -1 0 12 0.0000 4 135 405 2925 2970 VCC\001 +4 0 0 50 -1 0 12 0.0000 4 135 105 3420 3645 6\001 +4 0 0 50 -1 0 12 0.0000 4 135 105 3420 3330 7\001 +4 0 0 50 -1 0 12 0.0000 4 135 105 3420 2880 8\001 +4 0 0 50 -1 0 12 0.0000 4 135 375 2925 4095 SDA\001 +4 0 0 50 -1 0 12 0.0000 4 135 360 2925 3735 SCL\001 +4 0 0 50 -1 0 12 0.0000 4 165 420 2880 3420 SQW\001 +4 0 0 50 -1 0 12 0.0000 4 135 525 2565 4995 100nF\001 +4 0 0 50 -1 0 12 0.0000 4 135 105 3420 4005 5\001 +4 0 0 50 -1 0 12 0.0000 4 180 2790 585 5490 SparkFun Realtime Clock Module\001 +4 0 0 50 -1 0 12 0.0000 4 135 660 2520 2565 DS1307\001 +-6 +6 6615 5625 6885 6075 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6750 5940 6750 6075 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6660 5940 6840 5940 +2 2 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 5 + 6640 5805 6860 5805 6860 5895 6640 5895 6640 5805 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6660 5760 6840 5760 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6750 5760 6750 5625 +-6 +6 6660 6075 6840 6345 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6735 6345 6765 6345 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6700 6300 6800 6300 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6660 6255 6840 6255 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6750 6075 6750 6255 +-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 + 8775 2250 8775 2475 7425 2475 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 + 9000 2250 9000 2700 7425 2700 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 + 9225 2250 9225 2925 7425 2925 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 + 9450 2250 9450 3150 7425 3150 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 + 9675 2250 9675 3375 7425 3375 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 + 9900 2250 9900 3600 7425 3600 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 + 10125 2248 10125 3825 7425 3823 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 + 10350 2250 10350 4050 7425 4050 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 8550 1350 11925 1350 11925 2250 8550 2250 8550 1350 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 4 + 1 1 1.00 60.00 120.00 + 11700 2250 11700 2700 12375 2700 12375 2025 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 11475 2250 11475 3510 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 11160 4275 7425 4275 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 4050 1665 4050 1395 +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 1170 4050 900 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 11025 2565 11025 2250 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 + 10800 2700 10575 2700 10575 2925 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 11250 2700 11430 2700 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 11520 2700 11700 2700 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 10575 2700 10575 2250 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 + 7425 4950 8235 4950 8235 5895 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 8730 5625 9045 5625 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 9450 5625 9675 5625 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 10125 5625 10350 5625 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 + 10755 5625 11025 5625 11025 5850 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 8910 5850 8910 5625 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 9540 5895 9540 5625 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 10215 5895 10215 5625 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 8595 4950 8190 4950 +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 + 8955 4950 9225 4950 9225 4725 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 8370 5625 8235 5625 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 3375 3375 4500 3375 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 3375 3690 4500 3690 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 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 + 4500 1665 3150 1665 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 2610 1665 2250 1665 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 6750 5670 6750 5400 +2 2 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5 + 7740 1125 13050 1125 13050 7425 7740 7425 7740 1125 +4 0 0 50 -1 0 12 0.0000 4 135 675 5625 3330 Arduino\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 240 8955 1890 5V\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 6975 2745 5V\001 +4 0 0 50 -1 0 12 0.0000 4 135 405 6930 2520 GND\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 6975 2970 D9\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 6975 3195 D8\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 6975 3420 D7\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 6975 3645 D6\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 6975 3870 D5\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 6975 4095 D4\001 +4 0 0 50 -1 0 12 4.7124 4 135 120 9180 2025 E\001 +4 0 0 50 -1 0 12 4.7124 4 135 240 9405 1935 RS\001 +4 0 0 50 -1 0 12 0.0000 4 135 1545 9495 1665 16x2 LCD Module\001 +4 0 0 50 -1 0 12 4.7124 4 135 240 9630 1935 D7\001 +4 0 0 50 -1 0 12 4.7124 4 135 240 9855 1935 D6\001 +4 0 0 50 -1 0 12 4.7124 4 135 240 10080 1935 D5\001 +4 0 0 50 -1 0 12 4.7124 4 135 240 10305 1935 D4\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 12285 1935 5V\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 6975 4320 D3\001 +4 0 0 50 -1 0 12 0.0000 4 135 660 11700 4230 2N7000\001 +4 0 0 50 -1 0 12 0.0000 4 135 450 11700 3780 150R\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 3960 765 5V\001 +4 0 0 50 -1 0 12 0.0000 4 135 525 3330 1350 100nF\001 +4 0 0 50 -1 0 12 4.7124 4 135 315 11430 1845 BL-\001 +4 0 0 50 -1 0 12 4.7124 4 135 360 11655 1845 BL+\001 +4 0 0 50 -1 0 12 0.0000 4 135 345 10845 2925 10K\001 +4 0 0 50 -1 0 12 4.7124 4 135 405 10980 1800 Cont\001 +4 0 0 50 -1 0 12 4.7124 4 135 375 10530 1845 R/W\001 +4 0 0 50 -1 0 12 0.0000 4 135 450 8370 5490 330R\001 +4 0 0 50 -1 0 12 0.0000 4 135 450 9000 5490 620R\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 9765 5490 1K\001 +4 0 0 50 -1 0 12 0.0000 4 135 345 10395 5490 3K3\001 +4 0 0 50 -1 0 12 4.7124 4 135 480 9495 6750 Down\001 +4 0 0 50 -1 0 12 4.7124 4 135 330 10125 6750 Left\001 +4 0 0 50 -1 0 12 4.7124 4 180 240 8820 6750 Up\001 +4 0 0 50 -1 0 12 0.0000 4 180 375 11250 6075 Stop\001 +4 0 0 50 -1 0 12 0.0000 4 135 495 11250 6300 Alarm\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 9135 4635 5V\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 8640 4815 2K\001 +4 0 0 50 -1 0 12 4.7124 4 180 465 8145 6750 Right\001 +4 0 0 50 -1 0 12 0.0000 4 135 1590 11250 5175 If 1/4 watt resistors:\001 +4 0 0 50 -1 0 12 0.0000 4 135 1110 11250 5400 2K = 1K + 1K\001 +4 0 0 50 -1 0 12 0.0000 4 135 1740 11250 5625 620R = 470R + 150R\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 6975 4995 A0\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 4545 3420 A5\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 4545 3735 A4\001 +4 0 0 50 -1 0 12 0.0000 4 135 240 4545 4095 A3\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 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 570 6975 6030 Buzzer\001 diff --git a/AlarmClock/alarm_circuit.pdf b/AlarmClock/alarm_circuit.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dcbdb2b6b46c7cafa57b1def60726cb4e32693cc GIT binary patch literal 15220 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 literal 0 HcmV?d00001 diff --git a/AlarmClock/main_circuit.fig b/AlarmClock/main_circuit.fig deleted file mode 100644 index 74b506ed..00000000 --- a/AlarmClock/main_circuit.fig +++ /dev/null @@ -1,438 +0,0 @@ -#FIG 3.2 Produced by xfig version 3.2.5b -Landscape -Center -Metric -A4 -100.00 -Single --2 -1200 2 -5 1 0 1 0 7 50 -1 -1 0.000 0 0 0 0 10800.000 3600.000 10755 3600 10800 3555 10845 3600 -6 3195 2700 3420 3240 -1 3 0 1 0 -1 0 0 -1 0.000 1 1.5708 3375 3105 38 38 3375 3105 3375 3067 -1 3 0 1 0 -1 0 0 -1 0.000 1 1.5708 3375 2835 38 38 3375 2835 3375 2797 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 3375 3150 3375 3240 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 3375 2790 3375 2700 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 3285 2970 3195 2970 -2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 - 3285 3105 3285 2835 -2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 - 3195 3015 3195 2925 --6 -6 3285 3240 3465 3510 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 3360 3510 3390 3510 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 3325 3465 3425 3465 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 3285 3420 3465 3420 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 3375 3240 3375 3420 --6 -6 1755 3375 1845 3825 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1800 3730 1800 3825 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 - 1800 3465 1760 3492 1840 3546 1760 3600 1840 3654 1760 3708 - 1800 3735 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1800 3375 1800 3470 --6 -6 1755 3825 1845 4275 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1800 4180 1800 4275 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 - 1800 3915 1760 3942 1840 3996 1760 4050 1840 4104 1760 4158 - 1800 4185 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1800 3825 1800 3920 --6 -6 1755 4230 1845 4680 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1800 4585 1800 4680 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 - 1800 4320 1760 4347 1840 4401 1760 4455 1840 4509 1760 4563 - 1800 4590 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1800 4230 1800 4325 --6 -6 1755 4680 1845 5130 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1800 5035 1800 5130 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 - 1800 4770 1760 4797 1840 4851 1760 4905 1840 4959 1760 5013 - 1800 5040 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1800 4680 1800 4775 --6 -6 1755 5130 1845 5580 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1800 5485 1800 5580 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 - 1800 5220 1760 5247 1840 5301 1760 5355 1840 5409 1760 5463 - 1800 5490 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1800 5130 1800 5225 --6 -6 990 3645 1530 3870 -1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 1125 3825 38 38 1125 3825 1163 3825 -1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 1395 3825 38 38 1395 3825 1433 3825 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1080 3825 990 3825 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1440 3825 1530 3825 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1260 3735 1260 3645 -2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 - 1125 3735 1395 3735 -2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 - 1215 3645 1305 3645 --6 -6 990 4095 1530 4320 -1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 1125 4275 38 38 1125 4275 1163 4275 -1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 1395 4275 38 38 1395 4275 1433 4275 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1080 4275 990 4275 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1440 4275 1530 4275 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1260 4185 1260 4095 -2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 - 1125 4185 1395 4185 -2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 - 1215 4095 1305 4095 --6 -6 990 4545 1530 4770 -1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 1125 4725 38 38 1125 4725 1163 4725 -1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 1395 4725 38 38 1395 4725 1433 4725 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1080 4725 990 4725 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1440 4725 1530 4725 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1260 4635 1260 4545 -2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 - 1125 4635 1395 4635 -2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 - 1215 4545 1305 4545 --6 -6 990 5445 1530 5670 -1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 1125 5625 38 38 1125 5625 1163 5625 -1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 1395 5625 38 38 1395 5625 1433 5625 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1080 5625 990 5625 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1440 5625 1530 5625 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1260 5535 1260 5445 -2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 - 1125 5535 1395 5535 -2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 - 1215 5445 1305 5445 --6 -6 585 5805 765 6075 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 660 6075 690 6075 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 625 6030 725 6030 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 585 5985 765 5985 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 675 5805 675 5985 --6 -6 1755 3780 1845 3870 -1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 1800 3825 30 30 1800 3825 1800 3855 --6 -6 1755 4230 1845 4320 -1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 1800 4275 30 30 1800 4275 1800 4305 --6 -6 1755 4680 1845 4770 -1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 1800 4725 30 30 1800 4725 1800 4755 --6 -6 630 5580 720 5670 -1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 675 5625 30 30 675 5625 675 5655 --6 -6 630 4680 720 4770 -1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 675 4725 30 30 675 4725 675 4755 --6 -6 630 4230 720 4320 -1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 675 4275 30 30 675 4275 675 4305 --6 -6 10755 4410 10845 4860 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 10800 4765 10800 4860 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 - 10800 4500 10760 4527 10840 4581 10760 4635 10840 4689 10760 4743 - 10800 4770 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 10800 4410 10800 4505 --6 -6 10440 4815 10935 5400 -1 3 0 1 0 -1 0 0 -1 0.000 1 5.4978 10725 5085 191 191 10725 5085 10916 5085 -2 3 0 1 0 -1 0 0 20 0.000 0 0 0 0 0 4 - 10720 5085 10770 5060 10770 5110 10720 5085 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 3 - 10710 5175 10800 5175 10800 5400 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 3 - 10710 5085 10800 5085 10800 5175 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 10710 4950 10710 5220 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 3 - 10710 4995 10800 4995 10800 4815 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 3 - 10665 4995 10665 5175 10440 5175 --6 -6 10710 5400 10890 5670 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 10785 5670 10815 5670 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 10750 5625 10850 5625 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 10710 5580 10890 5580 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 10800 5400 10800 5580 --6 -6 3285 2025 3465 2340 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 3375 2160 3375 2025 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 3375 2205 3375 2340 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 3285 2160 3465 2160 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 3285 2205 3465 2205 --6 -6 3330 2520 3420 2610 -1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 3375 2565 30 30 3375 2565 3375 2595 --6 -6 10125 3420 10575 3645 -2 1 0 1 0 -1 0 0 20 0.000 0 0 -1 0 0 4 - 10350 3555 10385 3485 10315 3485 10350 3555 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 10220 3600 10125 3600 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 - 10485 3600 10458 3560 10404 3640 10350 3560 10296 3640 10242 3560 - 10215 3600 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 10575 3600 10480 3600 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 10350 3420 10350 3510 --6 -6 9810 3825 9990 4095 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 9885 4095 9915 4095 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 9850 4050 9950 4050 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 9810 4005 9990 4005 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 9900 3825 9900 4005 --6 -6 10980 3555 11070 3645 -1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 11025 3600 30 30 11025 3600 11025 3630 --6 -6 7290 2475 7560 2925 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 7425 2790 7425 2925 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 7335 2790 7515 2790 -2 2 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 5 - 7315 2655 7535 2655 7535 2745 7315 2745 7315 2655 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 7335 2610 7515 2610 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 7425 2610 7425 2475 --6 -6 7335 2880 7515 3150 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 7410 3150 7440 3150 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 7375 3105 7475 3105 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 7335 3060 7515 3060 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 7425 2880 7425 3060 --6 -6 1935 7155 2115 7425 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 2010 7425 2040 7425 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1975 7380 2075 7380 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1935 7335 2115 7335 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 2025 7155 2025 7335 --6 -6 9855 3555 9945 3645 -1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 9900 3600 30 30 9900 3600 9900 3630 --6 -6 990 4995 1530 5220 -1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 1125 5175 38 38 1125 5175 1163 5175 -1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 1395 5175 38 38 1395 5175 1433 5175 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1080 5175 990 5175 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1440 5175 1530 5175 -2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 - 1260 5085 1260 4995 -2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 - 1125 5085 1395 5085 -2 1 0 1 0 -1 0 0 -1 0.000 0 1 -1 0 0 2 - 1215 4995 1305 4995 --6 -6 630 5130 720 5220 -1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 675 5175 30 30 675 5175 675 5205 --6 -6 1755 5130 1845 5220 -1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 1800 5175 30 30 1800 5175 1800 5205 --6 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 3825 2250 6750 2250 6750 6300 3825 6300 3825 2250 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 3375 2745 3375 2565 3825 2565 -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 - 1800 3375 1800 3150 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1800 3825 3825 3825 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1530 3825 1800 3825 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1530 4275 1800 4275 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1530 4725 1800 4725 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1530 5625 1800 5625 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 990 3825 675 3825 675 5850 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 990 4275 675 4275 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1035 4725 675 4725 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 990 5625 675 5625 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1800 5580 1800 5625 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 8100 3150 8100 3375 6750 3375 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 8325 3150 8325 3600 6750 3600 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 8550 3150 8550 3825 6750 3825 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 8775 3150 8775 4050 6750 4050 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 9000 3150 9000 4275 6750 4275 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 9225 3150 9225 4500 6750 4500 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 9450 3148 9450 4725 6750 4723 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 9675 3150 9675 4950 6750 4950 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 7875 2250 11250 2250 11250 3150 7875 3150 7875 2250 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 4 - 1 1 1.00 60.00 120.00 - 11025 3150 11025 3600 11700 3600 11700 2925 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 10800 3150 10800 4410 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 10485 5175 6750 5175 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 3375 2565 3375 2295 -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 - 3375 2070 3375 1800 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 10350 3465 10350 3150 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 10125 3600 9900 3600 9900 3825 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 10575 3600 10755 3600 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 10845 3600 11025 3600 -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 - 3825 4725 3375 4725 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 7425 2475 6750 2475 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 3825 5175 2700 5175 2700 6075 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 3825 5400 2925 5400 2925 6075 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 3825 5625 3150 5625 3150 6075 -2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 - 2250 6075 3600 6075 3600 6975 2250 6975 2250 6075 -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 - 2250 6300 2025 6300 2025 5940 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 3 - 2250 6750 2025 6750 2025 7200 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 9900 3600 9900 3150 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1800 5175 1485 5175 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 - 1035 5175 675 5175 -4 0 0 50 -1 0 12 0.0000 4 135 675 4950 4230 Arduino\001 -4 0 0 50 -1 0 12 0.0000 4 135 450 3915 2610 Reset\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 1710 3060 5V\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 3915 3870 A0\001 -4 0 0 50 -1 0 12 0.0000 4 135 345 1980 5400 3K3\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 1980 4995 1K\001 -4 0 0 50 -1 0 12 0.0000 4 135 450 1980 4545 620R\001 -4 0 0 50 -1 0 12 0.0000 4 135 450 1980 4050 330R\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 1980 3600 2K\001 -4 0 0 50 -1 0 12 0.0000 4 180 240 225 4320 Up\001 -4 0 0 50 -1 0 12 0.0000 4 180 465 90 3870 Right\001 -4 0 0 50 -1 0 12 0.0000 4 135 480 45 4770 Down\001 -4 0 0 50 -1 0 12 0.0000 4 135 495 45 5760 Alarm\001 -4 0 0 50 -1 0 12 0.0000 4 180 375 135 5535 Stop\001 -4 0 0 50 -1 0 12 4.7124 4 135 405 8055 2610 GND\001 -4 0 0 50 -1 0 12 4.7124 4 135 240 8280 2790 5V\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 6300 3645 5V\001 -4 0 0 50 -1 0 12 0.0000 4 135 405 6255 3420 GND\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 6300 3870 D9\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 6300 4095 D8\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 6300 4320 D7\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 6300 4545 D6\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 6300 4770 D5\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 6300 4995 D4\001 -4 0 0 50 -1 0 12 4.7124 4 135 120 8505 2925 E\001 -4 0 0 50 -1 0 12 4.7124 4 135 240 8730 2835 RS\001 -4 0 0 50 -1 0 12 0.0000 4 135 1545 8820 2565 16x2 LCD Module\001 -4 0 0 50 -1 0 12 4.7124 4 135 240 8955 2835 D7\001 -4 0 0 50 -1 0 12 4.7124 4 135 240 9180 2835 D6\001 -4 0 0 50 -1 0 12 4.7124 4 135 240 9405 2835 D5\001 -4 0 0 50 -1 0 12 4.7124 4 135 240 9630 2835 D4\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 11610 2835 5V\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 6300 5220 D2\001 -4 0 0 50 -1 0 12 0.0000 4 135 660 11025 5130 2N7000\001 -4 0 0 50 -1 0 12 0.0000 4 135 450 11025 4680 150R\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 3285 1665 5V\001 -4 0 0 50 -1 0 12 0.0000 4 135 525 2655 2250 100nF\001 -4 0 0 50 -1 0 12 4.7124 4 135 315 10755 2745 BL-\001 -4 0 0 50 -1 0 12 4.7124 4 135 360 10980 2745 BL+\001 -4 0 0 50 -1 0 12 0.0000 4 135 345 10170 3825 10K\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 3915 4770 A1\001 -4 0 0 50 -1 0 12 0.0000 4 180 600 2745 4770 Battery\001 -4 0 0 50 -1 0 12 0.0000 4 135 465 2745 4545 Sense\001 -4 0 0 50 -1 0 12 0.0000 4 135 495 2745 4995 Status\001 -4 0 0 50 -1 0 12 4.7124 4 135 405 10305 2700 Cont\001 -4 0 0 50 -1 0 12 0.0000 4 135 450 7200 2160 Piezo\001 -4 0 0 50 -1 0 12 0.0000 4 135 570 7155 2385 Buzzer\001 -4 0 0 50 -1 0 12 0.0000 4 135 345 6300 2520 D12\001 -4 0 0 50 -1 0 12 4.7124 4 135 375 2655 6120 Data\001 -4 0 0 50 -1 0 12 4.7124 4 135 495 2880 6120 Clock\001 -4 0 0 50 -1 0 12 4.7124 4 135 330 3105 6120 1Hz\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 1935 5850 5V\001 -4 0 0 50 -1 0 12 0.0000 4 135 1080 2430 6840 RTC Module\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 3915 5445 A4\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 3915 5670 A5\001 -4 0 0 50 -1 0 12 0.0000 4 135 240 3915 5220 A3\001 -4 0 0 50 -1 0 12 4.7124 4 135 375 9855 2745 R/W\001 -4 0 0 50 -1 0 12 0.0000 4 135 330 180 5220 Left\001 diff --git a/AlarmClock/transistor_back_light.fig b/AlarmClock/transistor_back_light.fig new file mode 100644 index 00000000..3c9c11c7 --- /dev/null +++ b/AlarmClock/transistor_back_light.fig @@ -0,0 +1,64 @@ +#FIG 3.2 Produced by xfig version 3.2.5b +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +6 6705 2925 6795 3375 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6750 3280 6750 3375 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 + 6750 3015 6710 3042 6790 3096 6710 3150 6790 3204 6710 3258 + 6750 3285 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6750 2925 6750 3020 +-6 +6 6300 3600 6795 4050 +1 3 0 1 0 -1 0 0 -1 0.000 1 0.0000 6570 3825 186 186 6570 3825 6615 4005 +2 1 0 1 0 -1 0 0 20 0.000 0 0 -1 0 0 4 + 6670 3970 6625 3880 6580 3925 6670 3970 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6525 3825 6750 4050 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6525 3825 6750 3600 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6525 3690 6525 3960 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6525 3825 6300 3825 +-6 +6 5580 3780 6030 3870 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 5675 3825 5580 3825 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 7 + 5940 3825 5913 3785 5859 3865 5805 3785 5751 3865 5697 3785 + 5670 3825 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6030 3825 5935 3825 +-6 +6 6660 4050 6840 4320 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6735 4320 6765 4320 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6700 4275 6800 4275 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6660 4230 6840 4230 +2 1 0 1 0 -1 0 0 -1 0.000 0 0 -1 0 0 2 + 6750 4050 6750 4230 +-6 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 6750 3375 6750 3600 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 + 6345 3825 6030 3825 +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 + 5625 3825 5175 3825 +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 + 6750 2970 6750 2475 +4 0 0 50 -1 0 12 0.0000 4 135 240 4815 3870 D3\001 +4 0 0 50 -1 0 12 0.0000 4 135 390 5625 3690 4.7K\001 +4 0 0 50 -1 0 12 0.0000 4 135 450 6885 3240 150R\001 +4 0 0 50 -1 0 12 0.0000 4 135 315 6615 2385 BL-\001 diff --git a/AlarmClock/transistor_back_light.pdf b/AlarmClock/transistor_back_light.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8f188e3656d01c450bc68cf1afe02773fcf96c78 GIT binary patch literal 5427 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 literal 0 HcmV?d00001 diff --git a/AlarmClock/transistor_back_light.png b/AlarmClock/transistor_back_light.png new file mode 100644 index 0000000000000000000000000000000000000000..6342a93cc781e2d24c62758facb31a585e14d4de GIT binary patch literal 3285 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 +16x2 LCD Shield and the SparkFun +Realtime Clock Module. 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 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. + +I had a spare 2N7000 FET from the KitTen kit that I wasn't using on the +Arduino board, so I used that for the back light control. If you don't +have a FET, then you can use a regular NPN transistor instead: + +\image html transistor_back_light.png + */