Загрузка данных


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