Интернет-магазин «Неглупый Дом»
LM75 — простой цифровой датчик температуры по I2C, а реле превращает его показания в управление вентилятором или нагревателем с гистерезисом, чтобы контакты не "дребезжали" около порога.
LM75 хранит температуру в 16-битном регистре без формулы калибровки под экземпляр. Значащие 9 старших бит сдвигают вправо на 5 и умножают на 0.125°C. Адрес по умолчанию 0x48 при A0-A2 на GND.
Гистерезис — разница между порогом включения и выключения. Без него реле щёлкало бы десятки раз в минуту при колебаниях температуры у порога — в коде заведены два значения, отличающиеся на пару градусов.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить.
#include <Wire.h>
const int LM75_ADDR = 0x48;
const int RELAY_PIN = 2;
const float TEMP_ON = 28.0;
const float TEMP_OFF = 26.0;
bool relayOn = false;
float readLM75() {
Wire.beginTransmission(LM75_ADDR);
Wire.write(0x00);
Wire.endTransmission();
Wire.requestFrom(LM75_ADDR, 2);
int16_t raw = (Wire.read() << 8) | Wire.read();
raw = raw >> 5;
return raw * 0.125;
}
void setup() {
Serial.begin(9600);
Wire.begin();
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
}
void loop() {
float temp = readLM75();
Serial.println(temp);
if (!relayOn && temp >= TEMP_ON) {
relayOn = true;
digitalWrite(RELAY_PIN, HIGH);
} else if (relayOn && temp <= TEMP_OFF) {
relayOn = false;
digitalWrite(RELAY_PIN, LOW);
}
delay(1000);
}
Дополнительные библиотеки не нужны, только Wire.h. Если датчик не отвечает — проверьте его адрес сканером шины I2C.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 207 ₽ 186 ₽ (экономия 21 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.