Электронный термометр на четыре канала (Arduino UNO, LM235)

Принципиальная схема самодельного четырехканального термометра на Arduino UNO, 1602А и термодатчиках LM235, описание работы и программа. В некоторых случаях необходимо измерять температуру одновременно в нескольких местах. Например, в четырех -дома, на улице, на входе котла отопления, на выходе котла отопления.

Такой прибор очень просто и недорого можно сделать используя универсальный микроконтроллерный модуль ARDUINO UNO и двухстрочный ЖК-дисплей типа 1602А (на основе контроллера HD44780), а так же, четыре недорогих аналоговых термодатчика LM235. Все это автор приобрел на сайте «Aliexpress» за сумму ниже 600 рублей с учетом доставки.

Но, прежде всего, хочу напомнить, что ARDUINO UNO это относительно недорогой готовый модуль, - небольшая печатная плата, на которой расположен микроконтроллер ATMEGA328, а так же вся его «обвязка», необходимая для его работы, включая USB-программатор и источник питания. Тем, кто незнаком с ARDUINO UNO, советую сначала ознакомиться со статьями Л.1 и Л.2.

Принципиальная схема

Схема четырехканального термометра показана на рис. 1. Он предназначен для измерения температуры от -40°С до +120°С (согласно параметрам используемых датчиков). Как видно из схемы, к цифровым портам D2-D7 платы ARDUINO UNO подключен модуль жидкокристаллического индикатора Н1 типа 1602А. Питается ЖК-индикатор от стабилизатора напряжения 5V, имеющегося на плате стабилизатора напряжения 5V.

Принципиальная схема четырехканального термометра на Arduino UNO, 1602А и термодатчиках LM235

Рис. 1. Принципиальная схема четырехканального термометра на Arduino UNO, 1602А и термодатчиках LM235.

Термодатчки LM235 представляют собой физически, термозависимые стабилитроны. Напряжение на них численно равно температуре по шкале Кельвина, при расчете 0,01 V на один градус. То есть, при 0°С (273К) на них 2,73V.

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

Таблица 1.

Исходный код программы для четырехканального термометра на Arduino UNO

Рис. 2. Исходный код программы для четырехканального термометра на Arduino UNO.

Измеряемые напряжения от термодатчиков Т1,Т2, Т3 и Т4 поступают на четыре аналоговых входа А1, А2, А3 и А4. Всего аналоговых входов шесть, - А0-А5, можно было выбрать любые четыре из них. В данном случае, выбраны А1, А2, А3, А4.

Напряжение на аналоговых портах может быть только положительным и только в пределах от нуля до напряжения питания микроконтроллера, то есть, номинально, до 5V. Выход аналогового порта преобразуется АЦП микроконтроллера в цифровую форму.

Для получения результата в единицах вольт, нужно его умножить на 5 (на опорное напряжение, то есть, на напряжение питания микроконтроллера) и разделить на 1024. Но, нам, во-первых, нужно получить результат не в единицах вольт, а в единицах равных 0,01 V, а во-вторых, перевести его в градусы Цельсия. Поэтому результат умножается на 5 и делится на 10,24, а затем из него вычитают 273.

Программа на языке C++ приведена в таблице 1. Для управления ЖК-индикатором решено было использовать порты с D2 по D7 платы ARDUINO UNO. В принципе, можно и другие порты, но я вот так, решил использовать именно эти. Для того чтобы индикатор взаимодействовал с ARDUINO UNO нужно в программу загрузить подпрограмму для его управления.

Такие подпрограммы называются «библиотеками», и в программном комплекте для ARDUINO UNO есть много разных «библиотек». Для работы с ЖК-индикатором на основе HD44780 нужна библиотека LiquidCrystal. Поэтому программа (таблица 1) начинается с загрузки этой библиотеки:

#include

Эта строка дает команду загрузить в ARDUINO UNO данную библиотеку. Затем, нужно назначить порты ARDUINO UNO, которые будут работать с ЖК-инди-катором. Я выбрал порты с D2 по D7. Можно выбрать другие. Эти порты назначены строкой:

LiquidCrystal led (2, 3, 4, 5, 6, 7);

После чего, программа переходит собственно к работе термометра. Для измерения температуры решено было использовать аналоговые входы А1, А2, АЗ и А4. Эти входы заданы в строках:

int analogInput=l;

int analogInputl=2;

int analogInput2=3;

int analog!nput3=4;

Для чтения данных с аналоговых портов используется функция analogRead. Чтение данных с аналоговых портов происходит в строках:

vout=analogRead(analogInput);

voutl=analogRead(analoglnputl);

vout2=analogRead(analogInput2);

vout3=analogRead(analogInput3);

Затем, производится вычисление значения температуры, выраженной в градусах Цельсия:

temp=vout*5.0/10.24-273.0;

templ=voutl*5.0/10.24-273.0;

temp2=vout2*5.0/10.24-273.0;

temp3=vout3 * 5.0/10.24-273.0;

В этих строках число 5.0 - это напряжение на выходе стабилизатора платы ARDUINO UNO. В идеале должно быть 5V, но для точной работы вольтметра это напряжение нужно предварительно измерить.

Подключите источник питания и измерьте достаточно точным вольтметром напряжение +5V на разъеме POWER платы. Что будет, то и вводите в эти строки вместо 5.0, например, если будет 4.85V, строки будут выглядеть так:

temp=vout*4.85/10.24-273.0;

templ=voutl*4.85/10.24-273.0;

temp2=vout2*4.85/10.24-273.0;

temp3=vout3 * 4.85/10.24-273.0;

Таким образом, в текст программы нужно внести изменения соответственно фактическому напряжению на выходе 5-воль-тового стабилизатора платы ARDUINO UNO. После этого прибор будет работать точно, и никакого налаживания или калибровки не потребует.

Каравкин В. РК-06-17.

Литература:

  1. Каравкин В. -Ёлочная мигалка на ARDUINO как средство от боязни микроконтроллеров. РК-11-16.
  2. Каравкин В. - Частотомер на ARDUINO. РК-12-16.
1 216 На микроконтроллерах
arduino термометр микроконтроллер
pcbway
х (мм)
Получи купон на $5.00!
Написать комментарий:

cashback