from machine import Pin, ADC, PWM, I2C
from i2c_lcd import I2cLcd
import servo
import time
# Configuraciones del LCD
I2C_ADDR = 0x27
LCD_COLUMNS = 16
LCD_LINES = 2
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
lcd = I2cLcd(i2c, I2C_ADDR, LCD_COLUMNS, LCD_LINES)
# Espera adicional después de la inicialización del LCD
time.sleep(0.2)
# Configuraciones del potenciómetro
pinPot = ADC(Pin(32))
pinPot.atten(ADC.ATTN_11DB)
# Configuraciones del servo
pinServo = 13
frecuencia = 50
servo1 = servo.Servo(Pin(pinServo), freq=frecuencia, min_us=500, max_us=2500)
# Inicializar LCD (la retroiluminación se controla internamente)
lcd.backlight = True
lcd.clear()
while True:
valorPot = pinPot.read()
anguloServo = int(valorPot * (180 / 4095))
servo1.write_angle(anguloServo)
lcd.move_to(3, 0)
lcd.putstr("Posicion")
lcd.move_to(5, 1)
lcd.putstr(f"{anguloServo:3d}")
time.sleep(0.001)