import machine
i2c = machine.SoftI2C(scl=machine.Pin(22), sda=machine.Pin(21), freq=10000)
print('\033[2J\033[H') # Limpiamos la pantalla
print('Escaneando bus I2C en busca de dispositivos...\n')
dispositivos = i2c.scan()
# Escanea todas las direcciones I2C entre 0x08 y 0x77 inclusive y
# devuelve una lista de aquellas que responden. Un dispositivo
# responde si tira la línea SDA a bajo después de que su dirección
# (incluyendo un bit de escritura) es enviada en el bus.
if len(dispositivos) == 0:
print("No se encontraron dispositivos I2C conectados.\n")
else:
print(f'Se encontraron {len(dispositivos)} dispositivos conectados.\n')
for i in range(len(dispositivos)):
print(f'Dispositivo {i+1}, direccion en decimal: {dispositivos[i]} | direccion en hexa {hex(dispositivos[i])}')