Вы находитесь на странице: 1из 60

Введение

На значительной территории нашей страны в связи с


продолжительной, нередко суровой зимой и коротким, не всегда теплым
летом складываются неблагоприятные условия для выращивания
теплолюбивых растений в открытом грунте.
Для расширения возможности выращивания растений и снабжения
населения свежими продуктами питания, особенно овощами, в
неблагоприятные периоды года применяют различные сооружения
защищенного грунта, в которых искусственно создаются необходимые
условия для роста и развития растений. По степени удовлетворения
потребностей растений в комплексе факторов жизнеобеспечения или по
технологической сложности сооружения защищенного грунта
подразделяют на парники, утепленный грунт и теплицы.
В сооружениях защищенного грунта необходимо стремиться к
созданию оптимальных параметров среды выращивания. К сожалению, в
простейших теплицах на приусадебных участках в основном на солнечном
обогреве не всегда этому уделяется должное внимание. В результате
растения в таких теплицах постоянно находятся в стрессовых условиях.
Ночью, как правило, растения переохлаждаются, днем в солнечную погоду
перегреваются. Особенно усугубляются неблагоприятные воздействия в
теплицах, расположенных на садово-огородных участках, значительно
удаленных от мест постоянного проживания владельцев. В таких теплицах,
посещаемых, как правило, лишь в выходные дни, нет возможности
оперативно вмешаться в формирование климата, в результате чего он
нередко далек от оптимального. Правильный тепловой режим в теплицах
позволяет повысить урожайность в 2-3 раза.
Существуют многочисленные системы автоматизированного
управления микроклиматом теплиц. Как правило, такого рода системы,
поставляемые многочисленными фирмами (НПО «Схемотехник», НПФ

4
«Фито», система «Агротем») содержат полный комплекс управления
микроклиматом:
 температура и влажность воздуха
 инфракрасный термометр листа
 температура и влажность почвы
 температура стекла
 температура зоны плодоношения
 температура в контурах отопления
 концентрация СО2 и т.д.
 ультразвуковой датчик ветра
 бесконтактный датчик осадков
 соляриметра
 ФАР-метра
Такие системы, конечно, хороши и эффективны, но обладают вполне
ощутимым недостатком – высокой стоимостью. Использование такого
рода систем в промышленной агротехнике оправдана: территория теплиц
огромна, а такая система позволяет экономить на персонале, получать
большой урожай, что позволяет увеличить прибыль, а, следовательно,
окупить систему.
Особенностью агротехники нашей страны является то, что 70%
населения сами обеспечивают себя овощами в летний и осенний период за
счет выращивания культур на приусадебных участках. Естественно, что в
таких условиях выращивания человек не может постоянно контролировать
микроклимат в теплице, но и покупать дорогостоящую систему тоже нет
возможности. Многие из дачников используют подручные, не всегда
надежные и эффективные свойства – гидроцилиндры для автоматического
открывания форточек при слишком высокой температуре, бочку с
небольшим отверстием для полива и прочее. Эти приспособления не
дороги, но малоэффективны и не надежны (гидроцилиндры часто выходят

5
строя, течет масло, уплотнительное кольца быстро приходят в негодность,
температура, при которой открывается форточка, измеряется эмпирически
и т.д.). Поэтому необходимо создать простую систему управления
основными параметрами микроклимата: температура и влажность.

6
1 Формирование требований пользователя к АС
Наша система должна отвечать следующим основным требованиям:
1. должна быть максимально простой и недорогой.
2. иметь понятную систему управления, не требующую особых знаний
и навыков.
3. иметь возможность реконфигурирования микроклимата под ту или
иную выращиваемую культуру.
4. не должна предъявлять особых требований к конструкции теплицы и
максимально от нее не зависеть.
5. обеспечивать надежную и устойчивую работу всех элементов
системы

7
2 Техническое задание

2.1 Общие сведения


2.1.1 Наименование системы
Система управления микроклиматом в теплице.
2.1.2 Разработчик
Ижевский Государственный Технический Университет, кафедра
«Вычислительная техника», группа 8-78-1, Соломенникова Н.В.
2.1.3 Заказчик
Ижевский Государственный Технический Университет.
2.2 Назначение системы
1. Контроль температуры в теплице.
2. Контроль влажности в теплице.
3. Обеспечение удобного управления микроклиматом в теплице
4. Возможность устанавливать различные типы микроклимата в
теплице для выращивания разных видов культур.
2.3 Цель создания системы
1. Точное соблюдение условий выращивания культур для повышения
урожайности.
2. Автоматизация операций полива и проветривания, не требующих
непосредственного участия в выращивании культур.
3. Слежение за изменением микроклимата для защиты культур от
неблагоприятных факторов (резкое изменение температур, засуха).
2.4 Значение показателей
2.4.1 Режимы работы
1. Режим включение системы: При включении системы производится
анализ текущих климатических показателей.
2. Режим установки параметров работы: выбирается тип
выращиваемой культуры.
3. Режим проветривания теплицы в случае, когда температура в
теплице выше рабочей.
8
4. Режим нагрева теплицы, когда температура в теплице ниже
рекомендуемой.
5. Режим полива, если влажность воздуха ниже рекомендуемой.
6. Режим индикации температуры и номера установленного режима в
теплице.
2.4.2 Входные данные
1. Значения фактической температуры в теплице
2. Значение фактической влажности в теплице
2. Установленные значения температуры для выбранного продукта
выращивания.
3. Установленные значения влажности для выбранного режима
работы.
4. Сигналы нажатия кнопок управления.
2.4.3 Выходные данные
1. Сигналы для индикации температуры в теплице.
2. Сигнал индикации влажности.
3. Сигналы на исполнительные устройства для проветривания, нагрева
и полива.
2.5 Требования к системе.
2.5.1 Требования по электропитанию.
1. Питание системы должно осуществляться от сети 220 В
2. Не должна потреблять много энергии.
3. Предусмотреть работу элементов системы в «спящем» режиме.
4. Элементы системы должны быть защищены от агрессивных
климатических воздействий среды.
2.5.2 Требования к метрологическому обеспечению.
1. Диапазон измеряемых температур: от 0°С до +50°С .
2. Точность индикации: ±1°C .
3. Погрешность измерений: ±1°C.
4. Погрешность измерений: ±1%.

9
5. Измерение производить каждый час.
2.5.3 Технические требования
1. Возможность встраивания системы в любой корпус теплицы.
2. Обеспечение централизованного принципа управления.
3. Простота и удобство в использовании.
4. Использование современной элементной базы.
2.5.4 Требования к документации.
Документация должна включать в себя:
- Пояснительная записка
- Алгоритм работы системы
- Структурная схема
- Функциональная схема
- Электрическая принципиальная схема

10
3 Постановка задачи

Задачей является разработка системы автоматизированного контроля


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

11
4 Разработка концепции АС
После включения системы производится выбор выращиваемой
культуры. Далее считывается температура, выводится на индикатор,
анализируется. В случае необходимости - ее корректировка (включение
нагревателя или проветривание), потом считывается влажность,
анализируется и принимается решение о необходимости полива.
Каждый режим характеризуется своими параметрами, представленными
в таблице 1[10,11,12,13].
Выращиваемая
режим культура температура воздуха проветривание влажность
1 томат 17 22 сквозное 30-60
2 огурец 19 23 одностороннее 60-80
3 перец 18 21 одностороннее 35-65
4 розы 21 24 одностороннее 70-90
5 баклажаны 25 30 сквозное 40-65
Таблица 1.

12
5 Поиск аналогов
5.1 Патентный поиск.
Был проведен патентный поиск, который выявил наиболее похожие
схемы управления микроклиматом [9]:
1. Способ автоматического управления температурным режимом в
теплице и система для его осуществления.
2. Устройство для создания микроклимата в комфортной зоне

Рассмотрим их по порядку.
1. Способ автоматического управления температурным режимом в
теплице и система для его осуществления.
Изобретение относится к методам и средствам обеспечения
поддержания микроклимата в теплице. Техническим результатом
изобретения является повышение точности поддержания
температуры воздуха в теплице. Для этого отопительная система
теплицы делится на две группы так, что мощность нагревателей
первой группы непрерывно пересчитывается как разность между
потерями через ограждение теплицы и мощностью потока солнечной
радиации. Мощность нагревателей второй группы составляет 20-25%
от максимальной мощности первой группы. Текущее значение
последней зависит от изменений оптимальной и наружной
температур, плотности потока солнечной радиации и коэффициента
теплопотерь, возраста растений и продолжительности фотопериода.
Это учитывается наличием соответствующего таймера
вычислительного устройства, подключенного через аналого-
цифровой преобразователь и усилитель мощности к
соответствующему исполнительному элементу. Нагреватели второй
группы управляются по отклонению и подключены через
соответствующий исполнительный механизм и усилитель к входу

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

Номер патента: 2128425


Класс(ы) патента: A01G9/24, A01G9/26, G05D23/00, G05D23/19
Номер заявки: 94028500/13

2. Устройство для создания микроклимата в комфортной зоне

Предлагаемое устройство относится к системам охлаждения или


нагрева воздуха локальной области полуоткрытого или закрытого
пространства и предназначено для создания заданного
температурного режима в комфортной зоне размещения людей,
животных или предметов. Над комфортной зоной устанавливают
теплоизолирующий оптически прозрачный экран, между экраном и
комфортной зоной размещают не менее одного теплового насоса,
блок питания, основной вентилятор, управляющий переключатель и
регулятор. Тепловой насос содержит термоэлектрический модуль
Пельтье, теплообменники и вентилятор. Технический результат -
обеспечение более комфортных условий и расширение сферы
применения устройства.

Номер патента: 2161287


Класс(ы) патента: F24F5/00, F25B21/02
Номер заявки: 99114911/06
Эти системы не отвечают поставленной нашей задачи по следующим
причинам:
1. система предназначена для отопления теплиц в холодный период
времени, специализируется на обслуживании больших
промышленных теплиц.

14
2. нет системы проветривания.
3. система сложна и занимает много места.
4. нет системы полива растений.
5. система предъявляет большие требования к объекту, установки
большого количества дополнительного оборудования, что повышает
цену системы и сложность ее монтажа.
5.2 Выводы по аналогам
Проведенный анализ наглядно показал, что нет аналога, полностью
удовлетворяющего поставленной задаче, имеется большой ряд
недостатков, которые в значительной степени влияют на надежность и
стоимость системы и не удобны для использования в личном подсобном
хозяйстве.

15
6 Разработка структуры
6.1 Описание функций, которые выполняет система.
Для разработки структурной схемы системы контроля микроклим
ата теплицы, кратко опишем функции, которые должна выполнять
разрабатываемая система:
1. Начальный запуск системы
2. Выбор необходимого для поддержания типа микроклимата.
3. Прием данных с датчиков и обработка этих данных в
соответствии с алгоритмом.
4. Вывод текущих параметров микроклимата среды.
5. Формирование выходных сигналов для запуска исполнительных
устройств проветривания/нагрева, полива.
6.2 Основные модули.
Исходя из требований технического задания и функций, которые
должна выполнять разрабатываемая система, можно выделить основные
модули, из которых должна состоять вычислительная система.

6.2.1 Датчики
Датчики – являются неотъемлемой частью системы, они используются
для того, чтобы система могла в реальном времени реагировать на
изменения внешних параметров по заранее разработанному алгоритму. В
настоящее время на рынке представлено большое разнообразие различных
типов датчиков, некоторые из них являются узкоспециализированными.
Так как мы проектируем систему, которая будет использоваться в
небольших теплицах, поэтому ограничимся одним датчиком температуры и
одним – влажности. Однако при выборе устройства управления следует
учесть возможность подключения дополнительных датчиков с целью
уточнения данных или с целью увеличения функциональных возможностей.

16
6.2.2 Устройство управления
Устройство управления является главной частью системы, оно
необходимо для сбора и обработки информации поступающей с системы
датчиков, выработки управляющих сигналов для исполнительных
устройств, а также вывода информации на устройство индикации.

6.2.3 Пульт управления и устройство визуальной индикации


Пульт управления и устройство визуальной индикации необходимы
для выбора типа микроклимата, для визуального вывода текущей
температуры и влажности в теплице.

6.3 Выбор варианта структуры.


В соответствии с определенными выше функциями можно
определить общую структуру системы. Структурная схема системы
представлена на втором листе графической части. Устройство управления
получает от датчиков температуры, влажности и кнопок управления
данные, преобразует их в соответствии с алгоритмом работы и выдает
данные на индикаторы для отображения температуры и влажности, а также
при необходимости сигналы на ключевые элементы. Ключевые элементы
позволяют включать/выключать исполнительные устройства в том
порядке, в который установлен в алгоритме.

6.4 Алгоритм работы системы.


Алгоритм работы системы представлен на первом листе графической
части. Он позволяет устанавливать критические параметры в соответствии
с выбранным режимом, регулирует температуру и влажность в теплице,
учитывая особенности каждой культуры.

17
7 Разработка схемы
7.1 Выбор микроконтроллера [4].
Микроконтроллер решено взять из семейства AVR фирмы Atmel,
поскольку данное семейство контроллеров имеет высокое быстродействие,
обладает хорошим показателем функциональность/цена и имеет
множество моделей различной функциональности. Эти микроконтроллеры
широко распространены, для них существуют удобные среды разработки,
и они имеют массу документации на различных языках, в том числе и на
русском.
Корпорация Atmel (США) хорошо известна как на мировом, так и на
российском рынках электронных компонентов и является одним из
признанных мировых лидеров в разработке и производстве сложных
изделий микроэлектроники – устройств энергонезависимой памяти
высокого быстродействия и минимального удельного энергопотребления,
микроконтроллеров общего назначения и микросхем программируемой
логики.
Одним из самых активно развиваемых Atmel Corp. направлений
современной микроэлектроники является линия 8-разраядных
высокопроизводительных RISC (Reduced Instruction Set Computers)
микроконтроллеров общего назначения, объединенных общей маркой
AVR.
Они представляют собой мощный инструмент для создания
современных высокопроизводительных и экономичных контроллеров
многоцелевого назначения, в том числе и встраиваемых. На настоящий
момент соотношение «цена – производительность – энергопотребление»
для AVR является одним из лучших на мировом рынке 8-ми разрядных
микроконтроллеров.
В настоящее время в производстве у Atmel Corp. находятся три
семейства AVR – «tiny», «classic», «mega».

18
Области применения AVR многогранны. Для «tiny» AVR это
интеллектуальные автомобильные датчики различного назначения,
игрушки, игровые приставки, материнские платы персональных
компьютеров, контроллеры защиты доступа в мобильных телефонах,
зарядные устройства, детекторы дыма и пламени, бытовая техника,
разнообразные инфракрасные пульты дистанционного направления. Для
«classic» AVR это модемы различных типов, современные зарядные
устройства, изделия класса Smart Cards и устройства чтения для них,
спутниковые навигационные системы для определения местоположения
автомобилей на трассе, сложная бытовая техника, пульты дистанционного
управления, сетевые карты, материнские платы компьютеров, сотовые
телефоны нового поколения, а также разнообразные промышленные
системы контроля и управления. Для «mega» AVR это аналоговые (NMT,
ETACS, AMPS) и цифровые (GSM, CDMA) мобильные телефоны,
принтеры и ключевые контроллеры для них, контроллеры аппаратов
факсимильной связи и ксероксов, контроллеры современных дисковых
накопителей и CD-ROM и т.д.
Российские специалисты уже по достоинству оценили высокую
скорость работы и мощную систему команд AVR, наличие двух типов
энергонезависимой памяти на одном кристалле и активно развивающуюся
периферию. Немаловажную роль в этом играет Atmel Corp. в процессе
развития и распространения разнообразных, доступных средств поддержки
разработок. Это позволяет разработчикам и производителям электронной
техники надеяться на сохранение полноценной поддержки для
перспективного семейства микроконтроллеров, закладывая AVR в свои
новые изделия.
Микроконтроллер семейства AVR фирмы Atmel представляет собой
восьмиразрядную однокристальную микро-ЭВМ с упрощенной
(сокращенной) системой команд – RISC.

19
Большинство команд, входящих в систему команд, выбираются из
памяти за один такт и выполняются за один такт работы
микроконтроллера. При выполнении последовательности таких команд
выборка из памяти очередной команды совмещается во времени с
исполнением ранее выбранной команды(2-х ступенчатый конвейер). При
этом число команд, выполняемых за 1с, совпадает с тактовой частотой
работы микроконтроллера.
Микроконтроллеры изготовляются по высококачественной КМОП
(CMOS) технологии, содержат энергонезависимые запоминающие
устройства для хранения программы и данных, выполненные по Flash и
EEPROM технологиям, и отличаются низким энергопотреблением при
высокой тактовой частоте. Запись программы и исходных данных в память
может выполняться после установки микроконтроллера в аппаратуре, где
ему предстоит работать (ISP, In-System Programmable).
В состав семейства AVR входят микроконтроллеры трех серий –
AT90(«classic»), ATtiny(«tiny»), ATmega(«mega»). В каждую серию входят
микроконтроллеры нескольких типов. Микроконтроллеры серии AT90 по
своим структурным характеристикам (объем памяти, состав периферийных
устройств) близки к микроконтроллерам семейств AT89 фирмы Atmel и
MCS-51 фирмы Intel. По своим вычислительным возможностям они
занимают среднее положение между микроконтроллерами серий ATtiny и
ATmega. Микроконтроллеры серии ATtiny имеют наименьшие, а
микроконтроллеры серии ATmega – наибольшие вычислительные
возможности в семействе AVR.
Микроконтроллеры одного типа выпускаются в нескольких
вариантах, различающихся диапазоном допустимых значений напряжения
питания, максимальным допустимым значением тактовой частоты, типом
корпуса и диапазоном допустимых значений температуры окружающей
среды.

20
Фирма Atmel выпускает программные и аппаратные средства
поддержки разработок на базе микроконтроллеров семейства AVR.
На данный момент микроконтроллеры серии «classic» семейства
AVR снимаются с производства, т.к. в наличии имеются сопоставимые с
ними по вычислительной мощности микроконтроллеры серии «tiny», но
последние имеют меньшую стоимость. Поэтому выбор микроконтроллера
будет производиться из серий «tiny» и «mega» семейства AVR.
Сравнительная характеристика некоторых микроконтроллеров
представлена в таблице 2.

21
Таблица 2.
N- Внутренний Тактовая
Flash EEP 8/16-bit N-канальный Сторожево Апп.
Название RAM I/O канальный RC- Vcc (V) частота,
ROM ROM Timer АЦП 10-bit й таймер умножитель
ШИМ генератор Мгц
1.8-5.5,
ATtiny13 1 KB 64 B 64 B 6 1/- 2 4 • • 0-10, 0-20
2.7-5.5
2.7-5.5,
ATtiny26 2 KB 128 B 128 B 16 2/- 2 11 • • 0-8, 0-16
4.5-5.5
1.8-5.5,
ATtiny28 2 KB 20 1/- • • 0-1, 0-4
2.7-5.5
ATtiny231 1.8-5.5,
2 KB 128 B 128 B 18 1/1 4 • • 0-8, 0-20
3 2.7-5.5
1.8-5.5,
ATtiny85 8 KB 512 B 512 B 6 2/- 2 4 • • 0-8, 0-20
2.7-5.5
2.7-5.5,
ATmega8 8 KB 512 B 1 KB 23 2/1 3 6/8 • • • 0-8, 0-16
4.0-5.5
ATmega88 8 KB 512 B 1 KB 23 2/1 6 8 • • • 1.8-5.5 0-10, 0-20
ATmega85 512 2.7-5.5,
8 KB 512 B 35 1/1 3 • • • 0-8, 0-16
15 B 4.5-5.5
ATmega85 512 2.7-5.5,
8 KB 512 B 35 2/1 4 8 • • • 0-8, 0-16
35 B 4.5-5.5

22
В таблице 2 приведены наиболее характерные и подходящие к
выполняемой задаче представители серий «tiny» и «mega». Как видно,
серия «tiny» не сможет справиться с поставленной задачей, т.к. количество
выводов у этих микроконтроллеров невелико (максимальное количество
выводов у ATtiny2313 – 20), а для выполнения данной работы требуется
большее количество.
Ориентировочно требуется 25 выводов: 12 для организации матрицы
индикации на основе двух 7-ми сегментных индикаторов (двухразрядный
и трехразрядный), 3 для подключения датчиков, 5 для подключения
кнопок управления, 5 для управления исполнительных устройств.
Таким образом, выбор микроконтроллера будет осуществляться из
серии «mega». Согласно табл. 1, оптимальным решением будет
микроконтроллер ATmega8535, т.к. он обладает достаточным объемом
памяти, необходимым количеством выводов, высоким быстродействием и
хорошим набором периферии (АЦП, таймеры, внутренний RC-генератор
TWI-интерфейс.).

7.2 Структура микроконтроллера ATmega8535 [5].


В данном микроконтроллере АЛУ подключено непосредственно к
32-м рабочим регистрам, объединенным в регистровый файл. Благодаря
этому АЛУ выполняет одну операцию (чтение содержимого регистров,
выполнение операции и запись результата обратно в регистровый файл) за
один машинный цикл.
В микроконтроллерах AVR реализована Гарвардская архитектура,
которая характеризуется раздельной памятью программ и данных, каждая
из которых имеет собственные шины доступа к ним. Такая организация
позволяет работать одновременно как с памятью программ, так и с
памятью данных. В отличие от RISC-микроконтроллеров других фирм, в
микроконтроллерах AVR используется 2-уровневый конвейер, а

23
длительность машинного цикла составляет всего один период кварцевого
генератора.
Структурная схема микроконтроллера приведена на рисунке 1.

24
Рисунок 1- Архитектура микроконтроллера ATmega8535
25
Счетчик команд.
Размер счетчика команд составляет 12 разрядов. Напрямую (как
регистр) счетчик команд из программы недоступен.
При нормальном выполнении программы содержимое счетчика
команд автоматически увеличивается на 1 или на 2 (в зависимости от
выполняемой команды) в каждом машинном цикле. Этот порядок
нарушается при выполнении команд перехода, вызова и возврата из
подпрограмм, а также при возникновении прерываний.
После включения питания, а также после сброса микроконтроллера в
счетчик программ автоматически загружается значение $000. Как правило,
по этому адресу располагается команда перехода (RJMP) к
инициализационной части программы.
При возникновении прерывания в счетчик команд загружается адрес
соответствующего вектора прерывания ($001...$014). Если прерывания
используются в программе, по этим адресам должны размещаться
команды относительного перехода к подпрограммам обработки
прерываний. В противном случае основная программа может начинаться
непосредственно с адреса $001.

Регистры общего назначения (РОН) микроконтроллера.


Все 32 РОН непосредственно доступны АЛУ, в отличие от
микроконтроллеров других фирм. Любой РОН может использоваться во
всех командах и как операнд-источник, и как операнд-приемник.
Исключение составляют лишь пять арифметических и логических команд,
выполняющих действия между константой и регистром (SBCI, SUBI, CPI,
ANDI, ORI), а также команда загрузки константы в регистр (LDI). Эти
команды могут обращаться только ко второй половине регистров (R16…
R31).
Два старших регистра общего назначения формируют 16-разрядный
индексный регистр Z, который используется в качестве указателя при

26
косвенной адресации памяти программ и памяти данных. Так как объем
адресуемой памяти составляет всего 32 байт, при обращении к ней
используется только младший байт (регистр R30). Содержимое старшего
байта индексного регистра (регистр R31) при косвенной адресации памяти
данных автоматически очищается процессором.
Регистры ввода/вывода (РВВ) микроконтроллера.
Регистры ввода/вывода (РВВ) располагаются в так называемом
пространстве ввода/вывода размером 64 байт. Все РВВ можно разделить
на две группы: служебные регистры микроконтроллера и регистры,
относящиеся к периферийным устройствам (в том числе порты
ввода/вывода). Размер каждого регистра – 8 бит.
Сторожевой таймер используется для защиты от аппаратных сбоев,
например, если программа перешла в бесконечный цикл.
Регистр команд содержит команду, которая выбирается из FLASH-
памяти программ для выполнения.
При необходимости к генератору микроконтроллера можно
подключить внешний тактовый генератор на основе кварца. Если
необходимости в увеличении стандартной тактовой частоты нет, то можно
использовать встроенный генератор.
Начальная синхронизация происходит с приходом на вход
синхронизатора сигнала RESET.
7.3 Описание выводов микроконтроллера ATmega 8535 [5].
Выводы микроконтроллера представлены на рисунке 2.

27
Рисунок 2- Выводы микроконтроллера ATmega 8535
Описание выводов микроконтроллера ATmega 8535 представлено в
таблице 3.

Таблица 3. Описание выводов микроконтроллера ATmega8535


1 2 3 4
Обозначение Номер вывода Тип вывода Описание
XTAL1 13 I Вход тактового генератора
XTAL2 12 О Выход тактового генератора
RESET 9 I Вход сброса
РА0 (ADC0) 40 I/O 0-й разряд порта А (0-й вход АЦП)
РА1 (ADC1) 39 I/O 1-й разряд порта А (1-й вход АЦП)
РА2 (ADC2) 38 I/O 2-й разряд порта А (2-й вход АЦП)
РАЗ (ADC3) 37 I/O 3-й разряд порта А (3-й вход АЦП)
РА4 (ADC4) 36 I/O 4-й разряд порта А (4-й вход АЦП)
РА5 (ADC5) 35 I/O 5-й разряд порта А (5-й вход АЦП)
РА6 (ADC6) 34 I/O 6-й разряд порта А (6-й вход АЦП)
РА7 (ADC7) 33 I/O 7-й разряд порта А (7-й вход АЦП)
0-й разряд порта В (вход внешнего
опорного сигнала для USART/вход
РВ0(XCK/T0) 1 I/O
внешнего тактового сигнала
таймера/счетчика 0)
1-й разряд порта В (вход внешнего
РВ1 (T1) 2 I/O
тактового сигнала таймера/счетчика 1)
РВ2 2-й разряд порта В (вход внешнего
3 I/O
(INТ2/AIN0) прерывания 2/положительный вход
компаратора)
3-й разряд порта В(выход сравнения
РВЗ
4 I/O таймера/счетчика 0/отрицательный вход
(OC0/AIN1)
компаратора)

28
1 2 3 4

PB4 (SS) 5 I/O 4-й разряд порта В(Вход выбора


ведомого SPI)
5-й разряд порта В(выход
РВ5 (MOSI) 6 I/O
ведущего/вход ведомого SPI)
6-й разряд порта В(вход
РВ6 (MISO) 7 I/O
ведущего/выход ведомого SPI)
РВ7 (SCK) 8 I/O 7-й разряд порта В (опорная частота
0-й разряд порта C(линия опорной
РC0 (SCL) 22 I/O
частоты для Two-wire Serial Bus)
1-й разряд порта C(линия входа/выхода
РC1 (SDA) 23 I/O
для Two-wire Serial Bus)
РC2 24 I/O
РCЗ 25 I/O 2..5-й разряды порта C
РC4 26 I/O
РC5 24 I/O
6-й разряд порта C (вход внешнего
РC6(TOSC1) 28 I/O
тактового генератора для таймера 2)
PD0(RXD) 14 I/O 0-й разряд порта D (вход для UART)
PD1(TXD) 15 I/O 1-й разряд порта D (выход для UART)
Обозначение Номер вывода Тип вывода Описание
2-й разряд порта D (вход внешнего
PD2(INT0) 16 I/O
прерывания 0)
3-й разряд порта D (вход внешнего
PD3(INT1) 17 I/O
прерывания 1)
4-й разряд порта D (выход сравнения A
PD4(OC1B) 18 I/O
таймера/счетчика 1)
5-й разряд порта D (выход сравнения B
PD5(OC1A) 19 I/O
таймера/счетчика 1)
6-й разряд порта D (вход захвата
PD6(ICP1) 20 I/O
таймера/счетчика 1)
7-й разряд порта D (выход сравнения
PD7(OC2) 21 I/O
таймера/счетчика 2)
GND 11,31 P Общий вывод
Вывод источника питания цифровой и
VCC,AVCC 10,30 P
аналоговой частей
AREF 32 I Вход эталонного напряжения для ЦАП

29
7.4 Выбор температурного датчика.
В качестве датчика температуры был выбран датчик DS1621 фирмы
Dallas[14,15], представленный на рисунке 3.

Рисунок 3 - Температурный датчик DS1621.


Основные его свойства:
 Прямое преобразование температуры в цифровой код, без
дополнительных АЦП
 Возможность передачи данных через одно-, двух- проводной
интерфейс
 Возможность адресации нескольких датчиков на одной шине
 Заводская калибровка и встроенная коррекция нелинейности, не
нужно дополнительной подстройки
 Широкий диапазон измерения температуры (-55 … +125°С)
 Высокое быстродействие (время преобразования от 0.5 до 2 с)
 защита от агрессивной среды
Технические характеристики датчика приведены в таблице 4.:
Таблица 4.
Точность ±0.5 °С
Время преобразования 1с
Разрешение 9 бит
Интерфейс 2W (I2C)
Тип корпуса DIP8, SO8
Температурный датчик необходимо установить таким образом,
чтобы на него не попадали прямые солнечные лучи, а также вода при
поливе, стремясь при этом максимально уменьшить удаленность от шкафа
с микроконтроллером.

30
7.5 Выбор датчика влажности
В качестве датчика влажности был выбран HIH 4000-003 [16]. Он
обеспечивает широкий диапазон измерений, высокую надежность и
низкую стоимость при использовании микроэлектронной технологии. Это
позволяет производить емкости планарного типа тонкопленочным
методом. Благодаря этому мы имеем миниатюрные габариты
чувствительного элемента, возможность имплементации на кристалле
специализированной интегральной схемы обработки сигнала.
Технологичность и высокий выход годных кристаллов обеспечивают
малую стоимость продукции данного типа. Параметры датчика влажности
приведены в таблице 5. Возможно прямое подключение к АЦП
микроконтроллера благодаря стандартному размаху выходного сигнала (от
1.0 до 4.0 В). Установить датчик необходимо таким образом, чтобы капли
воды при поливе не попадали не него, а также защитить от воздействия
прямых солнечных лучей, во избежание снижения точности измерения.
Таблица 5
Параметр Значение .
Диапазон измерения, % 0...100
RH
Повторяемость, ±% RH 0,5
Напряжение питания, В 4,0...5,8
Ток потребления, мА 0,2
Рабочая температура, °С -40...85
Температура хранения, °С -50...125

7.6 Выбор средств индикации.


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

31
нас пять, поэтому для отображения рабочего режима используем
одноразрядный семисегментный индикатор.
Будем использовать индикаторы BA56-12 фирмы KingBrigth[21] и
LDD3051 фирмы LIGI[22] . Технические характеристики приведены в
таблице 6.
Таблица 6.
Макс. прямое напряжение(при токе 20 мА) 2,5 В
Максимальный прямой ток 25-30 мА
Максимальное обратное напряжение 5В
Обратный ток(при напряжении 5В) 10 мкА
Мощность рассеивания 150 мВт
Максимальный импульсный прямой ток 140-160 мА
Диапазон рабочих температур -40…+85 ° С
Устройства индикации и схемы их включения представлены на рисунке
4(а,б,в).

Рисунок 4а - Трехразрядный семисегментный индикатор.

32
Рисунок 4б - Трехразрядный семисегментный индикатор схема подключения.

Рисунок 4в - Двухразрядный семисегментный индикатор и схема подключения .

7.7 Выбор ключевых элементов


В качестве ключевых элементов выберем симистор, который как раз
и предназначен для коммутации нагрузки на переменном токе. Так как
коммутируем мы силовую высоковольтную цепь, 220 вольт, а контроллер
у нас низковольтный, работает на пять вольт. Поэтому во избежание
эксцессов нужно произвести потенциальную развязку. То есть сделать так,

33
чтобы между высоковольтной и низковольтной частью не было прямого
электрического соединения. Например, сделать оптическое разделение.
Для этого существует специальная сборка — симисторный оптодрайвер
MOC3041[17] (рисунок 5). Можно не бояться помех по питанию при
включении и выключении симистора. В самом оптодрайвере сигнал
подается светодиодом, а значит можно смело зажигать его от ножки
микроконтроллера без всяких дополнительных ухищрений.
Характеристики симисторного оптодрайвера приведены в таблице 7.
Таблица 7.
Прямой ток 50 мА
Обратное напряжение на выходе 400 В
Напряжение изоляции 5000 В
Ток включения 15 мА

Рисунок 5 - Cимисторный оптодрайвер MOC3041


В качестве симистора взят ВТ 139 [6,22](рисунок 6).

34
Рисунок 6 - Симистор ВТ 139.
Параметры симистора приведены в таблице 8.
Таблица 8.
Максимальное напряжение 600 В
Коммутируемый ток 16 А
Напряжение удержания 1.6 В
Ток УЭ 25 мА
Время включения 2 мкс

7.8 Выбор исполнительных устройств.


В системе микропроцессор должен управлять открытием
двери/фрамуг, поливом и обогреванием теплицы.
Для полива будем использовать капельную систему. Она состоит из
труб, капельниц и электроклапана для воды. Электромагнитный клапан
предназначен для включения или выключения подачи жидкости или газа в
трубопроводе при подаче на него соответствующего электрического

сигнала. Будем использовать клапан 2W21(рисунок 7).

35
Рисунок 7 - Клапан 2W21

Размеры клапана приведены в таблице 9[18].


Таблица 9.
Размер, мм
A 116
B 87
C 149
D 26
G 1 ¼’’
Этот же электроклапан будем использовать для подачи горячей воды
в трубы при отоплении теплицы.
Для проветривания теплицы необходимо на дверь, боковую фрамугу
и фрамугу в крыше поставить 3 мотор-редуктора, для открытия или
закрытия фрамуг. Будем использовать IG32p-02[19]. Параметры мотор-
редуктора приведены в таблице 10.
Таблица 10.
Диаметр (сторона квадрата), мм Ø37
Скорость вращения , об/мин* 7,6 - 970
Крутящий момент, кгс•см 1-10
Тип редуктора планетарный
Напр. питания, В 12;24
Мощность, Вт 14
Передаточн. отн. 5-721

7.9 Выбор дополнительных элементов.

Для питания микропроцессора от сети 220 В необходима схема


согласования, так как процессор питается от постоянного напряжения в

36
5В. Будем использовать трансформатор понижающий Б3800[20].
Параметры приведены в таблице 11.

Таблица 11.
Напряжение первичной 220 В.
обмотки:
Напряжение вторичной 12 В (переменное).
обмотки:
Степень защиты: IP 20.
В качестве диодного моста будем использовать схему DB157[23].
Параметры приведены в таблице 12. внешний вид диодного моста
представлен на рисунке 8.
Таблица 12.
Максимальное постоянное обратное напряжение 1000 В
Максимальное импульсное обратное напряжение 1000 В
Максимальный прямой ток 1,5 А
Максимальный допустимый прямой импульсный ток 60 А
Максимальный обратный ток 50 мкА
Максимальное прямое напряжение 1.1 В
Рабочая температура -55…125 °С
Способ монтажа в отверстие
Корпус DB-1
Количество фаз

Рисунок 8 - Диодный мост DB157.


В качестве стабилизатора напряжения будем использовать LM340K-
5 (рисунок 9). Параметры приведены в таблице 13[7].

37
Таблица 13.
Макс. входное напряжение: 35 В
Падение выходного напряжения 2 В тип.
Допуск вых. напряжения: ±5 %
Потребляемый ток: 8 мА макс.
Выходной ток
миним.: 5 мА
макс.: 1A
Тепловое сопротивление: 4 °C/Вт (переход-корпус)

Рисунок 9 - Стабилизатор напряжения LM340K-5.


В схеме необходимо использовать 5 транзисторов в ключевом режиме
для управления семисегментными индикаторами.
Схема работы: при наличии высокого уровня на базе транзистора,
транзистор открывается и на выходе ключа будет низкий уровень. При
низком уровне напряжения на базе транзистора транзистор будет закрыт и
на выходе ключа будет высокий уровень, определяемый уровнем
напряжения, подключенного к коллектору транзистора. Таким образом,
транзистор все время либо разомкнут, либо замкнут, его потребляемая
мощность практически нулевая, поэтому нам подходит практически любой
транзистор. Выберем транзистор КТ315, поскольку он удовлетворяет
нужным параметрам, распространен и недорого стоит. Его характеристики
приведены в таблице 14.

38
Таблица 14.

Рабочая частота: 250 МГц


Коэф. усиления по току: 30-120
Максимальный ток 100 мА
коллектора:
Макс. напряжение 25В
коллектор-эммитер:
Расс. мощность: 0,15Вт
Для установки и выбора режима нам необходимы пять
кнопочных переключателя. Для этой цели будем использовать
переключатели MPS-5802 (рисунок 10), параметры переключателя
приведены в таблице 15.

Риснок 10 - Переключатель кнопочный MPS-5802.

Таблица 15.

Параметры: 30В пост. 0,1A


Сопротивление контактов: <100мОм
Сопротивление изоляции: >100MOм пост. 125В
Электрический ресурс: 10000 циклов
Сила нажатия: 150+_80г
Сопротивление изоляции: >100Moм пост. 125В
Температура пайки: 250°C макс. 3 сек.
Выдерживаемое напряжение: 125В 39oolea. 1 мин.
Механический ресурс: 100000 циклов
Выдерживаемое напряжение: 125В 39oolea. 1 мин.
Рабочая температура: от _25°C до +65°C

39
7.10 Разработка функциональной схемы.

Функциональная схема представлена на третьем листе


графической части. Температурный датчик работает по интерфейсу
i2с, который поддерживает микроконтроллер, поэтому
дополнительных средств согласования и управления не требуется.
Обмен информацией поддерживается программно через выходы
РС0, РС1, а при подключении датчика необходимо только поставить
2 резистора по 1кОм (типовое подключение по datasheet). У датчика
влажности выход аналоговый, поэтому нужно использовать АЦП,
который встроен в Atmega 8535, используя РА2. Передача
поддерживается программно. Кнопки управления и ключевые
элементы подключаются к порту В, а порт D используется для
семисегментной индикации.

40
8 Описание работы принципиальной схемы

Электрическая принципиальная схема приведена на четвертом листе


графической части работы.
Питание нашей системы будет от стандартной сети 220В, 50 Гц. Для
питания микропроцессора и других элементов схемы необходимо
постоянное напряжение
5 В.
Будем использовать следующую схему: трансформатор понижает
переменное сетевое напряжение до 12 В. Диодный мост VD1…4
выпрямляет сетевое напряжение. Интегральный диодный мост выбранного
типа DB157 коммутирует токи до 1 А. В качестве стабилизатора
напряжения включена микросхема интегрального стабилизатора U1 —
LM340K-5, схема включения — стандартная, рекомендованная
производителем.
Данные с датчика температуры считывается микропроцессором по
интерфейсу I2C, а данные с датчика влажности - через АЦП.
Переключение каналов АЦП, обработка данных с датчиков температуры,
выработка сигналов на исполнительные устройства, вывод информации на
устройство индикации осуществляется программно с помощью
соответствующих средств микроконтроллера.
Для вывода визуальной информации об установленной влажности и
температуре в теплице используем трехразрядный и двухразрядный
семисегментные светодиодные индикаторы.
Принцип индикации следующий. Каждую 16 мс загорается одна цифра
индикаторов. Для определения номера цифры в программе
микроконтроллера есть счетчик (указатель индикатора), который считает
от 0 до 2. Восьмиразрядный таймер счетчик запрограммирован так, что
через каждые 16 миллисекунд возникает прерывание. Таким образом,
каждые 16 миллисекунд горит одна цифра. В следующую миллисекунду

41
загорается следующая цифра, а эта гаснет. Глаз же человека воспринимает
это так, как будто горят одновременно все цифры.
При включении питания микроконтроллер принимает сигнал RESET,
который определяет начальную синхронизацию встроенного калибруемого
генератора. Узел программирования получает сигналы синхронизации от
синхронизатора и управляет работой счетчика команд и FLASH-памятью
программ.
Регистр команд содержит команду, которая выбирается из FLASH-
памяти программ для выполнения. Дешифратор команд по коду операции
определяет, какая команда должна выполняться. Далее происходит
последовательная выборка и исполнение команд в соответствии с
алгоритмом работы.
При нажатии на кнопки управления происходит прерывание и
управление предается соответствующему обработчику прерывания, где по
алгоритму происходит установка нужного режима. Заданные значения
температур и влажности сохраняются в соответствующих РОН при выборе
режима работы.
Подключение устройств к портам микроконтроллера Atmega8535
приведено в таблице 16.
Таблица 16. Подключение устройств к портам микроконтроллера Atmega8535
№ Порт:
Подключенное устройство
вывода разряд
Порт А
40 0 Кнопка «режим 1»
39 1 Кнопка «режим 2»
38 2 Кнопка «режим 3»
37 3 Кнопка «режим 4»
36 4 Кнопка «режим 5»
35 5 датчик влажности
34 6 симистор управления клапаном для воды
Порт В
1 0 младшая цифра двухразрядного индикатора
2 1 первая цифра трехразрядного индикатора
3 2 симистор для обогрева теплицы

42
№ Порт:
Подключенное устройство
вывода разряд
Порт B
4 3 симистор для управления ФК
5 4 симистор для управления ФБ
6 5 симистор для управления дверью
7 6 вторая цифра трехразрядного индикатора
8 7 третья цифра трехразрядного индикатора
Порт С
22 0 Температурный датчик
23 1 Температурный датчик
Порт D
14 0 Сегмент индикатора (выход)
15 1 Сегмент индикатора (выход)
16 2 Сегмент индикатора (выход)
17 3 Сегмент индикатора (выход)
18 4 Сегмент индикатора (выход)
19 5 Сегмент индикатора (выход)
20 6 Сегмент индикатора (выход)
21 7 старшая цифра двухразрядного индикатора

43
9 Разработка моделирующей программы

9.1 Определение концепции моделирующей программы.

Разрабатываемая программа призвана служить моделью


разрабатываемой микропроцессорной системы. У нее должна быть
возможность задавать входные данные, которые должны соответствовать
входным данным разрабатываемой микропроцессорной системы. А
именно:
1. Выбранный режим работы
2. Текущая температура в теплице
3. Текущая влажность в теплице
У программы должна быть возможность установки температуры и
влажности.
Выходные данные моделирующей программы должны соответствовать
выходным данным микропроцессорной системы. А именно:
1. Сигналы для исполнительных устройств.
2. Индикация температуры и режима работы.
Моделирование будет производиться в среде Delphi7, так как эта среда
обладает удобными инструментами для создания и работы с окнами, имеет
стандартный системный таймер, средства для индикации, управления
(кнопки) и проста в программировании.
При запуске программы необходимо выбрать установленный режим,
нажать кнопку «включение». В графах «ручное задание температуры» и
«ручное задание влажности» задаем температуру и влажность
соответственно. В верхней части будет отображаться текущая температура
и выбранный режим. В графе «визуализация действий системы» мы видим
реакцию системы на изменение параметров среды.
Листинг программы приведен в приложении А. Основные операции
производятся в процедуре Timer1, позволяя циклически опрашивать
датчики температуры и влажности и принимать решения о
включении/выключении исполнительных устройств.
44
9.2 Анализ работы системы в моделирующей программе.
Для анализа работоспособности системы подадим несколько
вариантов параметров:
1) Режим – 1, температура – 14, влажность – 55. Реакция системы
на такие входные параметры представлена на рисунке 11.

Рисунок 11.
2) Режим – 2, температура – 30, влажность – 45. Реакция системы
на данные входные параметры представлена на рисунке 12.

Рисунок 12.

45
3) Режим – 5, температура – 32, влажность – 55. Реакция системы
на такие входные параметры представлена на рисунке 13.

Рисунок 13.

46
10 Программное обеспечение для микроконтроллера
Писать программу для микроконтроллера будем на языке С, так как
такая программа более проста в написании, наглядна и не требует
специфических знаний ассемблера и особенностей данного
микроконтроллера. Программировать будем в CodeVisionAVR. Эта
программа бесплатна, создана специально для работы с
микроконтроллерами AVR, есть библиотеки для каждого
микроконтроллера (в том числе и для Atmega8535), а также есть
инструмент начального создания кода. С помощью этого инструмента мы
можем настроить порты ввода/вывода, настроить работу по интерфейсу
I2C, а также таймер и АЦП преобразователь.
Листинг программы для микроконтроллера приведен в приложении
Б.
Четыре процедуры являются стандартными: main, read_adc,
ds1621_temperature_10(0), timer0_ovf_isr.
 read_adc – процедура для считывания данных с датчика
влажности, поддерживает связь с АЦП.
 ds1621_temperature_10(0) – стандартная процедура для обмена
с датчиком ds1621 по интерфейсу i2c.
 timer0_ovf_isr – прерывание таймера по переполнению.
Позволяет отображать режим и температуру на
семисегментных индикаторах таким образом, чтобы не
возникало мерцаний и пропадений цифр с индикатора.
 main – главная процедура, в нее входит пользовательские
процедуры:
 zapoln – процедура, осуществляющая запоминание
критических параметров по выбранному режиму.
 indik, otobr_chif – процедуры для отображения данных на
семисегментных индикаторах, подавая на выводы A-G и

47
транзисторные ключи соответствующие сигналы. В таблице 17
представлены коды для отображения цифр и знака «-»:
Таблице 17.
  d0 d1 d2 d3 d4 d5 d6 код
цифра 1 0 1 1 0 0 0 0 0x82
цифра 2 1 1 0 1 1 0 1 0x3e
цифра 3 1 1 1 1 0 0 1 0xae
цифра 4 0 1 1 0 0 1 1 0x87
цифра 5 1 0 1 1 0 1 1 0xad
цифра 6 1 0 1 1 1 1 1 0xbd
цифра 7 1 1 1 0 0 0 0 0x22
цифра 8 1 1 1 1 1 1 1 0xbf
цифра 9 1 1 1 1 0 1 1 0xaf
цифра 0 1 1 1 1 1 1 0 0xbb
знак 0 0 0 0 0 0 1 0x1
  A B C D E F G  

48
11 Симуляция работы микроконтроллера в VMLAV
Для того чтобы убедиться в правильности работы нашей схемы и
получить временные диаграммы работы системы, необходимо провести
симуляцию работы микроконтроллера. Будем использовать программу
VMLAB, которая предназначена для симуляции работы микропроцессоров
AVR и является бесплатной. Мы можем использовать программное
обеспечение, которое написали ранее на CodeVisionAVR, добавив один
файл (см. Приложение В), который описывает электрическую схему
системы для симуляции. Получим временные диаграммы реакции системы
на повышенную и пониженную температуры. Временные диаграммы
представлены на первом листе графической части работы.

49
Заключение
Разработанная микропроцессорная система управления
микроклиматом в теплице полностью удовлетворяет поставленным
требованиям. Осуществляется мониторинг и индикация температуры и
влажности, в соответствии с выбранным режимом работы происходит
управление фрамугами, капельным поливом и нагревателем.
Результаты моделирования на персональном компьютере показали,
разработанная микропроцессорная система функционирует правильно и
выполняет возложенные на нее задачи.

50
Список использованных источников
1) Моченов С.В. «Методические указания по выполнению
курсового проекта по дисциплине «Микропроцессорные
системы»» - Ижевск: ИжГТУ, 2007 г.
2) Баранов В.Н. Применение микроконтроллеров AVR: схемы,
алгоритмы, программы. – М.Ж Издательский дом «Додэка
XXI», 2004
3) Тигранян Р.Э. Микроклимат. Электронные системы
обеспечения. – ИП. Радиософт, 2005
4) Гребнев В.В. Микроконтроллеры семейства AVR фирмы
Atmel. – М.: ИП РадиоСофт, 2002 – 176с.
5) Datasheet: Atmel 8-bit AVR Microcontroller
6) Datasheet: BT 139 Series.
7) Datasheet: LM340 Series.
8) http://v3.espacenet.com/publicationDetails/biblio?
DB=EPODOC&adjacent=true&locale=en_EP&FT=D&date=20070
201&CC=KR&NR=20070014883A&KC=A
9) http://ru-patent.info
10) http://www.teplitsa-urojay.ru/rasta/ogurtsy/
11) http://www.zooclub.ru/flora/rouse/14.shtml
12) http://www.greeninfo.ru/vegetables/capsicum_annuum.html/
Article/_/aID/3354
13) http://www.sadovod.spb.ru/TextShablon.php?LinkPage=222
14) attachment:/26/ds1621.htm
15) attachment:/15/6.htm
16) http://easyelectronics.ru/
17) http://www.superfilter.ru/manual.htm
18) http://www.ruselectric.ru/info/shop/transformatori/2084
19) http://www.chip-dip.ru/product0/874599444.aspx
20) http://www.elfa.lv/cgi-bin/index.cgi?artnr=73-092-06&lng=rus

51
21) http://clip2net.com/u/the_ghost/rezus/page-62729-mos3041/
22) http://catalog.compel.ru/triac/info/BT139-600.127%20(NXP)
23) http://www.pcports.ru/articles/avr4.php
24) http://www.gaw.ru/

52
Приложение А
Листинг моделирующей программы
unit pop1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg;
type
Tform1 = class(Tform)
GroupBox1: TgroupBox;
RadioButton1: TradioButton;
RadioButton2: TradioButton;
RadioButton3: TradioButton;
RadioButton4: TradioButton;
RadioButton5: TradioButton;
Edit1: Tedit;
Edit2: Tedit;
Label1: Tlabel;
Label2: Tlabel;
Button1: Tbutton;
Button2: Tbutton;
GroupBox2: TgroupBox;
Label4: Tlabel;
Memo1: Tmemo;
Label5: Tlabel;
Edit3: Tedit;
Timer1: Ttimer;
Button3: Tbutton;
Button4: Tbutton;
GroupBox3: TgroupBox;
Edit4: Tedit;
Button5: Tbutton;
Button6: Tbutton;
door: Timage;
FK_FK: Timage;
obogr: Timage;
FB_FB: Timage;
poliv: Timage;
procedure Button1Click(Sender: Tobject);
procedure Button2Click(Sender: Tobject);
procedure Timer1Timer(Sender: Tobject);

53
procedure Button4Click(Sender: Tobject);
procedure Button3Click(Sender: Tobject);
procedure Button5Click(Sender: Tobject);
procedure Button6Click(Sender: Tobject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: Tform1;
T,Tm,Tn,V,Vn,Vm:extended;
D,FB,FK,pr:54oolean;
I,k:integer;
g:int64;
ot_dv,ot_kr,ot_bf,v_ob:54oolean;
implementation

uses Unit2, Unit3, Unit4, Unit5;

{$R *.dfm}
procedure Tform1.Button1Click(Sender: Tobject);
label st1;
begin
// начальная инициализация
D:=false;FB:=false;FK:=false;pr:=false;
// первоначальная инициализация
if RadioButton1.Checked=True then
begin
Edit2.Text:=’1’;
Tm:=22; Tn:=17;D:=true; FB:=true;
FK:=true;Vn:=30;Vm:=60;
end;
if RadioButton2.Checked=True then
begin
Edit2.Text:=’2’;
Tm:=23; Tn:=19;D:=true;
FB:=false; FK:=true; Vn:=60;
Vm:=80;
end;
if RadioButton3.Checked=True then
begin
Edit2.Text:=’3’;

54
Tm:=21;Tn:=18;D:=true; FB:=false;
FK:=true;Vn:=35;Vm:=65;
end;
if RadioButton4.Checked=True then
begin
Edit2.Text:=’4’;
Tm:=24; Tn:=21; D:=true;
FB:=false; FK:=true; Vn:=70;
Vm:=90;
end;
if RadioButton5.Checked=True then
begin
Edit2.Text:=’5’;
Tm:=30; Tn:=25;D:=true;
FB:=true; FK:=true;Vn:=40;
Vm:=65;
end;
ot_dv:=false;
ot_kr:=false;
ot_bf:=false;
v_ob:=false;
end;

procedure Tform1.Button2Click(Sender: Tobject);


begin
Form1.Close;
end;

procedure Tform1.Timer1Timer(Sender: Tobject);


begin
// считывание температуры
if Edit3.Text<>’’ then
T:=StrToFloat(Edit3.Text) else Form3.Show;
Edit1.Text:=Edit3.Text;
if T<Tn then if (FB=true) and (ot_bf=true) then
begin
Memo1.Text:='закрытие боковой фармуги';
FB_FB.Visible:=False;
ot_bf:=false;
end
else
if (FK=true) and (ot_kr=true) then
begin

55
//Memo1.Text:='закрытие фармуги в крыше';
FK_FK.Visible:=False;
ot_kr:=false;
end
else
if (D=true) and (ot_dv=true) then
begin
Memo1.Text:=’закрытие двери’;
door.Visible:=false;
ot_dv:=false;
end
else
if v_ob=false then
begin
obogr.Visible:=true;
Memo1.Text:=’включение обогревателя’;
v_ob:=true;
Form5.Show;
Memo1.Lines.Add(‘после 30 минут’);
Memo1.Lines.Add('выключение обогревателя');
v_ob:=false;
end;
// проверка на превышение
if T>Tm then if v_ob=true then begin memo1.Text:=’выключение
обогревателя’; v_ob:=false;end
else
if (D=true) and (ot_dv=false) then
begin
Memo1.Text:=’открытие двери’;
door.Visible:=true;
ot_dv:=true;
end
else if (FK=true) and (ot_kr=false) then
begin
Memo1.Text:='открытие фрамуги в крыше';
FK_FK.Visible:=true;
ot_kr:=true;
end
else if (FB=true) and (ot_bf=false) then
begin
Memo1.Text:='открытие боковой фрамуги';
FB_Fb.Visible:=true;
ot_bf:=true;

56
end;

// считывание с датчика влажности


if Edit4.Text<>'' then
V:=StrToFloat(Edit4.Text) else Form3.Show;
if V<Vn then
begin
poliv.Visible:=true;
Memo1.Lines.Add('капельный полив');
// задержка на 15 минут
Form4.Show;
end;
end;

procedure Tform1.Button4Click(Sender: Tobject);


begin
Edit3.Text:=FloatToStr(StrToFloat(Edit3.Text)-1);
end;

procedure Tform1.Button3Click(Sender: Tobject);


begin
Edit3.Text:=FloatToStr(StrToFloat(Edit3.Text)+1);
end;

procedure Tform1.Button5Click(Sender: Tobject);


begin
Edit4.Text:=FloatToStr(StrToFloat(Edit4.Text)-1);
end;

procedure Tform1.Button6Click(Sender: Tobject);


begin
Edit4.Text:=FloatToStr(StrToFloat(Edit4.Text)+1);
end;
end.

57
Приложение Б
Листинг прошивки для микроконтроллера

/*****************************************************
Chip type : Atmega8535
Program type : Application
AVR Core Clock frequency: 1,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 128
*****************************************************/

#include <mega8535.h>
#include <delay.h>

// I2C Bus functions


#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>

// DS1621 Thermometer/Thermostat functions


#include <ds1621.h>

#define ADC_VREF_TYPE 0x20

// объявление глобальных переменных


int temp_v,T_max,T_min,buf;
int I;
unsigned char V,V_max,V_min;
unsigned char rezim,pr;

// процедура отображение цифры на одном из разряде


void otobr_chif(int buf)
{switch (buf)
{case 0:PORTD=0xbb;
case 1:PORTD=0x82;
case 2:PORTD=0x3e;
case 3:PORTD=0xae;
case 4:PORTD=0x87;
case 5:PORTD=0xad;
case 6:PORTD=0xbd;
case 7:PORTD=0x22;
case 8:PORTD=0xbf;
case 9:PORTD=0xaf;
} }

// процедура индикации температуры и режима


void indik(void)
{
// отображение температуры
// отображение знака
if (temp_v<0) {PORTB.1=1;
PORTD=1;}
else {PORTB.1=0;}
delay_us(10);
PORTB.1=0;
// отображение младшей цифры
buf=temp_v %10;

58
otobr_chif(buf);
PORTB.7=1;
delay_us(10);
PORTB.7=0;
// вывод старшей цифры
buf=temp_v %100;
otobr_chif(buf);
PORTB.6=1;
delay_us(10);
PORTB.6=0;

// отображение младшей цифры влажности


buf=V %10;
otobr_chif(buf);
PORTD.7=1;
delay_us(10);
PORTD.7=0;

// вывод старшей цифры влажности


buf=V /10;
otobr_chif(buf);
PORTA.7=1;
delay_us(10);
PORTA.7=0;

// функция выполнения задержки и поддержания индикации


// minut – количество времени по 15 минут
void delay_my(unsigned char minut)
{unsigned char j;
for (j=1;j<=minut;j++)
{for (i=1;i<=10000;i++){
delay_ms(20);
indik();}}
}

//считывание с АЦП
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}

// процедура заполнения значений max min температуры и влажности


void zapoln(unsigned char rezim)
{ switch(rezim)
{case 1: T_max=22;
T_min=17;
V_max=60;
V_min=30;
pr=1;
break;
case 2: T_max=23;
T_min=19;
V_max=80;

59
V_min=60;
break;
case 3: T_max=21;
T_min=18;
V_max=65;
V_min=35;
pr=1;
break;
case 4: T_max=24;
T_min=21;
V_max=90;
V_min=70;
break;
case 5: T_max=30;
T_min=25;
V_max=65;
V_min=40;
break;
default: break;}}
// функция работы с термодатчиком
void izm_temp(int temp_v)
{
// считываем температуру
ds1621_start(0);
temp_v=ds1621_temperature_10(0);
// температурный датчик переводим в режим пониженного энергопотребления
ds1621_stop(0);
// сравниваем с нормой
if (temp_v>T_max) {//охлаждение теплицы
if (PINB.5==0) {PORTB.5=1;}
else if (PINB.3==0){PORTB.3=1;}
else {if (rezim==1) {PORTB.4=1;}
if (rezim==5) {PORTB.4=1;}} }

if (temp_v<T_min){// нагревание теплицы


if (PINB.4==1){PORTB.4=0;}
else if (PINB.3==1){PORTB.3=0;}
else if (PINB.5==1){PORTB.5=0;}
else { PINB.2=1;
delay_my(2); // задержка на 30 минут

}
}
}

// функция прерывания таймера по переполнению


interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{indik();
}

void main(void)
{
// инициализация портов
// Port A initialization
PORTA=0x00;
DDRA=0x08;

// Port B initialization
PORTB=0x00;
DDRB=0xFF;

// Port C initialization
PORTC=0x00;
DDRC=0x00;

60
// Port D
PORTD=0x00;
DDRD=0x7F;

// инициализация таймера 0; частота работы 15,625 КГц

TCCR0=0x03;
TCNT0=0x00;
OCR0=0x00;

// Analog Comparator initialization


// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC Clock frequency: 500,000 kHz
// ADC Voltage Reference: AREF pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: ADC Stopped
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x81;
SFIOR&=0xEF;

// инициализация порта i2c


i2c_init();
// инициализация термодатчика
ds1621_init(1,0,0,0);// адрес термодатчика 1

#asm(«sei»)
while (1)
{
// проверяем нажата ли клавиша выбора режима
if (PINA.0==1) {rezim=1;}
if (PINA.1==1) {rezim=2;}
if (PINA.2==1) {rezim=3;}
if (PINA.3==1) {rezim=4;}
if (PINA.4==1) {rezim=5;}
if (rezim!=0){
zapoln(rezim);

// если нет, то считываем температуру


izm_temp(temp_v);

// считываем влажность
V=read_adc(5);
if (V<V_min){
// полив для помидор и перца
if (pr==1){while(V<V_max){
PORTA.6=1;
for(i=1;i<=900;i++)delay_ms(1000);
PORTA.6=0;
// считываем влажность
V=read_adc(5);
}}

else { PORTA.6=1;
delay_my(1); // задержка в 15 минут
PORTA.6=0;
} }

61
// задержка на 30 минут
delay_my(2);}
}

62
Приложение В
Листинг симулирующей программы
.MICRO “ATmega8535” ; симулируемый микроконтроллер
.TOOLCHAIN “GENERIC”
.TARGET “pop1.hex” ; что прошито в мк
.COFF “pop1.cof” ; для пошагового режима
.SOURSE “pop2.c”

.POWER VDD=5 VSS=0 ; подключение питания и земли


.CLOCK 1mer ; частота работы процессора

R1 VDD K0 200
K0 R1 PA0

R2 VDD K1 200
K1 R2 PA1

R3 VDD K2 200
K2 R3 PA2

R4 VDD K3 200
K3 R4 PA3

R5 VDD K4 200
K4 R5 PA4

X1 I2C(200K,0) PC1 PC0

X2 I2C(200K,1) PC1 PC0

.PLOT V(PB5)V(PB4) V(PB3) V(PB2)

63

Вам также может понравиться