MCP9808 precision temperature con ESP32
Alimentazione 3.3-5 V
Bus I2C
Indirizzo I2C
0x18 / 0x19 / 0x1A / 0x1B / 0x1C / 0x1D / 0x1E / 0x1F
Misura temperatura
Pin e collegamento all’ESP32
| Pin | Ruolo | Pin ESP32 | Note |
|---|---|---|---|
| VDD | Alimentazione | 3V3 | |
| GND | Massa | GND | |
| SCL | Clock I2C (SCL) | D22 | |
| SDA | Dati I2C (SDA) | D21 | |
| ALERT | Interrupt | D35 | Alert output (open drain), optional |
| A2 | Non collegato all’ESP32 | — | Address bit 2. Pulled LOW on the board |
| A1 | Non collegato all’ESP32 | — | Address bit 1. Pulled LOW on the board |
| A0 | Non collegato all’ESP32 | — | Address bit 0. Pulled LOW on the board (0x18) |
Collegamento consigliato per l’ESP32 DevKit a 30 pin, evitando i pin della flash, di sola lettura e di strapping. BoardPilot lo controlla mentre colleghi.
Verifica che sia il chip originale
Leggi il registro 0x07: un componente originale risponde 0x04. BoardPilot lo fa da solo in “Risolvi un problema”.
Codice di partenza (Arduino)
#include <Wire.h>
void setup() {
Serial.begin(115200);
Wire.begin(21, 22); // SDA = GPIO 21, SCL = GPIO 22
Wire.beginTransmission(0x18);
bool found = Wire.endTransmission() == 0;
Serial.println(found ? "MCP9808 precision temperature found at 0x18" : "Not found: check power, GND and SDA/SCL");
}
void loop() {}
Fonti
- Microchip MCP9808 datasheet, Device ID register 0x07 = 0x0400 (first byte read is 0x04)
- Microchip MCP9808 datasheet, Address 0011 A2 A1 A0 = 0x18 to 0x1F; supply 2.7 to 5.5 V
- Adafruit MCP9808 guide, Pinout Vdd, GND, SCL, SDA, Alert, A2, A1, A0
Provalo in 3D in BoardPilot
Componenti simili
ADS1015 12-bit ADCADS1115 16-bit ADCADXL375 high-g accelerometer (±200 g)AHT10 temperature + humidityAHT20 + BMP280 combo moduleAHT20 temperature + humidity
Dati dei componenti: CC BY 4.0, riutilizzabili citando BoardPilot.