#Imports
from machine import Pin, ADC, Timer, PWM
import utime
from math import log 
import time

print_loop = 0
# Pin and constant definitions
DIG_1 = 11
DOT_PIN = 7
pwm = PWM(Pin(15))
pwm.freq(1000)
potentiometer = ADC(Pin(26))

voltage = 0

# HEX values for 7 segment display values
displayCodes = [
    0xC0,
    0xF9,
    0xA4,
    0xB0,
    0x99,
    0x92,
    0x82,
    0xF8,
    0x80,
    0x90
]

display_value = 0

# Function definitions
def scan_display():

    temp_display_value = display_value
    for i in range(3, -1, -1):
        display_digit(int(temp_display_value%10), i, i==0)
        utime.sleep(0.01)
        Pin(DIG_1 - i, Pin.OUT).off()
        Pin(DOT_PIN, Pin.OUT).value(1)
        temp_display_value /= 10
        
 
def display_digit(digit_value, digit_index, dp_enable=False):
    for i in range(7):
        Pin(i, Pin.OUT).value((1<<i) & displayCodes[digit_value])
        
    Pin(DIG_1 - digit_index, Pin.OUT).on()
    if dp_enable:
        Pin(DOT_PIN, Pin.OUT).value(0)
    

def read_value(new):
    global display_value ,voltage , print_loop
    reading = potentiometer.read_u16()
    voltage = int((reading / 65535) * 3300)
    if print_loop != voltage:
        print(f"Voltage = {voltage} mV")
        pwm.duty_u16(reading)
        print_loop = voltage
    display_value = voltage


    



def main():
    while True:
        scan_display()
        read_value(10)
 

if __name__ == '__main__':
    main()
'''
def read_value(new):
    global display_value ,voltage
    display_value += new


    if display_value == 200:
        display_value = 0


        t_end = time.time() + 1
    while time.time() < t_end:    
'''
        
$abcdeabcde151015202530fghijfghij
$abcdeabcde151015202530fghijfghij
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT