На протяжении истории человечества всегда добывались, обрабатывались и производились различные ресурсы. И эти ресурсы всегда было нужно каким-то образом хранить в необходимых условиях. Раньше было необходимо искать климатические условия, создаваемые в естественной среде, в которых поддерживается определённая температура, влажность и проветривание. Примером таких помещений являются: винные погреба, помещения для сушки дерева, и т. п. Сейчас объёмы и скорость производства значительно возрастают и приходится искать способы поддержания идеальных условий в помещении независимо от погодных обстоятельств и территориальной дислокации. Активно развивающиеся технологии производства микроконтроллеров позволяют удешевить производство систем поддержания оптимального климата в помещении и уменьшить размер таких систем.
Существующие системы поддержания климатических условий в помещении зачастую многофункциональны, но дороги, либо обладают недостаточным функционалом. В связи с этим существует потребность в создании узконаправленной системы поддержания климатических условий в помещении.
В большинстве таких систем параметрами оптимальных условий является влажность и температура. Температура воздуха измеряется обычным цифровым термометром, а вот для измерения влажности воздуха требуется изготовление психометрического гидрометра. Поскольку система управления климатическими условиями должна быть автоматизированной её необходимо создавать на основании микроконтроллера и электронных термодатчиков.
В качестве устройства обработки данных, в данной ситуации, подходят контроллеры фирмы AVR, семейства mega, в данном случае — AVR ATmega8 (Рисунок 1):
Рис. 1. AVR ATmega8, а) в корпусе PDIP28, б) в корпусе TQFP32
Система команд микроконтроллеров AVR весьма развита и насчитывает в различных моделях от 90 до 133 различных инструкций. Большинство команд занимает только 1 ячейку памяти (16 бит). Большинство команд выполняется за 1 такт.
Всё множество команд микроконтроллеров AVR можно разбить на несколько групп:
- команды логических операций;
- команды арифметических операций и команды сдвига;
- команды операции с битами;
- команды пересылки данных;
- команды передачи управления;
- команды управления системой.
Управление периферийными устройствами осуществляется через адресное пространство данных. Для удобства существуют «сокращённые команды» IN/OUT.
В качестве термометра вполне подойдёт очень распространённый цифровой термометр DS18B20–1-проводный цифровой термометр с программируемым разрешением.
Отличительные Особенности:
- Точность ±0.5°C от -10°C до +85°C
- Настраиваемое пользователем разрешение от 9 до 12 бит
- Данные передаются посредством 1-проводного® последовательного интерфейса
- 64-битныйt уникальный и неизменяемый серийный номер
- Многоточечное считывание
- Рабочее напряжение от 3.0В до 5.5В
- Вариант датчика с запиткой с линии данных (DS18B20-PAR)
- TO-92, 150mil 8-контактный SOIC, или 1.98мм x 1.37мм корпус с шариковыми выводами (±2.0°C)
Тип |
Интерфейс |
Точность (±°C) |
Напряжение питания (В) |
Паразитное питание |
Рабочий диапазон (°C) |
Температурные пороги (°C) |
Разрешение (бит) |
Корпуса |
DS18B20 |
1-пров.® |
0.5 |
от 3.0 до 5.5 |
доступно |
от -55 до +125 |
2, прог., энерго-незав. |
9–12 |
3/TO92 8/SO.150 |
Структура:
Каждая микросхема DS18B20 имеет уникальный и неизменяемый 64хбитный серийный номер, который используется как узловой адрес датчика. Это позволяет множеству микросхем DS18B20 сосуществовать на одной 1-проводной шине. Микросхема DS18B20 может быть локально запитана от 3.0В до 5.5В или она может быть сконфигурирована таким образом, чтобы быть запитанной посредством 1-проводной линии данных.
Для создания макета схемы и симуляции схемы проекта использовалась программа Proteus VSM. Для начала нужно найти необходимый микроконтроллер, при условии наличия его в библиотеке, и поместить на макетное поле проекта. Питание контроллера осуществляется автоматически, поэтому пины питания скрыты, но при желании можно создать их виртуальные копии в любом месте, и запитать контроллер по своему усмотрению (в реально собранной схеме использовалось стандартные пять вольт для питания схемы).
Термодатчик DS18B20 производит обмен данными посредством 1-проводного® последовательного интерфейса, который позволяет подключать параллельно несколько разнотипных устройств. Для подключения датчиков к контроллеру, был выбран пин PC0 порта C, и для усиления сигнала была использована подтяжка в виде постоянного напряжения, поданного через ограничивающий резистор на тот же пин PC0. Сами же датчики имеют возможность паразитного питания он информационного контакта, но большую надёжность обеспечивает питание от источника постоянного напряжения, подведённое параллельно к контактам VCC термодатчиков, так же параллельно датчики были заземлены.
Для непосредственного наблюдения за температурой использовался дисплей фирмы Winstar серии WH1602, основанный на микроконтроллере KS0066, использовалось параллельно-последовательное соединение к порту D контроллера ATmega8, соединение стандартное для контроллера KS0066, управление осуществляется непосредственно использованием команд на языке С.
Рис. 2 Схема системы анализа климатических условий.
В результате моделирования получается электронная схема системы анализа климатических условий, при этом из двух датчиков можно сделать психрометр, и зная температуру и влажность воздуха регулировать нагрев и вентиляцию помещения.
Для написания программного обеспечения (прошивки) для контроллера можно использовать среду разработки CodeVisionAVR. Для работы с контроллером ATmega8 используется библиотека “mega8.h”, в которой описаны способы обращения ко многим функциям этого контроллера, таким как: изменение уровня напряжения на порте ввода/вывода контроллера, обработка прерываний, запуск таймера и т. д. Для организации обмена данными с термодатчиком DS18B20 в CodeVisionAVR существует библиотека “ds18b20.h”, которая освобождает разработчика от необходимости описывать алгоритм последовательного приема/передачи данных от датчика.
Например — можно управлять частотой вращения турбины приточной вентиляции, в зависимости от температуры в помещении:
temp3=ds18b20_temperature(&rom_code [2] [0]);
// PWM на OC2 (PB3)
if(temp3>19)
{
temp_val = temp3;
if (temp_val >= 70){
temp_val = 70;
}
// ШИМ 100 % при 70 градусах и 31 % при 20 градусах
OCR2 = 10 + (3 * temp_val) + (temp_val/2);
}
else
{
OCR2=0; // выключить PWM на OC2
}
В результате написания алгоритма работы микроконтроллера получается механизм, способный самостоятельно регулировать климатические условия в помещении, выводить климатические показатели на дисплей, и сигнализировать о критических показателях.
Литература:
1. Дж. Ли. Трехмерная графика и анимация / Дж. Ли, Б. Уэр. — 2-е изд. М.: Вильямс, 2002. 514–623с.
2. Мовчан Д. А. AutoCAD 2010. Официальный учебный курс / Д. А. Мовчан. — М.: ДМК Пресс — 2010. 694 с.