jetson-i2c-temperature-sensor-8.ino

Carte porteuse Xerxes Nano pour modules Jetson Orin Nano Super et Turing RK1 · Fichier : jetson-i2c-temperature-sensor-8.ino · Langage : Python · Usage : Lecture d'un capteur de température I2C (ex: LM75) connecté aux broches de la carte porteuse.

Interroge un périphérique thermique via le bus I2C exposé sur les connecteurs de la Xerxes Nano.

Utilise la bibliothèque 'smbus' pour communiquer avec un capteur I2C. Assurez-vous d'avoir activé I2C1 via 'sudo nvpmodel' ou le menu de configuration Jetson si nécessaire. Le schéma de la carte Xerxes expose les lignes SDA/SCL sur les headers GPIO. Vérifiez l'adresse i2cdetect -y 1 avant d'exécuter.

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)

← Retour à la fiche