i2c-ntc-temp-read.ino

BeagleConnect QuadESC: 4-Channel BLDC Controller · File : i2c-ntc-temp-read.ino · Language : C · Use case : Lire la température d'un capteur NTC via un ADC I2C externe (ex: ADS1115).

Reading NTC temperature sensor connected via I2C ADC converter.

Assumes ADS1115 sensor at address 0x48. SCL/SDA pins need pull-ups. Thermal conversion depends on specific NTC circuit. Adapt conversion formula to your thermistor resistance.

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);
    }
}

← Back to the board