alarmclock with 2 alarm times, 128x64 LCD with KS0108, displays time / time&date / a menu to change time & alarms, rotary encoder with push button, relay which switsches on a hi-fi system or something else, a 1F- Cap as a backup supply

Dependencies:   KS0108 QEI mbed

Alarmclock

features:

  • alarmclock with 2 alarm times
  • 128x64 LCD with KS0108
  • displays time / time&date / a menu to change time & alarms
  • sleeptimer, relay is switched of when timer runs out
  • rotary encoder with push button
  • relay which switsches on a hi-fi system or something else
  • a 1F- Cap as a backup supply

todo/ desired improvements/ known issues:

  • a more precise real time clock would be nice
  • a speaker or beeper directly connected to the mbed
  • there is a bug where the big font is not displayed correctly

Schematic:

/media/uploads/gaebu/alarmclock_mbed_128x64.pdf

Revision:
0:62a6f55722d9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MyPhone_20.h	Tue Jan 21 12:35:29 2014 +0000
@@ -0,0 +1,70 @@
+
+
+/*
+ *
+ * MyPhone_20
+ *
+ * created with FontCreator
+ * written by F. Maximilian Thiele
+ *
+ * http://www.apetech.de/fontCreator
+ * me@apetech.de
+ *
+ * File Name           : MyPhone_20.h
+ * Date                : 14.04.2012
+ * Font size in bytes  : 896
+ * Font width          : 10
+ * Font height         : 11
+ * Font first char     : 48
+ * Font last char      : 58
+ * Font used chars     : 10
+ *
+ * The font data are defined as
+ *
+ * struct _FONT_ {
+ *     uint16_t   font_Size_in_Bytes_over_all_included_Size_it_self;
+ *     uint8_t    font_Width_in_Pixel_for_fixed_drawing;
+ *     uint8_t    font_Height_in_Pixel_for_all_characters;
+ *     unit8_t    font_First_Char;
+ *     uint8_t    font_Char_Count;
+ *
+ *     uint8_t    font_Char_Widths[font_Last_Char - font_First_Char +1];
+ *                  // for each character the separate width in pixels,
+ *                  // characters < 128 have an implicit virtual right empty row
+ *
+ *     uint8_t    font_data[];
+ *                  // bit field of all characters
+ */
+
+#ifndef MYPHONE_20_H
+#define MYPHONE_20_H
+
+#define MYPHONE_20_WIDTH 10
+#define MYPHONE_20_HEIGHT 11
+
+static unsigned int MyPhone_20[] = {
+    0x03, 0x80, // size
+    0x0A, // width
+    0x0B, // height
+    0x30, // first char
+    0x0A, // char count
+    
+    // char widths
+    0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 
+    
+    
+    // font data
+    0xFE, 0xFF, 0xFF, 0x01, 0x01, 0xFF, 0xFE, 0xFE, 0x60, 0xE0, 0xE0, 0x80, 0x80, 0xE0, 0x60, 0x60, // 48
+    0x0C, 0x02, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0x80, 0xE0, 0xE0, 0xE0, 0x80, 0x80, 0x80, // 49
+    0x02, 0x83, 0xC3, 0xC1, 0x61, 0x3F, 0x1E, 0x1E, 0xE0, 0xE0, 0xE0, 0xA0, 0x80, 0x80, 0x80, 0x80, // 50
+    0x02, 0x03, 0x23, 0x21, 0x21, 0xFF, 0xDE, 0xDE, 0x60, 0xE0, 0xE0, 0x80, 0x80, 0xE0, 0x60, 0x60, // 51
+    0xE0, 0x9C, 0x9E, 0x82, 0xFF, 0xFF, 0x80, 0x80, 0x20, 0x20, 0x20, 0x20, 0xE0, 0xE0, 0x20, 0x20, // 52
+    0x1F, 0x1F, 0x1F, 0x19, 0x19, 0xF9, 0xE1, 0xE1, 0x60, 0xE0, 0xE0, 0x80, 0x80, 0xE0, 0x60, 0x60, // 53
+    0xFC, 0xFE, 0xFF, 0x23, 0x21, 0xE1, 0xC0, 0xC0, 0x60, 0xE0, 0xE0, 0x80, 0x80, 0xE0, 0x60, 0x60, // 54
+    0x01, 0x81, 0xE1, 0xE1, 0x7D, 0x1F, 0x03, 0x03, 0x00, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, // 55
+    0xDE, 0xFF, 0xFF, 0x21, 0x21, 0xFF, 0xDE, 0xDE, 0x60, 0xE0, 0xE0, 0x80, 0x80, 0xE0, 0x60, 0x60, // 56
+    0x1E, 0x3F, 0x3F, 0x21, 0x21, 0xFF, 0xFE, 0xFE, 0x00, 0x80, 0x80, 0x80, 0xE0, 0x60, 0x20, 0x20 // 57
+    
+};
+
+#endif