Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/python
- #Imports
- import smbus
- import sys
- import getopt
- import time
- import os
- #Set up SMBus
- bus = smbus.SMBus(0) #for revision 2 board...use 1
- #Set the I2C address
- address1 = 0x20
- address2 = 0x21
- # Set both banks to outputs
- bus.write_byte_data(address1,0x00,0x00)
- bus.write_byte_data(address1,0x01,0x00)
- bus.write_byte_data(address2,0x00,0x00)
- bus.write_byte_data(address2,0x01,0x00)
- #Bank mapping
- bank1 = 1 #Port A on 0x20
- bank2 = 2 #Port B on 0x20
- bank3 = 3 #Port A on 0x21
- #More Bank Mapping
- def set_led(data,bank):
- if bank == 1:
- bus.write_byte_data(address1,0x12,data) #Bank 1 = MCP port A
- if bank == 2:
- bus.write_byte_data(address1,0x13,data) #Bank 2 = MCP port B
- if bank == 3:
- bus.write_byte_data(address2,0x12,data) #Bank 3 = MCP port A (second chip)
- #Clear all Segments
- set_led(0,bank1)
- set_led(0,bank2)
- set_led(0,bank3)
- time.sleep(1)
- def main():
- #Define supporting variable
- timelastchecked = 0
- #Main Program
- while 1:
- if time.time() >= timelastchecked:
- timelastchecked = time.time()+3 #Check every 3 seconds
- mytemp = ""
- firstchar = ""
- secondchar = ""
- thirdchar = ""
- f=os.popen("/opt/vc/bin/vcgencmd measure_temp") #Temperature command for terminal
- for i in f.readlines():
- mytemp += i
- firstchar = mytemp[5:-6] #removes 5 characters from the front of the string, and 6 from the back
- secondchar = mytemp[6:-5] #second character string
- thirdchar = mytemp[8:-3] #third character string
- while 1: #first segment
- if firstchar == '0': #If first digit is 1
- set_led(119,bank1)
- elif firstchar == '1': #If first digit is 1
- set_led(20,bank1)
- elif firstchar == '2': #if not 1, try 2
- set_led(79,bank1)
- elif firstchar == '3': #if not 2, try 3
- set_led(182,bank1)
- elif firstchar == '4': #and so on...
- set_led(212,bank1)
- elif firstchar == '5':
- set_led(230,bank1)
- elif firstchar == '6':
- set_led(231,bank1)
- elif firstchar == '7': #and so on...
- set_led(52,bank1)
- elif firstchar == '8':
- set_led(247,bank1)
- elif firstchar == '9':
- set_led(244,bank1)
- while 1: #second segment
- if secondchar == '0':
- set_led(127,bank2)
- elif secondchar == '1':
- set_led(28,bank2)
- elif secondchar == '2':
- set_led(187,bank2)
- elif secondchar == '3':
- set_led(190,bank2)
- elif secondchar == '4':
- set_led(220,bank2)
- elif secondchar == '5':
- set_led(238,bank2)
- elif secondchar == '6':
- set_led(239,bank2)
- elif secondchar == '7':
- set_led(60,bank2)
- elif secondchar == '8':
- set_led(255,bank2)
- elif secondchar == '9':
- set_led(252,bank2)
- while 1: #third segment
- if thirdchar == '0':
- set_led(119,bank3)
- elif thirdchar == '1':
- set_led(20,bank3)
- elif thirdchar == '2':
- set_led(179,bank3)
- elif thirdchar == '3':
- set_led(182,bank3)
- elif thirdchar == '4':
- set_led(212,bank3)
- elif thirdchar == '5':
- set_led(230,bank3)
- elif thirdchar == '6':
- set_led(231,bank3)
- elif thirdchar == '7':
- set_led(52,bank3)
- elif thirdchar == '8':
- set_led(247,bank3)
- elif thirdchar == '9':
- set_led(244,bank3)
- time.sleep(2)
- main()
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement