Arduino: измерение температуры и вывод в Фаренгейтах на LCD 16x2
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Arduino UNO | 1 |
| LCD-дисплей 16x2 (синий с белой подсветкой, стандартный Hitachi HD44780) | 1 |
| Аналоговый датчик температуры (например, TMP36 или LM35) — подключается к A0 | 1 |
| Перемычки | 1 набор |
О проекте
Простой проект для начинающих: Arduino считывает аналоговое напряжение с датчика температуры, переводит его в градусы Цельсия, затем в Фаренгейты и выводит результат на LCD-дисплей и в последовательный порт.
На фото показана сборка на макетной плате. Датчик подключается к пину A0, LCD — к пинам 12, 11, 5, 4, 3, 2 (RS, E, D4-D7).
Скетч
Код использует стандартную библиотеку LiquidCrystal.h. Напряжение с датчика читается через АЦП (10 бит, 0–1023). Формулы перевода:
- Напряжение (В) = (значение_АЦП / 965.0) * 5.0 — коэффициент 965.0 подобран экспериментально для используемого датчика.
- °C = (Вольты - 0.5) * 100 (для TMP36).
- °F = °C * 9/5 + 32.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int tmpPin = A0; // Датчик температуры
const int ledPin = 8; // Не используется в данном коде
void setup() {
lcd.begin(16, 2);
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, LOW);
int raw = analogRead(tmpPin);
float volts = (raw / 965.0) * 5.0;
float celsius = (volts - 0.5) * 100.0;
float fahrenheit = (celsius * 9.0 / 5.0) + 32.0;
Serial.println(fahrenheit);
lcd.setCursor(5, 0);
lcd.print(fahrenheit);
lcd.print((char)223); // символ градуса
lcd.print("F");
delay(3000);
}
Схема подключения
Файл схемы для Fritzing: temp.fzz. На изображениях показано подключение LCD (параллельный интерфейс) и датчика к A0. Питание датчика — от 5V Arduino, земля общая.
Примечания
- Коэффициент 965.0 в формуле напряжения может отличаться для других датчиков или напряжения опоры. Для точности лучше использовать встроенное опорное напряжение 1.1V (
analogReference(INTERNAL)) и пересчитать формулу. - LCD требует контрастность: вывод VO (pin 3) подключается к среднему контакту потенциометра 10 кОм, крайние — на 5V и GND.
- Проект отлично подходит для изучения АЦП, работы с LCD и перевода единиц измерения.
Производственный процесс
- Сборка логгера температуры на Raspberry Pi с $5 I2C датчиком
- ИК-датчик температуры TMP006 с Raspberry Pi: библиотека Python и руководство по настройке
- Создание удалённого датчика температуры на Raspberry Pi и Python — пошаговое руководство
- Как подключить однопроводный датчик температуры DS1820 к Raspberry Pi через GPIO
- Подключение цифрового термометра DS18B20 1-Wire к Raspberry Pi — пошаговое руководство
- Создание многодатчиковой системы мониторинга температуры и света с Raspberry Pi и DS18B20
- Создайте домашний монитор температуры на Raspberry Pi с MCP9808, InfluxDB и Grafana
- Точный датчик температуры подшипников: обнаружение и мониторинг
- Лабораторный чип NASA Goddard обеспечивает мониторинг потока и температуры в реальном времени
- AuGe12 (Au88Ge12): Премиальный золотистый мягкий паяльный сплав на основе золота