User Tools

Site Tools


зал

This is an old revision of the document!


Зал

Общий зал - это место в доме, где можно уединиться для комфортного просмотра интересного фильма или собраться большой семьей и отпраздновать какое-нибудь торжество.

Интересная мебель, приятная цветовая палитра создают уютное жизненное пространство, а “умные вещи” помогают обустроить это пространство, сделать его удобным.

Существуют межгосударственные стандарты, регулирующие параметры микроклимата в жилых помещениях. Так, например, средняя температура в гостинной должна быть от +19°C до +21°C, а относительная влажность от 30% до 60% в зависимости от периода года. <note tip> Учитывая параметры температуры и влажности, рассчитывают "тепловой индекс" (или “индекс комфортности”), на основании которого удобнее автоматически управлять отопительными приборами, кондиционерами и вентиляторами. </note>


Климатические датчики

а) Температуры

В качестве недорогих измерителей температуры с помощью электрического тока можно использовать датчик DS18B20+ или такой же, но в герметическом корпусе.

Параметры датчика DS18B20:

  • Диапазон измеряемых температур: −55…+125 °C
  • Точность: ±0,5°C (в пределах −10…+85 °C)
  • Время получения данных: 750 мс при 12-битном разрешении; 94 мс при 9-битном разрешении
  • Напряжение питания: 3–5,5 В
  • Потребляемый ток при бездействии: 750 нА
  • Потребляемый ток при опросе: 1 мА

б) Влажности

Наличие и количество жидкости можно определить:

в) Температуры и влажности

В реальных проектах управления климатом удобно использовать цифровые датчики DHT-11 или DHT-22, отличающиеся точностью, скоростью измерений и, соответственно, ценой.

С помощью библиотеки, созданной специально для датчиков DHT можно считывать сразу температуру и влажность.

Параметры датчиков DHT-11 DHT-22
определение влажности в диапазоне 20-80% 0-100%
определение температуры от 0°C до +50°C от -40°C до +125°C
частота опроса 1 раз в секунду 1 раз в 2 секунды

Датчик температуры в TinkerCAD (TMP36)

В TinkerCAD для измерения температуры используется интегральный датчик TMP36 с аналоговым выходом. Напряжение на выходе датчиков линейно пропорционально температуре в градусах по шкале Цельсия. Дополнительной калибровки не требуется. При этом датчики обеспечивают точность измерения ±1°C при температуре +25°C и точность ±2°C в диапазоне -40°C … +125°C.

tmp36.jpg Выходной диапазон напряжения TMP36 составляет от 0.1В (-40°C) до 2.0В (150°C), но после 125°C точность измерения уменьшается. Подаваемое напряжение от 2.7В до 5.5В, потребление тока 0.05 мА.

Датчик имеет три контакта для подключения к контроллеру arduino:

  • 2.7-5.5V (питание) - подключается к контакту «5V» arduino
  • Земля (общий) - подключается к любому контакту «GND» arduino
  • Аналоговый выход (сигнальный) - подключается к любому аналоговому пину (A0-A5) arduino.

Использовать TMP36 для измерения температуры достаточно просто, нужно соединить его левый контакт с напряжением 2.7-5.5В, а правый с землей. Тогда на среднем выводе будет присутствовать напряжение, линейно пропорциональное температуре.

Для перевода выходного напряжения в температуру используют формулу (Vout измеряется в милливольтах):

Температура в °C = [Vout - 500] / 10

Например, выходное напряжение составляет 1 В, это значит, что температура равна ((1000 мВ - 500) / 10) = 50 °C.


Схема подключения

Для тестирования датчика TMP36, подключенного к порту A0, будем использовать светодиод, анод которого соединен с цифровым портом D3. Этот порт поддерживает широтно-импульсную модуляцию (ШИМ) и может выдавать значение от 0 до 255 для плавного изменения яркости свечения светодиода.

<note important> В примере для упрощения схемы светодиод подключается без токоограничивающего резистора! Для устойчивой работы светодиода необходимо последовательно с анодом или катодом подключить резистор номиналом от 180 до 220 Ом. </note>

zal02.jpg


Программный код

Программный код, представленный на рисунке ниже, выводит во встроенный “Монитор последовательного интерфейса” два параметра: “данные температурного датчика на выводе” и данные “с аналогового вывода”.

zal03.jpg

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

  • “данные температурного датчика на выводе” изменяются в диапазоне от -40 до +125
  • данные “с аналогового вывода” изменяются в диапазоне от 20 до 358.

Так как ШИМ-порт поддерживает значения от 0 до 255, то выходные данные от датчика TMP36 надо преобразовать в диапазон от 0 до 255. Обычно в “больших” языках программирования для этого используют команду map().

<note>

map(value, fromLow, fromHigh, toLow, toHigh)

Преобразует значение переменной из одного диапазона в другой. Например, значение переменной value, равное fromLow, будет преобразовано в число toLow, а значение fromHigh - в toHigh. Все промежуточные значения value масштабируются относительного нового диапазона [toLow; toHigh].</note>

В блочном языке программирования TinkerCAD есть команда: Если использовать эту команду для преобразования “данных с аналогового вывода”, то на выходе получаются значения:

  • при диапазоне от 0 до 255 - от 4 до 89
  • при диапазоне от 0 до 512 - от 10 до 179
  • при диапазоне от 0 до 1024 - от 20 до 358

Опытным путем можно подобрать рабочий диапазон для команды: от -700 до 4550. В этом случае на цифровой пин (к которому подключен светодиод) при температуре 20°C подается небольшое значение (примерно 33), то есть светодиод еле засветится, а при температуре 40°C подается максимальное значение 255, то есть светодиод будет светиться максимально ярко.

<note important>Мы выбрали диапазон температур исходя из того, что в дальнейшем arduino будет управлять не светодиодом, а двигателем (вентилятора, кондиционера и т.п.). Хотелось, чтобы реальный вентилятор начинал работать при небольшом превышении нормальной температуры и достигал своей максимальной производительности при жаре в 40°C. </note>

Дополненный функцией map() - “СОПОСТАВИТЬ…” программный код управления светодиодом:



Управление мощной нагрузкой

Контроллер Arduino обычно выступает в роли логического (командного) устройства. Контроллер выдает команды, а другие, более сильные, более мощные устройства выполняют полезные действия. Представьте, как вы поворачиваете маленький кран рукомойника, а мощный насос продавливает по трубе под напором воду. И, чем больше вы поворачиваете кран, тем мощней струя воды.

Транзисторный усилитель

В электронных устройствах постоянного тока слабый управляющий (логический) сигнал превращают в сильный “усилители”, которые строятся на основе транзисторов.

<note> Транзистор (от английских слов transfer — переносить и resistor — сопротивление) электронный полупроводниковый прибор, предназначенный для усиления, генерирования и преобразования электрических колебаний различных частот.

Изобретен в 1948 г. американцами У. Шокли, У. Браттейном и Дж. Бардином </note>


Схема подключения

На схеме к аналоговому порту A0 подключен датчик температуры TMP36, который определяет температуру окружающей среды. При достижении температуры выше 20°C, контроллер arduino начинает выдавать на цифровой порт D3 ШИМ-сигнал.

К порту D3 через резистор 100 Ом подключен контакт Gate (затвор) полевого N-канального транзистора. К контакту транзистора Drain (сток) подключен двигатель (вентилятора, кондиционера и т.п.). К другому контакту двигателя подключен мощный источник питания (в нашем случае на 5 вольт).

<note important>Обязательным условием устойчивой работы схемы является соединение контактов GND (земля) всех элементов вместе</note>


Программный код

На рисунке выше температура датчика TMP36 25°C. При этом обороты двигателя 2846 rpm (обороты в минуты). С помощью программного кода сделаем так, чтобы двигатель начинал вращаться только при температуре выше 20°C и максимальные обороты набирал при температуре окружающей среды 40°C. При дальнейшем росте температуры, на пин D3 выдается значение 255 - максимальные обороты двигателя.

“TMP36_T” и “TMP36_A0” - переменные для сохранения параметров, выдаваемых датчиком температуры TMP36. Заметьте так же, что, в соответствии с задачей, изменены параметры команды [СОПОСТАВИТЬ … С ДИАПАЗОНОМ … ОТ … ДО …]


На главную страницу

зал.1635772800.txt.gz · Last modified: by serviko