jetson-i2c-temperature-sensor-8.ino
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)