
Интернет-магазин «Неглупый Дом»
В другом проекте на сайте LM75 управляет реле вентилятора или нагревателя. Здесь всё проще — просто цифровой термометр: датчик измеряет температуру, а дисплей TM1637 показывает её числом, без какой-либо автоматики или управления внешней нагрузкой.
Чтение температуры с LM75 такое же, как и в термостате: Arduino читает 16-битный регистр по I2C, значащие 9 старших бит сдвигаются вправо на 5 и умножаются на 0.125°C — это и есть реальный шаг датчика. Разница — просто в том, что происходит с результатом дальше: вместо сравнения с порогами включения/выключения реле число просто выводится на экран TM1637.
Поскольку TM1637 — это 4-значный дисплей, а температура может быть отрицательной и с десятичной частью, в примере ниже значение умножается на 10 и выводится с десятичной точкой на одном из разрядов, чтобы показать и целую, и десятую часть градуса одновременно (например, "23.5").
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
#include <Wire.h>
#include <TM1637Display.h>
TM1637Display display(9, 10); // CLK, DIO
const int LM75_ADDR = 0x48;
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();
display.setBrightness(5);
}
void loop() {
float temp = readLM75();
Serial.print("Температура: ");
Serial.println(temp);
display.showNumberDecEx((int)(temp * 10), 0b01000000, false); // десятичная точка на разряде десятых
delay(1000);
}
Библиотека TM1637Display ставится через Менеджер библиотек Arduino IDE. Для LM75 не требуется дополнительной библиотеки — только стандартный `Wire.h`.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 201 ₽ 181 ₽ (экономия 20 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.