2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ардуино датчик температуры двигателя

DS18B20 имеет различные форм-факторы. Так что выбор, какой именно использовать, остается за вами. Доступно три варианта: 8-Pin SO (150 mils), 8-Pin µSOP, и 3-Pin TO-92. Серфинг по eBay или Aliexpress показывает, что китайцы предлагают версию TO-92 во влагозащищенном корпусе. То есть, вы можете смело окунать подобное чудо в воду, использовать под дождем и т.д. и т.п. Эти сенсоры изготавливаются с тремя выходными контактами (черный — GND, красный — Vdd и белый — Data).

Различные форм-факторы датчиков DS18B20 приведены на рисунке ниже.

Модель DS18B20 во влагозащищенном корпусе:

DS18B20 удобен в использовании. Запитать его можно через контакт data (в таком случае вы используете всего два контакта из трех для подключения!). Сенсор работает в диапазоне напряжений от 3.0 В до 5.5 В и измеряет температуру в диапазоне от -55°C до +125°C (от -67°F до +257°F) с точностью ±0.5°C (от -10°C до +85°C).

Еще одна крутая фича: вы можете подключить параллельно вплоть до 127 датчиков! и считывать показания температуры с каждого отдельно. Не совсем понятно, в каком проекте подобное может понадобится, но подключить два сенсора и контролировать температуру в холодильнике и морозильной камере можно. При этом вы оставите свободными кучу пинов на Arduino. В общем, фича приятная.

Что «умеет» DS18B20

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

  • Есть встроенная 64 битная постоянная память, содержащая среди прочего уникальный код каждого корпуса, используемый при адресации устройства;
  • Для подключения к контроллеру нет необходимости в дополнительных компонентах, достаточно присоединить сенсор напрямую к любому из цифровых входов на Ардуино;
  • Есть возможность подачи так называемого «тревожного сигнала» на логические цепи, если характеристики температуры отличаются от заложенных во внутреннюю память;
  • Допустимо подключение нескольких датчиков на одной линии связи с бесконфликтной их работой;
  • Диапазон определяемых температур от −55 °С до +125 °С;
  • Точность 0.5 °С;
  • Доступно изменение разрешающей способности от 9 до 12 бит;
  • Передача данных осуществляется на одном канале по протоколу 1-Wire, причем для обмена достаточно единичной линии или двух проводников;
  • Время получения показаний 750 мс;
  • Температура измеряется в Цельсии;
  • Для питания устройства достаточно чуть более 3 вольт.
Читать еще:  Что такое двигатель стоке

В скетче используется две стандартные библиотеки Ардуино это DS18B20 и LiquidCrystal_I2C. Данные библиотеки вы можете найти в менеджере библиотек в меню Arduino IDE (см. Инструменты -> Управлять библиотеками). Так же данные дополнительно выводятся в последовательный порт, эти данные вы можете посмотреть используя стандартный монитор порта Arduino IDE (см. Инструменты -> Монитор порта). Не забудьте установить скорость порта равную 9600 бод/сек.

Пример скетча:

Вывод

Используя lcd 1602 и схему подключения lcd 1602 к Ардуино по I2C вы сможете применять данный LCD дисплей в различных примерах основанных на Arduino. Так же используя датчик температуры вы можете автоматизировать процессы основанные на контролировании температуры.

Программная часть

Скачать библиотеку для работы с датчиком и другими устройствами на 1-Wire, можно на Github по ссылке. Для установки, загрузите архив с сервера и разархивируйте по адресу «Мои документы» – «Ардуино» – «libraries» или другое место, где вы ее разместите.

Виды скетчей и библиотек

Для написания программы можно использовать несколько библиотек:

  1. OneWare – основная, с помощью которой можно использовать самые простые скетчи для работы одного или нескольких датчиков, подключённых по нормальной и фантомной схеме питания.
  2. DallasTemperature — Рекомендуется использовать библиотеку для комфортного взаимодействия с устройствами, особенно если их подключается к плате несколько. Некоторые моменты в логике с помощью библиотеки можно упростить.

В скетчах применяется только первая или две библиотеки в паре. Чтобы запустить работу измерителя температуры, запустите Ardiuino IDE, скопируйте в него код и загрузите в контроллер.

Три варианта скетчей для обработки и считывания данных с датчика можете скачать по ссылке.

Считывание данных с датчиков DHTxx

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

Читать еще:  Двигатель андория 4ст90 схема

Для начала скачайте библиотеку для работы с DHT датчиками здесь: Github. Для загрузки нажмите кнопку DOWNLOADS в верхнем правом углу.

Переименуйте папку DHT и убедитесь, что в ней есть файл dht.cpp и другие. После этого переместите папку DHT в папку arduinosketchfolder/libraries/. Возможно вам придется создать подпапку для библиотек, если вы впервые интегрируете библиотеку. Перезагрузите Arduino IDE.

Теперь загрузите скетч: Examples->DHT->DHTtester. Выглядит программа примерно так:

Если вы используете датчик модели DHT11, закомментируйте строку, которая устанавливает тип:

//#define DHTTYPE DHT22 // DHT 22 (AM2302)

И снимите комментарий со строки:

#define DHTTYPE DHT11 // DHT 11

Эти настройки помогают снимать правильные значения именно с вашей модели датчика. В окне серийного монитора этобудет выглядеть примерно так:

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

Если Вам необходимы даташиты на датчики, просмотреть и скачать их можно по ссылкам:

Подключение нескольких датчиков температуры DS18B20 к Ардуино

Все датчики DS18B20 подключаются параллельно, для них всех достаточно одного резистора. При помощи библиотеки OneWire можно одновременно считать все данные со всех датчиков. Если количество подключаемых датчиков более 10, нужно подобрать резистор с сопротивлением не более 1,6 кОм. Также для более точного измерения температуры нужно поставить дополнительный резистор на 100…120 Ом между выходом data на плате Ардуино и data на каждом датчике. Узнать, с какого датчика получено то или иное значение, можно с помощью уникального серийного 64-битного кода, который будет выдан в результате выполнения программы.

Для подключения температурных датчиков в нормальном режиме нужно использовать схему, представленную на рисунке.

Читать еще:  Что такое эффективность теплового двигателя

В режиме паразитного питания схема выглядит иначе. Контакт Vdd практически не задействован, питание идет через выход data.

Делаем термостат

Теперь добавим в программу некое действие, которое будет совершаться если температура упадет ниже заданного нами порога. Пусть этот порог будет равен 15°C. Самое простое, что мы можем сделать — это зажигать на Ардуино штатный светодиод #13. Получается такая вот программа:

Кто-то забыл закрыть окно — температура резко опустилась ниже 15 — светодиод зажигается. Закрываем окно, активно дышим — светодиод гаснет. А теперь представьте, что вы зажигаете не светодиод, а подаете сигнал на реле, которое включает обогреватель в комнате. Получается готовый термостат!

Немного изменив программу можно отслеживать не понижение, а превышение заданного уровня. Например, удобно будет следить за температурой внутри, скажем, серверной, и при увеличении температуры до 40 градусов, включать вытяжку!

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector