Last active
November 22, 2015 10:29
-
-
Save kcranley1/fea9a8942cf89b1dcd35 to your computer and use it in GitHub Desktop.
4-digit 7-segment COMMON CATHODE display driven by Raspberry Pi B+
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 4-digit 7-segment COMMON CATHODE display driven by Raspberry Pi B+ | |
# code modified, tweaked and tailored from code by bertwert | |
# on RPi forum thread topic 91796 | |
# and fiddled with a bit more by S&S | |
import RPi.GPIO as GPIO | |
import time | |
GPIO.setmode(GPIO.BCM) | |
# GPIO ports for the 7seg pins | |
segments = (11,4,23,8,7,10,18,25) | |
# 7seg_segment_pins (11,7,4,2,1,10,5,3) + 100R inline | |
for segment in segments: | |
GPIO.setup(segment, GPIO.OUT) | |
GPIO.output(segment, 0) | |
# GPIO ports for the digit 0-3 pins | |
digits = (22,27,17,24) | |
# 7seg_digit_pins (12,9,8,6) digits 0-3 respectively | |
for digit in digits: | |
GPIO.setup(digit, GPIO.OUT) | |
GPIO.output(digit, 1) | |
num = {' ':(0,0,0,0,0,0,0), | |
'0':(1,1,1,1,1,1,0), | |
'1':(0,1,1,0,0,0,0), | |
'2':(1,1,0,1,1,0,1), | |
'3':(1,1,1,1,0,0,1), | |
'4':(0,1,1,0,0,1,1), | |
'5':(1,0,1,1,0,1,1), | |
'6':(1,0,1,1,1,1,1), | |
'7':(1,1,1,0,0,0,0), | |
'8':(1,1,1,1,1,1,1), | |
'9':(1,1,1,1,0,1,1)} | |
try: | |
while True: | |
n = time.ctime()[11:13]+time.ctime()[14:16] | |
s = n.rjust(4) | |
for digit in range(4): | |
if (int(time.ctime()[18:19])%2 == 0) and (digit == 1): | |
GPIO.output(25, 1) | |
else: | |
GPIO.output(25, 0) | |
for loop in range(0,7): | |
GPIO.output(segments[loop], num[s[digit]][loop]) | |
GPIO.output(digits[digit], 0) | |
time.sleep(0.005) | |
# The best sleep time for me to minimise flicker is 5 milliseconds | |
GPIO.output(digits[digit], 1) | |
finally: | |
GPIO.cleanup() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment