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