import time
import machine
hex_numbers = [
0xC0, #0
0xF9, #1
0xA4, #2
0xB0, #3
0x99, #4
0x92, #5
0x82, #6
0xF8, #7
0x80, #8
0x90 #9
]
segments = []
selection_digits = []
adc = machine.ADC(machine.Pin(26))
def initialize():
global segments, selection_digits
segments = []
for i in range(7):
segments.append(machine.Pin(i, machine.Pin.OUT))
segments[i].value(1)
selection_digits = []
for j in range(8, 12):
selection_digits.append(machine.Pin(j, machine.Pin.OUT))
selection_digits[j-8].value(0)
dp = machine.Pin(7, machine.Pin.OUT)
def scan_value(num):
global selection_digits
for x in range(4):
display_value(int(num % 10))
selection_digits[x].value(1)
time.sleep(0.01)
selection_digits[x].value(0)
num /= 10
def display_value(num):
global segments, selection_digits
for i in range(7):
for d in selection_digits:
d.value(0)
value = (1 << i) & hex_numbers[num]
segments[i].value(value)
if __name__ == '__main__':
initialize()
while True:
adc_value = adc.read()
for i in range(10, 201, 10):
for _ in range(20):
scan_value(adc_value)
print(adc_value)