from machine import Pin,I2C
from time import sleep
import ssd1306

DT = Pin (23, Pin.IN)
CLK = Pin (22, Pin.IN)
SW = Pin (3, Pin.IN, Pin.PULL_UP)
valor_anterior = True
switch_pressionado = False

i2c = I2C(1, freq=400000)  # I2C no ESP32
oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)

def mostrar_texto(texto):
    oled.fill(0)  # Limpa o display

    # Calcular a largura e altura do texto
    texto_largura = len(texto) * 6  # Cada caractere tem 6 pixels de largura
    texto_altura = 8  # O tamanho do texto é de 8 pixels por altura

    # Calcular as posições para centralizar
    pos_x = (oled_width - texto_largura) // 2
    pos_y = (oled_height - texto_altura) // 2

    oled.text(texto, pos_x, pos_y)  # Escreve no display
    oled.show() 


while True:
        if valor_anterior != DT.value():
            if DT.value() == False:
                if CLK.value() == False:
                    print("horario")
                    mostrar_texto("Rotacao: Horario") 
                    sleep(0.2)
                else:
                    print("antihorario")
                    mostrar_texto("Rotacao: Anti-Horario")
                    sleep(0.2)
            valor_anterior = DT.value()
              


        if SW.value() == False and not switch_pressionado:
            print("SW pressionado")
            switch_pressionado = True
        if SW.value() == True and switch_pressionado:
            switch_pressionado = False