🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


🌡️ Проект: сравнение четырёх аналоговых датчиков температуры KY-001/013/028/015 на одном LCD1602

Комплект KY-001/013/028/015 включает четыре разных дешёвых аналоговых датчика температуры на основе терморезисторов (термисторов). В отличие от цифровых датчиков типа DS18B20 или LM75, уже разбиравшихся в других проектах на сайте, каждый из этих четырёх даёт просто переменное напряжение, которое нужно самостоятельно пересчитывать в градусы — этот проект читает все четыре одновременно и выводит их показания рядом на одном экране LCD1602 для наглядного сравнения.

Как это работает

Термистор — это резистор, сопротивление которого заметно меняется с температурой. Подключив термистор в делитель напряжения с обычным постоянным резистором, получаем на средней точке делителя напряжение, зависящее от температуры — именно его и читает `analogRead()`. Разные модули в этом комплекте могут отличаться конкретным номиналом терморезистора при 25°C и коэффициентом его изменения (так называемый коэффициент B), поэтому точный пересчёт показаний именно в градусы Цельсия требует знания этих паспортных параметров для каждого конкретного датчика, которые производитель часто не указывает подробно для бюджетных модулей такого уровня.

Поэтому в этом проекте показания всех четырёх датчиков выводятся как относительные числа (`analogRead()`, 0-1023), а не как точные градусы — честно, без придуманной формулы калибровки, которая выдавала бы ложную точность. Такое сравнение всё равно практически полезно: если все четыре датчика находятся в одинаковых условиях (например, рядом друг с другом на столе), их относительные показания должны вести себя похоже и сонаправленно при изменении температуры в помещении — это и есть практическая демонстрация принципа, а не лабораторный точный термометр.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. Каждый из четырёх датчиков комплекта: сигнальный аналоговый выход → свой аналоговый пин (A0, A1, A2, A3 соответственно), VCC → 5V, GND → GND.
  2. LCD1602 с I2C-переходником: SDA → A4, SCL → A5, VCC → 5V, GND → GND.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему. Показания — относительные
// числа analogRead(), не калиброванные градусы (см. текст статьи выше).

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

const int SENSOR_PINS[4] = {A0, A1, A2, A3}; // KY-001, KY-013, KY-028, KY-015 — в любом порядке подключения

void setup() {
  Serial.begin(9600);
  lcd.init();
  lcd.backlight();
}

void loop() {
  int values[4];
  for (int i = 0; i < 4; i++) {
    values[i] = analogRead(SENSOR_PINS[i]);
  }

  Serial.print("KY-001/013/028/015: ");
  for (int i = 0; i < 4; i++) {
    Serial.print(values[i]);
    Serial.print(" ");
  }
  Serial.println();

  lcd.setCursor(0, 0);
  lcd.print(values[0]);
  lcd.print(" ");
  lcd.print(values[1]);
  lcd.print("     ");

  lcd.setCursor(0, 1);
  lcd.print(values[2]);
  lcd.print(" ");
  lcd.print(values[3]);
  lcd.print("     ");

  delay(500);
}

Библиотеки Wire и LiquidCrystal_I2C ставятся через Менеджер библиотек Arduino IDE. Если LCD не откликается — проверьте адрес на шине I2C через скетч-сканер (обычно 0x27 или 0x3F).

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 💓 измеритель пульса (ударов в минуту) на дат…📣 громкий тональный сигнал через готовый уси… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 437 ₽ 393 ₽ (экономия 44 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA