Категория: Arduino - проекты |
Комментарии: 0
17 января 2016
Датчики температуры LM335 и DHT-11. Личные доводы и ничего более [Обзор]
В этом посту не будет программ, а будет краткая характеристика датчиков температуры LM335 и DHT-11 (Аналоговый и цифровой).
Пока писался заголовок, было написано пару демонстрационных программ для работы с датчиками. И нелепый вывод по их работе.
Добро пожаловать ниже
Первым в руки попадает датчик DHT-11. Цифровой 16 разрядный датчик. В каждых 8ми битах содержится число для температуры и для влажности.
Сам датчик очень стабильный, качественно исполнен. И стоимость датчика всего 30 гривен ~ $1.20. Существуют версии датчиков DHT-22 и DHT-21.
Если Вам интересны внутренности датчика, так вот они на рисунке ниже.
Углубляться в физический принцип измерения не будем. Сразу к датчику.
В моем случае был приобретен датчик температуры и влажности DHT-11 без обвеса который тянет на целый $1 доллар сверху стоимости.
Для быстрого подключения датчика температуры и влажности к Ардуино необходимо припаять к второму пину датчика, а именно линии данных "DATA" резистор 10кОм - 5кОм, если есть под рукой то резистор в исполнении SMD отлично подойдет. В моем случае его не было, на работу это не повлияет.
Некоторые данные: В режиме измерения датчик DHT-11 потребляет 35 миллиампер, а в режиме покоя 1 миллиампер.
У датчика DHT -цифровой сигнал.
Если есть желание подключать датчик на расстоянии 15 и более метров используйте резистор номиналом 5кОм.
На счет вывода №3 на датчике скажу следующее - не спешите его отламывать. Он используется для установки датчика в режим считывания данных или покоя. По дурости я согнул ногу, а когда понадобилось разогнуть - она отвалилась. Если планируете создавать энергоэффективные проекты то задумайтесь.
Ниже приведен рабочий код программы для считывания данных. Просто пробежавшись глазами все становится понятно. Если не понятно, то можно задать вопрос с комментариях.
Совсем забыл о том что для датчика DHT-11 необходимо 2 файла библиотеки.
Скачать библиотеку для DHT1-11
В архиве находятся 2 файла которые необходимо поместить в папку с кодом програмы для DHT-11
- /*
- * Создано специально для сайта 1injener.ru
- * Только проверенные программы
- * Проверялось на MEGA2560
- * Библиотеки должны лежать в папке с *.ino файлом!!! Важно!
- */
- #include "dht11.h" // Добавляем библиотеку DHT11
- dht11 DHT; // Объявление переменной класса dht11
- #define DHT11_PIN 4 // Определеяем куда подключим датчик DHT11
- void setup()
- {
- //Инициализация Serial
- Serial.begin(9600);
- }
- void loop(){
- int chk;
- chk = DHT.read(DHT11_PIN); //Считывание данных с датчика
- String Hum = String(DHT.humidity,DEC); //Определение части для Влажности
- String Temp = String(DHT.temperature,DEC); //Определение части для Температуры
- Serial.println("Temperatura: "+Temp+" tC | Vlaga: "+Hum); //Вывод на екран
- delay(4000); //Опрос датчика каждые 4 секунды
- }
И собственно результат программы для опроса датчика температуры в терминале ниже на рисунке.
Слава Богу дома тепло. Пока не пришли морозы..
Далее следует аналоговый датчик температуры LM335.
Ранее на сайте я рассматривал его кое как, но все же можно изъять полезную информацию о датчике в статье: Датчик температуры своими руками
Датчик температуры Lm335 датчик имеет аналоговый сигнал на выходе.
Выход датчика изменяется по закону 1 градус Кельвин = 10 миливольт на выходе.
Для работы с датчиком ему нужен вспомогательный резистор по питанию датчика.
Я производил подключение lm335 по упрощенной схеме. Так же есть схема подключения с дополнительным подстроечным резистором что даст возможность точнее проводить измерения откалибровав датчик.
Данный датчик может продаваться еще в железном корпусе.
Ниже код Ардуино mega для датчика температуры и влажности LM335
- /*
- * Создано специально для сайта 1injener.ru
- * Только проверенные программы
- * Проверялось на MEGA2560
- */
- int lm335=7;
- void setup()
- {
- Serial.begin(9600); //Инициализация Serial
- }
- void loop()
- {
- double val = analogRead(lm335); //Считывание данных с аналогового входа
- Serial.print("Analog LM335: ");
- double voltage = val*5.0/1024; //Преобразование полученных данных в Вольты
- double temp = voltage*100 - 273.15; //Преобразование в температуру Цельсий
- Serial.println(temp); //Вывод данных в терминал
- delay(2000);
- }
Увы, подключая датчик по упрощенной схеме, данные были далеки от идеала. Данный датчик требует калибровки с помощью подстроечного резистора.
Калибровка Lm335 достигается при высчитанном усредненном значении на выходе в 298 милиВольт при температуре 25 градусов.
Итог близится к тому что различные автоматизированные системы требуют данных определенного вида для своей работы. Это логично. Или аналоговые данные или цифровые.
DHT-11 хорош своей стабильностью и комбинацией с температурой влажности. А аналоговый датчик температуры LM335 хорош тем что может выдать значения до сотых. Что немало важно для точных систем.
Программы работают. Можно изменить как угодно под свои нужды. Все вопросы в комментарии
ЖКИ дисплей WH0802 подключение к Ардуино [Много проводов]
Управление шаговым биполярным двигателем A4988ET [Рабочий код ino]
Новые изобретения инженеров и техников, дизайнеров и обычных людей, все то что может изменить наш мир к лучшему. Новая техника и оружие, спасателей и спецназа. Гаджеты и девайсы, устройства для отдыха и работы. Советы для экономии семейного состояния. Все гениальные изобретения в простом формате! Ведь "Все - Просто!"
Copyright © 2013–2024
Автоматизация и проектирование - 1injener.ru
Copyright © 2013–2024
Автоматизация и проектирование - 1injener.ru