#include <Wire.h>
// ВАЖНО: Адрес 0x4F, так как вы подали 3.3В на пины A0, A1, A2.
#define LM75A_ADDR 0x4F
void setup() {
Serial.begin(115200);
// Инициализация шины I2C. D2 = SDA, D1 = SCL (как на вашей плате и фото)
Wire.begin(D2, D1);
Serial.println("Датчик запущен. Ждем данные...");
}
void loop() {
// Запрашиваем регистр температуры
Wire.beginTransmission(LM75A_ADDR);
Wire.write(0x00);
Wire.endTransmission();
// Получаем 2 байта
Wire.requestFrom(LM75A_ADDR, 2);
if (Wire.available() == 2) {
byte msb = Wire.read();
byte lsb = Wire.read();
// Перевод в градусы
int16_t raw_temp = ((msb << 8) | lsb) >> 7;
float temperature = raw_temp * 0.5;
Serial.print("Температура: ");
Serial.print(temperature);
Serial.println(" °C");
} else {
Serial.println("Ошибка! Датчик не отвечает.");
}
delay(1000);
}