from machine import Pin
from utime import sleep

print("Hello, ESP32!")

sw0 = Pin(12, Pin.IN, Pin.PULL_DOWN) # Chave 1 de 4 - 1 bit
sw1 = Pin(13, Pin.IN, Pin.PULL_DOWN) # Chave 2 de 4 - 1 bit
sw2 = Pin(14, Pin.IN, Pin.PULL_DOWN) # Chave 3 de 4 - 1 bit
#sw3 = Pin(27, Pin.IN, Pin.PULL_DOWN) # Chave 4 de 4 - 1 bit

# Pinos dos segmentos: a, b, c, d, e, f, g
seg_a = Pin(32, Pin.OUT)
seg_b = Pin(33, Pin.OUT)
seg_c = Pin(15, Pin.OUT)
seg_d = Pin(2, Pin.OUT)
seg_e = Pin(4, Pin.OUT)
seg_f = Pin(16, Pin.OUT)
seg_g = Pin(17, Pin.OUT)

seg_a.value(0)
seg_b.value(0)
seg_c.value(0)
seg_d.value(0)
seg_e.value(0)
seg_f.value(0)
seg_g.value(1)
#ou
seg_a.on()
seg_b.on()
seg_c.on()
seg_d.on()
seg_e.on()
seg_f.on()
seg_g.off()

DEC = 0;
contador = 0
bits = 0

while True:
    if contador == 8:
        contador = 0
    bits = sw0.value() + sw1.value() + sw2.value() #+ sw3

    if sw0.value() == 0 and sw1.value() == 0 and sw2.value() == 0:
        DEC = 0; 
    if sw0.value() == 0 and sw1.value() == 0 and sw2.value() == 1:
        DEC = 1; 
    if sw0.value() == 0 and sw1.value() == 1 and sw2.value() == 0:
        DEC = 2;
    if sw0.value() == 0 and sw1.value() == 1 and sw2.value() == 1:
        DEC = 3;
    if sw0.value() == 1 and sw1.value() == 0 and sw2.value() == 0:
        DEC = 4;
    if sw0.value() == 1 and sw1.value() == 0 and sw2.value() == 1:
        DEC = 5;
    if sw0.value() == 1 and sw1.value() == 1 and sw2.value() == 0:
        DEC = 6;
    if sw0.value() == 1 and sw1.value() == 1 and sw2.value() == 1:
        DEC = 7;

    print(  "Contador:", contador,
            "SW0:", sw0.value(),
            "SW1:", sw1.value(),
            "SW2:", sw2.value(),
            #"SW13", sw3.value(),
            "--> DEC:", DEC,
        )

   # DEC = bits
    #DEC = int(bits, 2)
    if DEC == 0:
        seg_a.on()
        seg_b.on()
        seg_c.on()
        seg_d.on()
        seg_e.on()
        seg_f.on()
        seg_g.off()
    if DEC == 1:
        seg_a.off()
        seg_b.on()
        seg_c.on()
        seg_d.off()
        seg_e.off()
        seg_f.off()
        seg_g.off()
    if DEC == 2:
        seg_a.value(1)
        seg_b.value(1)
        seg_c.value(0)
        seg_d.value(1)
        seg_e.value(1)
        seg_f.value(0)
        seg_g.value(1)
    if DEC == 3:
        seg_a.value(1)
        seg_b.value(1)
        seg_c.value(1)
        seg_d.value(1)
        seg_e.value(0)
        seg_f.value(0)
        seg_g.value(1)
    if DEC == 4:
        seg_a.value(0)
        seg_b.value(1)
        seg_c.value(1)
        seg_d.value(0)
        seg_e.value(0)
        seg_f.value(1)
        seg_g.value(1)
    if DEC == 5:
        seg_a.value(1)
        seg_b.value(0)
        seg_c.value(1)
        seg_d.value(1)
        seg_e.value(0)
        seg_f.value(1)
        seg_g.value(1)
    if DEC == 6:
        seg_a.value(1)
        seg_b.value(0)
        seg_c.value(1)
        seg_d.value(1)
        seg_e.value(1)
        seg_f.value(1)
        seg_g.value(1)
    if DEC == 7:
        seg_a.value(1)
        seg_b.value(1)
        seg_c.value(1)
        seg_d.value(0)
        seg_e.value(0)
        seg_f.value(0)
        seg_g.value(0)
    sleep(1)
    contador = contador + 1
$abcdeabcde151015202530fghijfghij
SW0
SW1
SW2
SW3
DISPLAY