Академический Документы
Профессиональный Документы
Культура Документы
Курсовая по микроконтроллерам
Курсовая по микроконтроллерам
4
«Фито», система «Агротем») содержат полный комплекс управления
микроклиматом:
температура и влажность воздуха
инфракрасный термометр листа
температура и влажность почвы
температура стекла
температура зоны плодоношения
температура в контурах отопления
концентрация СО2 и т.д.
ультразвуковой датчик ветра
бесконтактный датчик осадков
соляриметра
ФАР-метра
Такие системы, конечно, хороши и эффективны, но обладают вполне
ощутимым недостатком – высокой стоимостью. Использование такого
рода систем в промышленной агротехнике оправдана: территория теплиц
огромна, а такая система позволяет экономить на персонале, получать
большой урожай, что позволяет увеличить прибыль, а, следовательно,
окупить систему.
Особенностью агротехники нашей страны является то, что 70%
населения сами обеспечивают себя овощами в летний и осенний период за
счет выращивания культур на приусадебных участках. Естественно, что в
таких условиях выращивания человек не может постоянно контролировать
микроклимат в теплице, но и покупать дорогостоящую систему тоже нет
возможности. Многие из дачников используют подручные, не всегда
надежные и эффективные свойства – гидроцилиндры для автоматического
открывания форточек при слишком высокой температуре, бочку с
небольшим отверстием для полива и прочее. Эти приспособления не
дороги, но малоэффективны и не надежны (гидроцилиндры часто выходят
5
строя, течет масло, уплотнительное кольца быстро приходят в негодность,
температура, при которой открывается форточка, измеряется эмпирически
и т.д.). Поэтому необходимо создать простую систему управления
основными параметрами микроклимата: температура и влажность.
6
1 Формирование требований пользователя к АС
Наша система должна отвечать следующим основным требованиям:
1. должна быть максимально простой и недорогой.
2. иметь понятную систему управления, не требующую особых знаний
и навыков.
3. иметь возможность реконфигурирования микроклимата под ту или
иную выращиваемую культуру.
4. не должна предъявлять особых требований к конструкции теплицы и
максимально от нее не зависеть.
5. обеспечивать надежную и устойчивую работу всех элементов
системы
7
2 Техническое задание
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
сравнивающего устройства, с которым связан датчик внутренней
температуры и выход блока вычисления оптимальной температуры.
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 Устройство управления
Устройство управления является главной частью системы, оно
необходимо для сбора и обработки информации поступающей с системы
датчиков, выработки управляющих сигналов для исполнительных
устройств, а также вывода информации на устройство индикации.
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-интерфейс.).
23
длительность машинного цикла составляет всего один период кварцевого
генератора.
Структурная схема микроконтроллера приведена на рисунке 1.
24
Рисунок 1- Архитектура микроконтроллера ATmega8535
25
Счетчик команд.
Размер счетчика команд составляет 12 разрядов. Напрямую (как
регистр) счетчик команд из программы недоступен.
При нормальном выполнении программы содержимое счетчика
команд автоматически увеличивается на 1 или на 2 (в зависимости от
выполняемой команды) в каждом машинном цикле. Этот порядок
нарушается при выполнении команд перехода, вызова и возврата из
подпрограмм, а также при возникновении прерываний.
После включения питания, а также после сброса микроконтроллера в
счетчик программ автоматически загружается значение $000. Как правило,
по этому адресу располагается команда перехода (RJMP) к
инициализационной части программы.
При возникновении прерывания в счетчик команд загружается адрес
соответствующего вектора прерывания ($001...$014). Если прерывания
используются в программе, по этим адресам должны размещаться
команды относительного перехода к подпрограммам обработки
прерываний. В противном случае основная программа может начинаться
непосредственно с адреса $001.
26
косвенной адресации памяти программ и памяти данных. Так как объем
адресуемой памяти составляет всего 32 байт, при обращении к ней
используется только младший байт (регистр R30). Содержимое старшего
байта индексного регистра (регистр R31) при косвенной адресации памяти
данных автоматически очищается процессором.
Регистры ввода/вывода (РВВ) микроконтроллера.
Регистры ввода/вывода (РВВ) располагаются в так называемом
пространстве ввода/вывода размером 64 байт. Все РВВ можно разделить
на две группы: служебные регистры микроконтроллера и регистры,
относящиеся к периферийным устройствам (в том числе порты
ввода/вывода). Размер каждого регистра – 8 бит.
Сторожевой таймер используется для защиты от аппаратных сбоев,
например, если программа перешла в бесконечный цикл.
Регистр команд содержит команду, которая выбирается из FLASH-
памяти программ для выполнения.
При необходимости к генератору микроконтроллера можно
подключить внешний тактовый генератор на основе кварца. Если
необходимости в увеличении стандартной тактовой частоты нет, то можно
использовать встроенный генератор.
Начальная синхронизация происходит с приходом на вход
синхронизатора сигнала RESET.
7.3 Описание выводов микроконтроллера ATmega 8535 [5].
Выводы микроконтроллера представлены на рисунке 2.
27
Рисунок 2- Выводы микроконтроллера ATmega 8535
Описание выводов микроконтроллера ATmega 8535 представлено в
таблице 3.
28
1 2 3 4
29
7.4 Выбор температурного датчика.
В качестве датчика температуры был выбран датчик DS1621 фирмы
Dallas[14,15], представленный на рисунке 3.
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
31
нас пять, поэтому для отображения рабочего режима используем
одноразрядный семисегментный индикатор.
Будем использовать индикаторы BA56-12 фирмы KingBrigth[21] и
LDD3051 фирмы LIGI[22] . Технические характеристики приведены в
таблице 6.
Таблица 6.
Макс. прямое напряжение(при токе 20 мА) 2,5 В
Максимальный прямой ток 25-30 мА
Максимальное обратное напряжение 5В
Обратный ток(при напряжении 5В) 10 мкА
Мощность рассеивания 150 мВт
Максимальный импульсный прямой ток 140-160 мА
Диапазон рабочих температур -40…+85 ° С
Устройства индикации и схемы их включения представлены на рисунке
4(а,б,в).
32
Рисунок 4б - Трехразрядный семисегментный индикатор схема подключения.
33
чтобы между высоковольтной и низковольтной частью не было прямого
электрического соединения. Например, сделать оптическое разделение.
Для этого существует специальная сборка — симисторный оптодрайвер
MOC3041[17] (рисунок 5). Можно не бояться помех по питанию при
включении и выключении симистора. В самом оптодрайвере сигнал
подается светодиодом, а значит можно смело зажигать его от ножки
микроконтроллера без всяких дополнительных ухищрений.
Характеристики симисторного оптодрайвера приведены в таблице 7.
Таблица 7.
Прямой ток 50 мА
Обратное напряжение на выходе 400 В
Напряжение изоляции 5000 В
Ток включения 15 мА
34
Рисунок 6 - Симистор ВТ 139.
Параметры симистора приведены в таблице 8.
Таблица 8.
Максимальное напряжение 600 В
Коммутируемый ток 16 А
Напряжение удержания 1.6 В
Ток УЭ 25 мА
Время включения 2 мкс
35
Рисунок 7 - Клапан 2W21
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
Количество фаз
37
Таблица 13.
Макс. входное напряжение: 35 В
Падение выходного напряжения 2 В тип.
Допуск вых. напряжения: ±5 %
Потребляемый ток: 8 мА макс.
Выходной ток
миним.: 5 мА
макс.: 1A
Тепловое сопротивление: 4 °C/Вт (переход-корпус)
38
Таблица 14.
Таблица 15.
39
7.10 Разработка функциональной схемы.
40
8 Описание работы принципиальной схемы
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 Разработка моделирующей программы
Рисунок 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
{$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;
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;
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>
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;
//считывание с АЦП
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;
}
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;}} }
}
}
}
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;
TCCR0=0x03;
TCNT0=0x00;
OCR0=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;
#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);
// считываем влажность
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”
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
63