# .';:cc;. # .,',;lol::c. # ;';lddddlclo # lcloxxoddodxdool:,. # cxdddxdodxdkOkkkkkkkd:. # .ldxkkOOOOkkOO000Okkxkkkkx:. # .lddxkkOkOOO0OOO0000Okxxxxkkkk: # 'ooddkkkxxkO0000KK00Okxdoodxkkkko # .ooodxkkxxxOO000kkkO0KOxolooxkkxxkl # lolodxkkxxkOx,. .lkdolodkkxxxO. # doloodxkkkOk .... .,cxO; # ddoodddxkkkk: ,oxxxkOdc'..o' # :kdddxxxxd, ,lolccldxxxkkOOOkkkko, # lOkxkkk; :xkkkkkkkkOOO000OOkkOOk. # ;00Ok' 'O000OO0000000000OOOO0Od. # .l0l.;OOO000000OOOOOO000000x, # .'OKKKK00000000000000kc. # .:ox0KKKKKKK0kdc,. # ... # # Author: peppe8o # Date: Nov 21th, 2021 # Version: 1.0 # https://peppe8o.com # Import required libraries from machine import Pin # define GP ports to use # Pins Matching: A, B, C, D, E, F, G display_list = [17,16,14,13,12,18,19] dotPin=15 display_obj = [] # Set all pins as output for seg in display_list: display_obj.append(Pin(seg, Pin.OUT)) dot_obj=Pin(dotPin, Pin.OUT) # DIGIT map as array of array arrSeg = [[1,1,1,1,1,1,0],\ [0,1,1,0,0,0,0],\ [1,1,0,1,1,0,1],\ [1,1,1,1,0,0,1],\ [0,1,1,0,0,1,1],\ [1,0,1,1,0,1,1],\ [1,0,1,1,1,1,1],\ [1,1,1,0,0,0,0],\ [1,1,1,1,1,1,1],\ [1,1,1,1,0,1,1]] def SegDisplay(toDisplay): numDisplay = int(toDisplay.replace(".", "")) for a in range(7): display_obj[a].value(arrSeg[numDisplay][a]) # Manage DOT activation if toDisplay.count(".") == 1: dot_obj.value(1) else: dot_obj.value(0) SegDisplay("5.")