from machine import Pin
from hx711 import HX711
import time
# Configura los pines del HX711
sck_pin = Pin(13, Pin.OUT)
dt_pin = Pin(14, Pin.IN)
# Crea una instancia del HX711
hx711 = HX711(dt_pin, sck_pin)
# Establece el factor de calibración (ajustar según tu configuración)
calibration_factor = 1100.0
def initialize_hx711():
hx711.set_scale(calibration_factor)
hx711.tare()
print("HX711 inicializado y tare aplicado.")
# Función para leer el peso en kilogramos
def read_weight():
try:
# Lee el valor crudo
raw_value = hx711.read()
if raw_value is None:
raise ValueError("No se pudo leer el valor del HX711.")
# Calcula el peso en gramos
weight_g = (raw_value - hx711.offset) / calibration_factor
# Convierte el peso a kilogramos
weight_kg = weight_g / 1000.0
return weight_kg
except Exception as e:
print("Error en la lectura del peso:", e)
return None
def main():
initialize_hx711()
while True:
weight_kg = read_weight()
if weight_kg is not None:
if weight_kg < 0:
weight_kg = 0 # Asegúrate de que el peso no sea negativo
elif weight_kg > 5:
weight_kg = 5 # Limita el peso máximo a 5 kg
print("Peso en kilogramos: {:.2f}".format(weight_kg))
else:
print("No se pudo obtener la lectura.")
time.sleep(1)
if __name__ == "__main__":
main()