Well its raspberry Pi 2B.
Below is the code that i have tried...
Code: Select all
import wiringpi
import time
wiringpi.wiringPiSetupGpio()
_DATA = 23
_STRB = 24
_CLK = 25
_DIGITS = 6
_7SEGTYPE = 'A'
_DIGITS = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
# 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Blank, -
'''
_NUMBERS = [bytes(b'xB11100111'),
bytes(b'xB10000100'),
bytes(b'xB11010011'),
bytes(b'xB11010110'),
bytes(b'xB10110100'),
bytes(b'xB01110110'),
bytes(b'xB01110111'),
bytes(b'xB11000100'),
bytes(b'xB11110111'),
bytes(b'xB11110110'),
bytes(b'xB00000000'),
bytes(b'xB00010000')]
'''
_NUMBERS1 = [231,
132,
211,
214,
180,
118,
119,
196,
247,
246,
0,
16]
'''
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(_DATA , GPIO.OUT)
GPIO.setup(_STRB , GPIO.OUT)
GPIO.output(_STRB, 1)
GPIO.setup(_CLK , GPIO.OUT)
'''
wiringpi.pinMode(_DATA, 1)
wiringpi.pinMode(_STRB, 1)
wiringpi.pinMode(_CLK, 1)
#wiringpi.digitalWrite(_STRB, 0)
def Print(number, digits, dp):
negate = False
x = int(dp)
y = int(0)
tmp = long(number)
if(tmp < 0):
negate = 1
tmp = tmp * -1
if(tmp > 999999):
tmp /= 10
if(x > 0):
x = x-1
else:
if(tmp > 999999):
tmp /= 10
if(x > 0):
x = x-1
while(tmp > 0 and y < digits):
_DIGITS[y] = tmp % 10
tmp /= 10
y += 1
while(y < digits):
_DIGITS[y] = 0
y += 1
if(negate):
_DIGITS[digits - 1] = 11
#for x in range(6):
#print _DIGITS[x]
PrintDigits(digits, x)
def PrintDigits(digits, dp):
global _DIGITS
global _7SEGTYPE
wiringpi.digitalWrite(_STRB, 0)
for i in range(6):
dig = _NUMBERS[_DIGITS[i]]
print dig
#if(dp > 0):
#if(i == dp):
#dig |= xB00001000
if(_7SEGTYPE == 'C'):
PrintHex(dig, 0)
elif (_7SEGTYPE == 'A') :
PrintHex(dig, 0)
wiringpi.digitalWrite(_STRB, 1)
def PrintHex( x, y):
wiringpi.shiftOut(_DATA, _CLK, 0, x)
if __name__ == "__main__":
Print(1, 6, 0)
_DATA = 23(according to wiringpi pin#)
_STRB = 24(according to wiringpi pin#)
_CLK = 25(according to wiringpi pin#)