jetson-i2c-temperature-sensor-8.ino

Placa base Xerxes Nano para módulos Jetson Orin Nano Super y Turing RK1 · Archivo : jetson-i2c-temperature-sensor-8.ino · Lenguaje : Python · Uso : Lecture d'un capteur de température I2C (ex: LM75) connecté aux broches de la carte porteuse.

Consulta un dispositivo térmico a través del bus I2C expuesto en los conectores de la Xerxes Nano.

Utiliza la biblioteca 'smbus' para comunicarse con un sensor I2C. Asegúrate de haber habilitado I2C1 mediante 'sudo nvpmodel' o el menú de configuración de Jetson si es necesario. El esquema de la placa Xerxes expone las líneas SDA/SCL en los headers GPIO. Verifica la dirección con i2cdetect -y 1 antes de ejecutar.

jetson-i2c-temperature-sensor-8.ino

import smbus
import time

# Configuration I2C pour Jetson Orin Nano
# Bus I2C 1 est souvent par défaut sur les carrier boards standard
BUS_DEV = "/dev/i2c-1"
I2C_ADDR = 0x48  # Adresse typique LM75/DS1621

def read_temperature():
    try:
        bus = smbus.SMBus(1)
        # LM75: Registre de température est 0x00
        # Lecture 2 octets: MSB (signe/entier) et LSB (fraction)
        data = bus.read_i2c_block_data(I2C_ADDR, 0x00, 2)
        
        # Calcul de la température
        # Le bit de signe est dans le MSB. Pour les valeurs simples >0:
        temp = (data[0] << 5) + (data[1] >> 3)
        temp = temp / 256.0 * 8  # Ajustement selon le datasheet spécifique
        
        # Alternative simplifiée pour LM75 standard:
        # temp = (data[0] << 5) + (data[1] >> 3)
        # if data[0] & 0x80: temp -= 5120
        # temp /= 160.0
        
        return temp
    except Exception as e:
        print(f"Erreur lecture I2C: {e}")
        return None

if __name__ == "__main__":
    print("Lecture Capteur I2C sur Xerxes Nano...")
    while True:
        t = read_temperature()
        if t is not None:
            print(f"Température: {t:.2f} °C")
        time.sleep(2)

← Volver a la ficha