diff --git a/Adafruit_LEDBackpack/Adafruit_7Segment.py b/Adafruit_LEDBackpack/Adafruit_7Segment.py index f5965404..c3c9c55e 100644 --- a/Adafruit_LEDBackpack/Adafruit_7Segment.py +++ b/Adafruit_LEDBackpack/Adafruit_7Segment.py @@ -13,6 +13,18 @@ class SevenSegment: disp = None + + # Some 7Segment-Display have several different colons, e.g. the + # 1,2" display. To seperately control such different colons + # use the following values where applicable: + # + # 0x00 - nothing + # 0x02 - center colon + # 0x04 - left colon - upper dot + # 0x08 - left colon - lower dot + # 0x10 - decimal point + # 0xFFFF - everything (default) + mask_colons = 0xFFFF # Hexadecimal character lookup table (row 1 = 0..9, row 2 = A..F) digits = [ 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, \ @@ -45,8 +57,9 @@ def setColon(self, state=True): # Warning: This function assumes that the colon is character '2', # which is the case on 4 char displays, but may need to be modified # if another display type is used + if (state): - self.disp.setBufferRow(2, 0xFFFF) + self.disp.setBufferRow(2, self.mask_colons) else: self.disp.setBufferRow(2, 0) diff --git a/Adafruit_LEDBackpack/ex_7segment_clock.py b/Adafruit_LEDBackpack/ex_7segment_clock.py index 99f00ab1..5b4875a3 100644 --- a/Adafruit_LEDBackpack/ex_7segment_clock.py +++ b/Adafruit_LEDBackpack/ex_7segment_clock.py @@ -23,7 +23,12 @@ # Set minutes segment.writeDigit(3, int(minute / 10)) # Tens segment.writeDigit(4, minute % 10) # Ones - # Toggle colon - segment.setColon(second % 2) # Toggle colon at 1Hz - # Wait one second - time.sleep(1) + + # Toggle colon(s) as configured in Adafruit_7Segment.py + # every second (by using even seconds vs. odd seconds) + if (second % 2 == 0): # reminder = 0 -> even second + segment.setColon(0) # turn colons off + else: # reminder != 0 -> odd second + segment.setColon(1) # turn colons on + + time.sleep(1) # Wait one second