aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin/bigclock.py47
1 files changed, 35 insertions, 12 deletions
diff --git a/bin/bigclock.py b/bin/bigclock.py
index 51fd687..ac09ca7 100644
--- a/bin/bigclock.py
+++ b/bin/bigclock.py
@@ -1,20 +1,43 @@
!#/usr/bin/python3
-#//3x2 https://exploreembedded.com/wiki/Distance_Meter_with_Big_Fonts
-#const uint8_t bigNumbers3x2CustomPatterns_3[8][8] PROGMEM = {
-#{ B11100, B11110, B11110, B11110, B11110, B11110, B11110, B11100}, // 0 left bar
-#{ B00111, B01111, B01111, B01111, B01111, B01111, B01111, B00111}, // 1 right bar
-#{ B11111, B11111, B00000, B00000, B00000, B00000, B11111, B11111}, // 2 upper and lower bar
-#{ B11110, B11100, B00000, B00000, B00000, B00000, B11000, B11100}, // 3 left upper and lower rounded
-#{ B01111, B00111, B00000, B00000, B00000, B00000, B00011, B00111}, // 4 right upper and lower rounded
-#{ B00000, B00000, B00000, B00000, B00000, B00000, B11111, B11111}, // 5 right lower
-#{ B00000, B00000, B00000, B00000, B00000, B00000, B00111, B01111}, // 6 right lower rounded
-#{ B11111, B11111, B00000, B00000, B00000, B00000, B00000, B00000} // 7 upper bar
-#};
+
+import board
import busio
import adafruit_character_lcd.character_lcd_i2c as character_lcd
i2c = busio.I2C(board.SCL, board.SDA)
lcd = character_lcd.Character_LCD_I2C(i2c, 20, 4)
lcd.backlight = True
-lcd.message = "Hello there welcom\nCircuitPython\nwho knows if \nthis is too bright" \ No newline at end of file
+#lcd.message = "Hello there welcom\nCircuitPython\nwho knows if \nthis is too bright"
+customchars=[
+ bytes([0x01, 0x07, 0x0F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F]), # char 1: bottom right triangle
+ bytes([0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F]), # char 2: bottom block
+ bytes([0x10, 0x1C, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F]), # char 3: bottom left triangle
+ bytes([0x1F, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00]), # char 4: top right triangle
+ bytes([0x1F, 0x1E, 0x1C, 0x10, 0x00, 0x00, 0x00, 0x00]), # char 5: top left triangle
+ bytes([0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00]), # char 6: upper block
+ bytes([0x1F, 0x1F, 0x1E, 0x1C, 0x18, 0x18, 0x10, 0x10]), # char 7: full top right triangle
+ bytes([0x01, 0x07, 0x0F, 0x1F, 0x00, 0x00, 0x00, 0x00]) # char 8: top right triangle
+];
+for ch in range(0,7):
+ lcd.create_char(ch, customchars[ch])
+
+mess=""
+for ch in range(0,7):
+ mess+=chr(ch)
+
+lcd.message=mess
+
+bn4 = [ # 4-line numbers
+# 0 1 2 3 4 5 6 7 8 9
+ [0x01,0x06,0x03, 0x08,0xFF,0xFE, 0x08,0x06,0x03, 0x08,0x06,0x03, 0xFF,0xFE,0xFF, 0xFF,0x06,0x06, 0x01,0x06,0x03, 0x06,0x06,0xFF, 0x01,0x06,0x03, 0x01,0x06,0x03],
+ [0xFF,0xFE,0xFF, 0xFE,0xFF,0xFE, 0x02,0x02,0xFF, 0xFE,0x02,0xFF, 0xFF,0x02,0xFF, 0xFF,0x02,0x02, 0xFF,0x02,0x02, 0xFE,0x01,0x07, 0xFF,0x02,0xFF, 0xFF,0x02,0xFF],
+ [0xFF,0xFE,0xFF, 0xFE,0xFF,0xFE, 0xFF,0xFE,0xFE, 0xFE,0xFE,0xFF, 0xFE,0xFE,0xFF, 0xFE,0xFE,0xFF, 0xFF,0xFE,0xFF, 0xFE,0xFF,0xFE, 0xFF,0xFE,0xFF, 0xFE,0xFE,0xFF],
+ [0x04,0x06,0x05, 0xFE,0x06,0xFE, 0x06,0x06,0x06, 0x04,0x06,0x05, 0xFE,0xFE,0x06, 0x04,0x06,0x05, 0x04,0x06,0x05, 0xFE,0x06,0xFE, 0x04,0x06,0x05, 0x04,0x06,0x05]
+]
+
+def printNum4(digit, leftAdjust):
+ for row in range(0,3):
+ lcd.cursor_position(leftAdjust,row);
+ i = digit*3
+ lcd.message=chr(bn4[row][i])+chr(bn4[row][i+1])+chr(bn4[row][i+2])