Для управления кулерами и двигателем постоянного тока используются два транзисторных ключа на МОП- транзисторах. Кулеры могут работать в двух режимах напрямую от источника питания +12В и от +5V от стабилизатора напряжения U3.
Отдельно предусмотрены выводы MISO MOSI SCK Reset для возможности прямо на плате загружать обновленный код для работы системы автоматизированной очистки воздуха.
Для питания датчика и дисплея сделаны два вывода +5В, а также есть выводы с выходным напряжением +12В и вывод in c напряжением примерно +11В, данный вывод защищен от обратной полярности с помощью диода. Дополнительные выводы питания предназначены для модернизации системы, а именно подключения дополнительных кулеров при необходимости повысить производительность устройства. (рисунок 11)
Рисунок 11 - Принципиальная схема узла управления
Трассировка печатной платы была выполнена в системе автоматизированного проектирования DipTrace PCB Layout. Предварительно разрабатывалась принципиальная схема (рисунок 11) в DipTrace Shematic, после чего она была импортирована в редактор печатных плат. Полученная печатная плата двухслойная односторонняя. Вся разводка сделана в нижнем слое (рисунок 12). Ширина шин земли и питания составляет 0,6 мм, а у остальных дорожек 0,5 мм. Такая ширина выбрана для предотвращения падения напряжения и нагрева проводников. Для отвода тепла от стабилизаторов напряжения и транзисторов предусмотрено соответствующее место на плате под радиаторы [11]. Размеры печатной платы 64Ч73 мм.
Рисунок 12 - Трассировка печатной платы в нижнем слое
Для возможности выбора режима работы кулера предусмотрено 3 вывода для монтажа переключателя. Параллельно диодам D2 и D3 будут подключены кулеры и двигатель постоянного тока, для этого размещены винтовые клеммники. Для подключения датчиков, дисплея и реле сделаны выводы от соответствующих ножек микроконтроллера. Разъёма питания находится рядом с выводами переключателя и подключен к шине питания 12 V и земли. Медная заливка сделана и в нижнем и верхнем слое для использования в качестве низкоимпедансного проводника для сети земли (рисунок 13) [11].
Рисунок 13 - Трассировка печатной платы с учетом заливки в нижнем и верхнем слое
2.4 Разработка блока обеззараживания воздуха
Дезинфекции воздушных масс в системе автоматизированной очистки воздуха происходит под воздействием ультрафиолетового излучения. В качестве источника такого излучения выступает бактерицидная лампа, напрямую подключённая к ЭПРА, которая в свою очередь питается от сети. В разрыв между ЭПРА и сетью питания устанавливается твердотельное реле для управления процессом включения и выключения лампы. Для управления один выход реле подключается к общей земле, а второй к выводу микроконтроллера. Подробная схема включения представлена на рисунке 14.[14]
Рисунок 14 - Схема включения блока обеззараживания воздуха
При выходе лампы из строя ЭПРА блокирует подачу питания на неё. Кроме того, ЭПРА обеспечивает безопасный плавный нагрев лампы перед включением.
В качестве ключа управления лампой было выбрано твердотельное реле, так как в отличии от электромагнитного реле, в нем полностью отсутствует механическое переключение, что значительно повышает срок службы и отсутствие “щелчка” в момент срабатывания. Выбранная модель твердотельного реле способно выдержать ток до 25 А на своих выводов, что обеспечивает двойной запас, если сравнивать с пиковым током в момент включения бактерицидной лампы. Управляющее напряжение на реле находится в диапазоне от 3 В до 32 В, что даёт возможность управлять работой бактерицидной лампы через реле используя микроконтроллер Atmega328P, у которого управляющие напряжение 5 В. [14]
Для управления временем работы бактерицидной лампы в среде разработки Arduino IDE создано два виртуальных таймера. Первый определяет период времени, в который лампа находится выключенной, а именно 2 час. Второй таймер включается по истечению 2 часа на 30 минут, тем самым определяя время работы лампы. При отключении системы автоматизированной очистки воздуха от источника питания, таймеры обнуляются, и при последующей подаче питания таймеры запускаются заново. (Приложение 1)
Тестирования корректного срабатывания таймеров проведено в системе моделирования Proteus, где был собран стенд управления твердотельного реле, в роли которого выступает светодиод. Стенд включает: микроконтроллер Atmega328P c внешним генератором частоту X1 и кнопкой перезапуска, стабилизатор напряжения LM7805 c минимальной обвязкой. На вход стабилизатора поступает 12 В постоянного напряжения, которые на выходе преобразуется в напряжение питания микроконтроллера 5 В. (Рисунок 15)
В Proteus на микроконтроллер можно подгрузить бинарный код, выгруженный из Arduino IDE, с расширением .hex, а также настроить внешний кварцевый резонатор на нужную частоту для правильного отсчёта времени. Для проведения тестов было выбран период ожидания работы 20 секунд, а время работы 10 секунд. Результаты тестирования таймеров показаны на рисунках 15, 16, 17.
Рисунок 15 - Первое включение светодиода
Рисунок 16 - Время выключение светодиода
Рисунок 17 - Второе включение светодиода
По результатам тестирования видно, что светодиод включается каждые 20 секунд на 10 секунд. Исходя из этого можно сделать вывод, при подключении реле таймеры будут работать корректно, так как для управления светодиодом необходимо 5 В на выводе микроконтроллера, что соответствует управляющему напряжение для реле.
2.5 Алгоритм работы устройства
Разработанный алгоритм работы устройства предоставлен на рисунке 18 в виде блок схемы. Алгоритм выполняется блоком управления. (Приложение 2)
Рисунок 18 - Блок схема алгоритма работы устройства
Вначале программы вводятся все необходимые переменные для работы:
· hum= переменная влажности, где будет хранится показатели относительной влажности с датчика DHT11.
· waterlevel= переменная для считывания значения с датчика уровня воды, которая может принимать два значения логического 0 или 1.
· humMin, humMax= нижняя и верхняя граница относительной влажности благоприятная для здоровья человека.
· minfanSpeed, minmotSpeed, maxfanSpeed, maxmotSpeed= переменные минимальной и максимальной скорости вращения кулеров и двигателя.
Переходим в цикл настройки, который выполняется один раз при запуске программы или перезагрузке. В данной процедуре выполняется задержка 1 секунда для определения датчика DHT11, а затем считывается значение влажности.
После чего переходим к бесконечному циклу работы, где первоначально устанавливается задержка 0,1 секунду для определения датчика уровня воды. Затем полученное значение влажности в процедуре настройки с датчика температуры и влажности проходит ряд условий, где сравнивается с максимальным и минимальным значением влажности, заданным предварительно.
В первом условие проверяется значение с датчика уровня воды, если оно равно логической 1, то и кулеры, и мотор прекращают работать, а на дисплей выводится надпись “SOS”, что символизирует о необходимость долить воды, а именно уровень воды находится на нижней границе допустимой для корректной работы устройства. Если значение с датчика уровня воды логический 0, то переходим к следующему условию. Второе условие выполняется если влажность с датчика меньше нижней границы относительной влажности, при этом кулер и мотор будут работать на максимальных скоростях. Если второе условие не выполняется переходим к следующему. В третьем условии влажность датчика должна быть между нижней и верхней границей относительной влажности, тогда скорость кулера и двигателя уменьшается от своего максимального значения пропорционально увеличению показателей влажности с датчика. Если третье условие не выполняется переходим к следующему. Последнее условие устанавливает скорость вращения кулеров и двигателя на минимально допустимую, если показатели влажности больше верхней границы относительной влажности.
После проверки условий на соответствие влажности переходим к условию с таймером, который каждые 2 секунды считывает значения температуры и влажности. Полученное значение влажности при выполнении условий таймера будет сравнивать с границами влажности в каждой новой итерации бесконечного цикла. В конце цикла выводятся на дисплей значения температуры и влажности с DHT11. Для корректного отображения данных на дисплеи срабатывает задержка 0,2 секунды. После этого все итерации цикла выполняются заново.
2.6 Тестирование алгоритма работы
Перед пайкой печатной платы необходимо убедится в корректном выполнение условий алгоритма работы системы автоматизированной очистки воздуха. Принципиальная схема разрабатываемого устройства предварительно собрана на макетной плате. Для вывода значений ШИМ, передающихся кулеру и мотору, использовался монитор последовательного порта, который выводил данные при выполнение каждой интеграции цикла.
Стандартная частота ШИМ Atmega328P составляет 488 Гц. При подаче низкого уровня сигнала ШИМ на стандартной частоте будет характерный писк от кулера и мотора. Для устранения данной проблемы на выводах управления кулером и мотором необходимо было повысить частоту ШИМ сигнала до 31,4 кГц, чтобы избежать попадание в слышимый человеческим ухом диапазон частот. Для повышения необходимо поменять значения регистров встроенного в микроконтроллер таймера.[5]
Максимальное значение ШИМ сигнала для DC мотора 170, для кулера 200, а минимальное 100 и 135 соответственно. Результаты представлены в таблице 3.
Условия сравнения влажности:
· Влажность в помещении меньше минимально допустимой = красный
· Влажность в помещении в заданных границах влажности = зеленый
· Влажность в помещении больше максимально допустимой = желтый
Условие проверки уровня воды: датчик не тонет = серый.
Таблица 3 - Значения ШИМ
|
ШИМ кулеру |
ШИМ DC мотору |
|
|
200 |
170 |
|
|
200 |
170 |
|
|
168 |
135 |
|
|
140 |
106 |
|
|
135 |
100 |
|
|
135 |
100 |
|
|
142 |
107 |
|
|
158 |
125 |
|
|
168 |
135 |
|
|
171 |
139 |
|
|
176 |
144 |
|
|
179 |
148 |
|
|
174 |
142 |
|
|
171 |
139 |
|
|
171 |
139 |
|
|
173 |
141 |
|
|
173 |
141 |
|
|
176 |
144 |
|
|
174 |
142 |
|
|
179 |
148 |
|
|
189 |
158 |
|
|
196 |
165 |
|
|
199 |
169 |
|
|
200 |
170 |
|
|
0 |
0 |
|
|
0 |
0 |
Исходя из значений в таблице можно сделать вывод, что при значении влажности больше или меньше заданных границ срабатывают соответствующие условия, помеченные желтым и красным цветом соответственно. Если влажность находится внутри заданных границ наблюдается понижение ШИМ сигнала при повышении влажности и повышения ШИМ при снижении значения влажности. Данная закономерность отображена зеленым цветом. При получении сигнала логической единицы с датчика уровня воды и мотор, и кулер перестают работать, о чем говорит значения ШИМ сигнала, выделенные серым цветом.
2.7 Прошивка микроконтроллера Atmega 328P
Для настройки блока управления была собрана на макетной плате схема, представленная на рисунке 19. Все необходимые компоненты перечислены в таблице 4.[12]
Рисунок 19 - Принципиальная схема для прошивки загрузчика в микроконтроллер
Таблица 4 - Компоненты
|
Название |
Обозначение |
|
|
Микроконтроллер Atmega 328P |
U1 |
|
|
Керамический дисковый конденсатор 22пкФ |
С1, С2 |
|
|
Керамический дисковый конденсатор 0,1мкФ |
С3 |
|
|
Резистор 10кОм |
R1 |
|
|
Кварцевый резонатор 16МГц |
Х1 |
Для взаимодействия блока управления со средой разработки Arduino IDE нужно записать в память микроконтроллера соответствующий загрузчик, с помощью которого можно будет напрямую заливать код в микроконтроллер через плату Arduino UNO. Загрузчик зависит от модели микроконтроллера, так как в плате Arduino UNO используется микроконтроллер Atmega328P, то для прошивки подойдет встроенный загрузчик для платы Arduino UNO.
Для повышения скорости выполнения операций на микроконтроллере используется кварцевый резонатор на 16МГц. Дисковый конденсатор на 0,1мкФ между шиной питания и земли уменьшает пульсации от источника питания. Резистор на 10кОм подключается к выводу Reset и шине питания для предотвращения самопроизвольного срабатывания вывода Reset, что приводит к перезагрузке микроконтроллера, что в свою очередь может повлиять на процесс загрузки скетча в микроконтроллер.
Выводы MISO и MOSI организуют передачу данных от микроконтроллера Atmega328P к плате Arduino UNO. Вывод SCK синхронизирует передачу данных между двумя устройствами. Вывод SS платы подключенный к Reset на микроконтроллере предназначен для включения и выключения процесса передачи данных. [13]