i2c-ntc-temp-read.ino

BeagleConnect QuadESC : Contrôleur BLDC 4 canaux · Fichier : i2c-ntc-temp-read.ino · Langage : C · Usage : Lire la température d'un capteur NTC via un ADC I2C externe (ex: ADS1115).

Lecture d'un capteur de température NTC connecté via un convertisseur ADC I2C.

Suppose un capteur ADS1115 à l'adresse 0x48. Les broches SCL/SDA doivent être pull-up. La conversion thermique dépend du circuit NTC spécifique. Adapte la formule de conversion à ta résistance thermistance.

i2c-ntc-temp-read.ino

#include <zephyr/kernel.h>
#include <zephyr/drivers/i2c.h>

#define I2C_NODE DT_ALIAS(i2c0)
#define ADDR 0x48
static const struct device *i2c_dev = DEVICE_DT_GET(I2C_NODE);

void main(void) {
    uint8_t buf[2];
    while (1) {
        if (i2c_write_read(i2c_dev, ADDR, (uint8_t[]){0x85}, 1, buf, 2) == 0) {
            int16_t raw = (buf[0] << 8) | buf[1];
            float temp = raw * 0.0625f - 50.0f; // Exemple conversion
            printk("NTC Temp: %.2f C\n", temp);
        }
        k_msleep(1000);
    }
}

← Retour à la fiche