No Image

Термометр на ардуино с дисплеем 1602

СОДЕРЖАНИЕ
0 просмотров
10 марта 2020

В этом уроке мы будем использовать датчик температуры DS18B20 с Arduino UNO для создания термометра. Датчик DS18B20 является хорошим вариантом, когда в проекте с высокой точностью требуется хорошая реакция. Мы покажем как подключить DS18B20 к вашему Arduino UNO и отобразить данные температуры на ЖК-дисплее 16×2.

Обзор датчика DS18B20

Датчик DS18B20 взаимодействует с Arduino через 1-проводную шину. По определению для связи с Arduino требуется только одна линия данных (и земля).

Рабочая температура датчика колеблется от -55° C до + 125° C с точностью ± 0,5° C в диапазоне от -10° C до + 85° C. Кроме того, DS18B20 может получать питание непосредственно от линии передачи данных («паразитный источник питания») без необходимости внешнего источника питания.

Каждый DS18B20 имеет уникальный 64-битный последовательный код или адрес, который позволяет нескольким DS18B20s работать на той же однопроводной шине. Поэтому использование микропроцессора упрощает управление несколькими DS18B20, распределенными по большой площади. Приложения для этой функции включают в себя экологический контроль, системы контроля температуры в зданиях и механическом оборудовании.

Особенности DS18B20

  • Необходим только один однопроводный интерфейс для связи между микроконтроллером и датчиком.
  • Требуется только один внешний компонент: резистор 4,7 кОм.
  • Может питаться от линии передачи данных напрямую, требуя напряжения от 3,0 до 5,5 В.
  • Каждое устройство имеет уникальный 64-битный последовательный код, хранящийся на встроенном ПЗУ.
  • Может измерять температуру в диапазоне от -55° C до + 125° C (от -67° F до + 257° F).
  • Точность ± 0,5° C в диапазоне от -10° C до + 85° C.

В этом проекте используется DS18B20, который поставляется в форме температурного зонда, который является водонепроницаемым. Использование водонепроницаемого датчика расширяет возможности – датчик температуры сможет измерить температуру жидкостей, таких как вода, химикаты, чай и кофе.

Требования к комплектующим

Требования к оборудованию для вашего термометра достаточно стандартные, нам пригодятся:

  • Arduino UNO
  • ЖК-дисплей 16х2
  • Датчик температуры DS18B20
  • Провода для перемычек
  • Резистор 1K
  • Макетная плата

Схема соединения

Сделайте соединения согласно приведенной ниже схеме.

Соединяем датчик и Ардуино

  • VCC -> Arduino 5V, плюс резистор 4,7K, идущий от VCC к Data
  • Data -> Пин 7 Arduino
  • GND -> GND Arduino

Соединения для ЖК-дисплея и Arduino UNO

  • Пин 1 -> GND
  • Пин 2 -> VCC
  • Пин 3 -> Arduino Пин 3
  • Пин 4 -> Arduino Пин 33
  • Пин 5 -> GND
  • Пин 6 -> Arduino Пин 31
  • Пин 7-10 -> GND
  • Пин 11 -> Arduino Пин 22
  • Пин 12 -> Arduino Пин 24
  • Пин 13 -> Arduino Пин 26
  • Пин 14 -> Arduino Пин 28
  • Пин 15 -> VCC через резистор 220 Ом
  • Пин 16 -> GND
Читайте также:  Обновление sony playstation 3

Подключите потенциометр, как показано выше, к контакту 3 на ЖК-дисплее, для управления контрастностью.

Этот проект работает на температурах до 125° C. В случае наличия некоторого диссонанса в значении показанной температуры дважды проверьте соединения с резистором, подключенным к DS18B20. После соединения всего, что описано выше, мы можем перейти к программированию.

Исходный код для термометра

Перед загрузкой исходного кода вам нужно настроить две библиотеки, необходимые для запуска этого кода в среде Arduino.

  • Первая библиотека называется – OneWire (скачать).
  • Вторая библиотека называется – DallasTemperature (перейти на GitHub).

После скачивания обеих библиотек переместите файлы в папку библиотек Arduino по умолчанию. Затем скопируйте код в IDE Arduino и загрузите его после двойной проверки правильности подключения вашего датчика.

Примерно это выглядит так:

Мы смогли измерить температуру до 100°C с помощью этого датчика! Он очень отзывчив.

После того, как вы создали проект, потестируйте устройство, погрузив датчик в горячую и холодную воду.

Цифровой термометр на Arduino и LCD дисплее 16х2

Исходное описание этого урока взято с сайта garagelab.com и находится по здесь

Этот урок показывает интересный способ считывания значений температуры с помощью схемы на основе Arduino и отображения ее на экране LCD дисплея размером 16×2 символов. В качестве температурного датчика в схеме используется микросхема LM35DZ.

Для этого урока понадобятся следующие компоненты:

– 1 плата Arduino (любая плата, совместимая с Arduino)

– 1 потенциометр с сопротивлением 10 КОм

– 1 Датчик температуры LM35

– 1 Макетная плата для монтажа без пайки

Очень удобен для этого и других уроков будет KIT22434P Стартовый набор для Arduino

Датчик LM35, применяемый в схеме измеряет температуру окружающей среды и преобразует ее в электрическое напряжение, пропорциональное этой температуре. В нашей схеме мы присоединяем выход датчика Vo к аналоговому порту Arduino A0, который преобразует это напряжение с число с плавающей точкой (float) – числовое значение тьемпературы, передаваемое затем на индикатор.
Потенциометр 10 КОм регулирует контрастность изображения дисплея.

Давайте соберем электрическую схему, изображенную на нашем рисунке, которая состоит из платы Arduino и других компонентов.
И затем запустим среду разработки Arduino IDE, в которой введем следующую программу:

Читайте также:  Плитка розовый свет в интерьере фото

#include
// IПодключение библиотеки для работы с LCD display

#define sensor 0 // Присваиваем имя “sensor” выврлу Arduino A0

int Vin; // в этой переменной сохраняется значение входного напряжения на входе Arduino

float Temperature; // В этой переменной хранится рассчитанное значение текущей температуры

float TF; // Значение температуры, преобразованное из Цельсия ºC в Фаренгейт ºF (в нашей программе не используется, но может быть полезно для дальнейшей модификации)

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

/* Данная функция лроежеляет номера портов Arduino, которые будут управлять работой LCD дисплея */

lcd.begin(16, 2); // Arduino настраивается на конфигурацию дисплея 16×2 символов

lcd.print("Temperature: "); // Вывод строки заголовка на экран дисплея

Vin = analogRead (sensor); /* Arduino измеряет напряжение на входе порта датчика и сохраняет его в переменной “Vin” */

Temperature=(500*Vin)/1023; /* Преобразование значения напряжения в температуру и сохранение в переменной
“Temperature” в градусах Цельсия ºC */

// TF = ((9*Temperature)/5)+32; // Преобразование градусов Цельсия ºC в Фаренгейт ºF – закомментировано, в программе не используется

lcd.setCursor(0, 1); // Перевести курсор дисплея в начало второй строки

lcd.print( Temperature ); // Выврд на экран значения температуры

lcd.print(" C"); // Вывод символа “C” для обозначения шкалы Цельсия

delay(1000); // Ждать 1 секунду, после чего произвести следующее измерение температуры

После окончания ввода загрузите программу в Aduino.

Теперь Ваш проект готов для измерения и отображения температуры.
Уверены, что это доставит Вам удовольствие.

Учтите при этом что датчик LM35DZ измеряет температуру в диапазоне -55ºC . 150ºC.

А вот как рассчитывается значение измеренной температуры:

В примененном нами датчике на каждый 1ºC значение выходного напряжения увеличивается на 10 мВ в диапазоне от 0 до 5 В. При этом точность оцифровки напряжения датчика – 10 бит (это разрешение аналогового порта Arduino), что составляет 1024 разных значения напряжения, соответствующих разным температурам.

При этом максимальное значение (1023) соответствует напряжению 5 В. Половина этого значения 511 соответствует 2,5 В и т.д.

Для расчета мы должны использовать значение температуры 500ºC, которое соответствует значению 1023 аналогового порта. Это недопустимо высокая температура для работы нашего датчика, но коэффициент преобразования датчика таков, что это максимальное значение мы и должны использовать для расчета текущей температуры.

Итак получаем следующее соотношение:

500ºC —– 1023 (максимальные значения)

Исходя из этого получаем формулу расчета температуры:

Читайте также:  Ибп с двумя аккумуляторами

Temperature = (500*Vin)/1023, в градусах Цельсия ºC

Если Выхотите преобразовать температуру в Фаренгейты, то получаем следующую формулу:

А вот примерно так будет выглядеть Ваш проект:

Только температура у Вас будет отображаться в градусах Цельсия

В этом эксперименте мы рассмотрим популярный цифровой датчик температуры DS18B20, работающий по протоколу 1-Wire, и создадим проект вывода показаний датчика на экран ЖКИ WH1602.

Необходимые компоненты:

DS18B20 – цифровой термометр с программируемым разрешением от 9 до 12 битов, которое может сохраняться в EEPROM-памяти прибора. DS18B20 обменивается данными по шине 1-Wire и при этом может быть как единственным устройством на линии, так и работать в группе. Все процессы на шине управляются центральным микропроцессором.

Диапазон измерений датчика: от –55 °C до +125 °C с точностью 0,5 °C в диапазоне от –10 °C до +85 °C. В дополнение DS18B20 может питаться напряжением линии данных (так называемое питание от паразитного источника) при отсутствии внешнего источника напряжения.
Каждый датчик типа DS18B20 имеет уникальный 64-битный последовательный код, который позволяет общаться со множеством датчиков DS18B20, установленных на одной шине. Первые 8 битов – код серии (для DS18B20 – 28h), затем 48 битов уникального номера, и в конце 8 битов CRC-кода. Такой принцип позволяет использовать один микропроцессор, чтобы контролировать множество датчиков DS18B20, распределенных по большому участку.
В нашем эксперименте мы будем считывать данные с датчика температуры DS18B20 и выводить на экран ЖКИ WH1602, который мы рассматривали в эксперименте 16. Схема подключения датчика температуры DS18B20 и WH1602 к плате Arduino показана на рис. 20.1.

Приступим к написанию скетча. Для работы с устройствами 1-Wire в Arduino есть стандартная библиотека OneWire. Содержимое скетча для чтения данных с датчика и вывода на экран индикатора WH1602 показано в листинге 20.1. Последовательность данных для чтения данных с устройств 1-Wire следующая:
1. Произвести RESET и поиск устройств на линии 1-Wire.
2. Выдать команду 0x44, чтобы запустить конвертацию температуры датчиком.
3. Подождать не менее 750 мс.
4. Выдать команду 0xBE, чтобы считать ОЗУ датчика (данны о температуре будут в первых двух байтах).

Порядок подключения:

1. Подключаем датчик DS18B20 и WH1602 по схеме на рис. 20.1.
2. Загружаем в плату Arduino скетч из листинга 20.1.
3. Смотрим на экране дисплея показания датчика температуры.

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Строительство
0 комментариев
No Image Строительство
0 комментариев
No Image Строительство
0 комментариев
No Image Строительство
0 комментариев
Adblock detector