Микропроцессорное управление микроклиматом теплицы

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    177,15 Кб
  • Опубликовано:
    2015-12-21
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Микропроцессорное управление микроклиматом теплицы

Содержание

 

Введение

1. Формирование требований пользователя к АС

3. Разработка структуры

3.1 Описание функций, которые выполняет система

3.2.1 Датчики

3.2.2 Устройство управления

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

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

4. Разработка схемы

4.1 Выбор микроконтроллера

4.2 Структура микроконтроллера ATmega8535

4.3 Описание выводов микроконтроллера ATmega 8535 [5]

4.4 Выбор температурного датчика

4.5 Выбор датчика влажности

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

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

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

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

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

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

6. Программное обеспечение для микроконтроллера

Заключение

Библиографический список

Приложения

Введение

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

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

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

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

·        температура и влажность воздуха

·        инфракрасный термометр листа

·        температура и влажность почвы

·        температура стекла

·        температура зоны плодоношения

·        температура в контурах отопления

·        концентрация СО2 и т.д.

·        ультразвуковой датчик ветра

·        бесконтактный датчик осадков

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

Особенностью агротехники нашей страны является то, что 70% населения сами обеспечивают себя овощами в летний и осенний период за счет выращивания культур на приусадебных участках. Естественно, что в таких условиях выращивания человек не может постоянно контролировать микроклимат в теплице, но и покупать дорогостоящую систему тоже нет возможности. Многие из дачников используют подручные, не всегда надежные и эффективные свойства - гидроцилиндры для автоматического открывания форточек при слишком высокой температуре, бочку с небольшим отверстием для полива и прочее. Эти приспособления не дороги, но малоэффективны и не надежны (гидроцилиндры часто выходят строя, течет масло, уплотнительное кольца быстро приходят в негодность, температура, при которой открывается форточка, измеряется эмпирически и т.д.). Поэтому необходимо создать простую систему управления основными параметрами микроклимата: температура и влажность.

1. Формирование требований пользователя к АС


Наша система должна отвечать следующим основным требованиям:

.        должна быть максимально простой и недорогой.

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

.        иметь возможность реконфигурирования микроклимата под ту или иную выращиваемую культуру.

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

.        обеспечивать надежную и устойчивую работу всех элементов системы

2. Разработка концепции АС


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

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

 

Таблица 1.

режим

Выращиваемая культура

температура воздуха

проветривание

влажность

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


3. Разработка структуры


3.1 Описание функций, которые выполняет система


Для разработки структурной схемы системы контроля микроклимата теплицы, кратко опишем функции, которые должна выполнять разрабатываемая система:

.        Начальный запуск системы

2.      Выбор необходимого для поддержания типа микроклимата.

.        Прием данных с датчиков и обработка этих данных в соответствии с алгоритмом.

.        Вывод текущих параметров микроклимата среды.

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

3.2 Основные модули


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

3.2.1 Датчики

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

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

3.2.2 Устройство управления

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

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

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

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


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

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


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

микропроцессорное управление микроклимат теплица

Рисунок 1 - Алгоритм работы системы

4. Разработка схемы


4.1 Выбор микроконтроллера


Ориентировочно требуется 25 выводов: 12 для организации матрицы индикации на основе двух 7-ми сегментных индикаторов (двухразрядный и трехразрядный), 3 для подключения датчиков, 5 для подключения кнопок управления, 5 для управления исполнительных устройств.

Таким образом, выбор микроконтроллера будет осуществляться из серии "mega". Согласно табл. 1, оптимальным решением будет микроконтроллер ATmega8535, т.к. он обладает достаточным объемом памяти, необходимым количеством выводов, высоким быстродействием и хорошим набором периферии (АЦП, таймеры, внутренний RC-генератор TWI-интерфейс.).

4.2 Структура микроконтроллера ATmega8535


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

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

Рисунок 2 - Архитектура микроконтроллера ATmega8535

Счетчик команд.

Размер счетчика команд составляет 12 разрядов. Напрямую (как регистр) счетчик команд из программы недоступен.

При нормальном выполнении программы содержимое счетчика команд автоматически увеличивается на 1 или на 2 (в зависимости от выполняемой команды) в каждом машинном цикле. Этот порядок нарушается при выполнении команд перехода, вызова и возврата из подпрограмм, а также при возникновении прерываний.

После включения питания, а также после сброса микроконтроллера в счетчик программ автоматически загружается значение $000. Как правило, по этому адресу располагается команда перехода (RJMP) к инициализационной части программы.

При возникновении прерывания в счетчик команд загружается адрес соответствующего вектора прерывания ($001. $014). Если прерывания используются в программе, по этим адресам должны размещаться команды относительного перехода к подпрограммам обработки прерываний. В противном случае основная программа может начинаться непосредственно с адреса $001.

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

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

Два старших регистра общего назначения формируют 16-разрядный индексный регистр Z, который используется в качестве указателя при косвенной адресации памяти программ и памяти данных. Так как объем адресуемой памяти составляет всего 32 байт, при обращении к ней используется только младший байт (регистр R30). Содержимое старшего байта индексного регистра (регистр R31) при косвенной адресации памяти данных автоматически очищается процессором.

Регистры ввода/вывода (РВВ) микроконтроллера.

Регистры ввода/вывода (РВВ) располагаются в так называемом пространстве ввода/вывода размером 64 байт. Все РВВ можно разделить на две группы: служебные регистры микроконтроллера и регистры, относящиеся к периферийным устройствам (в том числе порты ввода/вывода). Размер каждого регистра - 8 бит.

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

Регистр команд содержит команду, которая выбирается из FLASH-памяти программ для выполнения.

Начальная синхронизация происходит с приходом на вход синхронизатора сигнала RESET.

4.3 Описание выводов микроконтроллера ATmega 8535 [5]


Рисунок 3 - Выводы микроконтроллера ATmega 8535

 

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

Обозначение

Номер вывода

Тип вывода

Описание

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 (XCK/T0)

1

I/O

0-й разряд порта В (вход внешнего опорного сигнала для USART/вход внешнего тактового сигнала таймера/счетчика 0)

РВ1 (T1)

2

I/O

1-й разряд порта В (вход внешнего тактового сигнала таймера/счетчика 1)

РВ2 (INТ2/AIN0)

3

I/O

2-й разряд порта В (вход внешнего прерывания 2/положительный вход компаратора)

РВЗ (OC0/AIN1)

4

I/O

3-й разряд порта В (выход сравнения таймера/счетчика 0/отрицательный вход компаратора)

PB4 (SS)

5

I/O

4-й разряд порта В (Вход выбора ведомого SPI)

РВ5 (MOSI)

6

I/O

5-й разряд порта В (выход ведущего/вход ведомого SPI)

РВ6 (MISO)

7

I/O

6-й разряд порта В (вход ведущего/выход ведомого SPI)

РВ7 (SCK)

8

I/O

7-й разряд порта В (опорная частота SPI)

РC0 (SCL)

22

I/O

0-й разряд порта C (линия опорной частоты для Two-wire Serial Bus)

РC1 (SDA)

23

I/O

1-й разряд порта C (линия входа/выхода для Two-wire Serial Bus)

РC2

24

I/O

2.5-й разряды порта C

РCЗ

25

I/O


РC4

26

I/O


РC5

24

I/O


РC6 (TOSC1)

28

I/O

6-й разряд порта C (вход внешнего тактового генератора для таймера 2)

PD0 (RXD)

14

I/O

0-й разряд порта D (вход для UART)

PD1 (TXD)

15

I/O

1-й разряд порта D (выход для UART)

Обозначение

Номер вывода

Тип вывода

Описание

PD2 (INT0)

16

I/O

2-й разряд порта D (вход внешнего прерывания 0)

PD3 (INT1)

17

I/O

3-й разряд порта D (вход внешнего прерывания 1)

PD4 (OC1B)

18

I/O

4-й разряд порта D (выход сравнения A таймера/счетчика 1)

PD5 (OC1A)

19

I/O

5-й разряд порта D (выход сравнения B таймера/счетчика 1)

PD6 (ICP1)

20

I/O

6-й разряд порта D (вход захвата таймера/счетчика 1)

PD7 (OC2)

21

I/O

7-й разряд порта D (выход сравнения таймера/счетчика 2)

GND

11,31

P

Общий вывод

VCC,AVCC

10,30

P

Вывод источника питания цифровой и аналоговой частей

AREF

32

I

Вход эталонного напряжения для ЦАП


4.4 Выбор температурного датчика


В качестве датчика температуры был выбран датчик DS1621.

Основные его свойства:

·        Прямое преобразование температуры в цифровой код, без дополнительных АЦП

·        Возможность передачи данных через одно-, двух - проводной интерфейс

·        Возможность адресации нескольких датчиков на одной шине

·        Заводская калибровка и встроенная коррекция нелинейности, не нужно дополнительной подстройки

·        Широкий диапазон измерения температуры (-55 … +125°С)

·        Высокое быстродействие (время преобразования от 0.5 до 2 с)

·        защита от агрессивной среды

4.5 Выбор датчика влажности


В качестве датчика влажности был выбран HIH 4000-003. Он обеспечивает широкий диапазон измерений, высокую надежность и низкую стоимость. Возможно прямое подключение к АЦП микроконтроллера благодаря стандартному размаху выходного сигнала (от 1.0 до 4.0 В).

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


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

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

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


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

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

Например, сделать оптическое разделение. Для этого существует специальная сборка - симисторный оптодрайвер MOC3041. В качестве симистора взят ВТ 139.

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


В системе микропроцессор должен управлять открытием двери/фрамуг, поливом и обогреванием теплицы.

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

Для проветривания теплицы необходимо на дверь, боковую фрамугу и фрамугу в крыше поставить 3 мотор-редуктора, для открытия или закрытия фрамуг. Будем использовать IG32p-02.

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


Для питания микропроцессора от сети 220 В необходима схема согласования, так как процессор питается от постоянного напряжения в 5В. Будем использовать трансформатор понижающий Б3800.

В качестве диодного моста будем использовать схему DB157.

В качестве стабилизатора напряжения будем использовать LM340K-5.

В схеме необходимо использовать 5 транзисторов в ключевом режиме для управления семисегментными индикаторами. Выберем транзистор КТ315. Для установки и выбора режима нам не обходимы пять кнопочных переключателей. Для этой цели будем использовать переключатели MPS-5802.

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


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

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


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

Данные с датчика температуры считывается микропроцессором по интерфейсу I2C, а данные с датчика влажности - через АЦП. Переключение каналов АЦП, обработка данных с датчиков температуры, выработка сигналов на исполнительные устройства, вывод информации на устройство индикации осуществляется программно с помощью соответствующих средств микроконтроллера.

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

Принцип индикации следующий. Каждую 16 мс загорается одна цифра индикаторов. Для определения номера цифры в программе микроконтроллера есть счетчик (указатель индикатора), который считает от 0 до 2. Восьмиразрядный таймер счетчик запрограммирован так, что через каждые 16 миллисекунд возникает прерывание. Таким образом, каждые 16 миллисекунд горит одна цифра. В следующую миллисекунду загорается следующая цифра, а эта гаснет. Глаз же человека воспринимает это так, как будто горят одновременно все цифры.

При включении питания микроконтроллер принимает сигнал RESET, который определяет начальную синхронизацию встроенного калибруемого генератора. Узел программирования получает сигналы синхронизации от синхронизатора и управляет работой счетчика команд и FLASH-памятью программ.

Регистр команд содержит команду, которая выбирается из FLASH-памяти программ для выполнения. Дешифратор команд по коду операции определяет, какая команда должна выполняться. Далее происходит последовательная выборка и исполнение команд в соответствии с алгоритмом работы.

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

 

Таблица 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

симистор для обогрева теплицы

4

3

симистор для управления ФК

5

4

симистор для управления ФБ

6

5

симистор для управления дверью

6

вторая цифра трехразрядного индикатора

8

7

третья цифра трехразрядного индикатора


Порт С


22

0

Температурный датчик

23

1

Температурный датчик


Порт D


14

0

Сегмент индикатора (выход)

15

1

Сегмент индикатора (выход)

16

2

Сегмент индикатора (выход)

17

3

Сегмент индикатора (выход)

18

4

Сегмент индикатора (выход)

19

5

Сегмент индикатора (выход)

20

6

Сегмент индикатора (выход)

21

7

старшая цифра двухразрядного индикатора



6. Программное обеспечение для микроконтроллера


Писать программу для микроконтроллера будем на языке С, так как такая программа более проста в написании, наглядна и не требует специфических знаний ассемблера и особенностей данного микроконтроллера. Программировать будем в 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 и транзисторные ключи соответствующие сигналы.

Заключение


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

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

Библиографический список


1)      Баранов В.Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы. - М. Ж Издательский дом "Додэка XXI", 2004

2)      Тигранян Р.Э. Микроклимат. Электронные системы обеспечения. - ИП. Радиософт, 2005

)        Гребнев В.В. Микроконтроллеры семейства AVR фирмы Atmel. - М.: ИП РадиоСофт, 2002 - 176с.

4)      Datasheet: Atmel 8-bit AVR Microcontroller

5)      Datasheet: BT 139 Series.

)        Datasheet: LM340 Series.

7)      <http://www.teplitsa-urojay.ru/rasta/ogurtsy/>

)        http://www.zooclub.ru/flora/rouse/14. shtml

)        http://www.greeninfo.ru/vegetables/capsicum_annuum.html/Article/_/aID/3354

10)    http://www.sadovod. spb.ru/TextShablon. php? LinkPage=222 <http://www.sadovod.spb.ru/TextShablon.php?LinkPage=222>

)        attachment: /26/ds1621. htm

)        attachment: /15/6. htm

)        <http://easyelectronics.ru/>

)        http://www.superfilter.ru/manual. htm <http://www.superfilter.ru/manual.htm>

)        <http://www.ruselectric.ru/info/shop/transformatori/2084>

)        http://www.chip-dip.ru/product0/874599444. aspx <http://www.chip-dip.ru/product0/874599444.aspx>

17)    http://www.elfa. lv/cgi-bin/index. cgi? artnr=73-092-06&lng=rus <http://www.elfa.lv/cgi-bin/index.cgi?artnr=73-092-06&lng=rus>

)        <http://clip2net.com/u/the_ghost/rezus/page-62729-mos3041/>

19)    http://catalog.compel.ru/triac/info/BT139-600.127%20 (NXP)  <http://catalog.compel.ru/triac/info/BT139-600.127%20(NXP)>

)        http://www.pcports.ru/articles/avr4. php <http://www.pcports.ru/articles/avr4.php>

21)    <http://www.gaw.ru/>

Приложения

Приложение А

 

Листинг программы для микроконтроллера

/*****************************************************

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;char V,V_max,V_min; char rezim,pr;

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

void otobr_chif (int buf)

{switch (buf)

{case 0: PORTD=0xbb;1: PORTD=0x82;2: PORTD=0x3e;3: PORTD=0xae;4: PORTD=0x87;5: PORTD=0xad;6: PORTD=0xbd;7: PORTD=0x22;8: PORTD=0xbf; 9: PORTD=0xaf;

} }

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

void indik (void)

{

// отображение температуры

// отображение знака

if (temp_v<0) {PORTB.1=1;=1; }{PORTB.1=0; }_us (10);.1=0;

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

buf=temp_v %10;

otobr_chif (buf);.7=1;_us (10);.7=0;

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

buf=temp_v %100;

otobr_chif (buf);.6=1;_us (10);.6=0;

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

buf=V %10;

otobr_chif (buf);.7=1;_us (10);.7=0;

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

buf=V /10;

otobr_chif (buf);.7=1;_us (10);.7=0;

}

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

// minut - количество времени по 15 минутdelay_my (unsigned char minut)

{unsigned char j;(j=1; j<=minut; j++)

{for (i=1; i<=10000; i++) {_ms (20);(); }}

}

// считывание с АЦПchar read_adc (unsigned char adc_input)

{=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage_us (10);

// Start the AD conversion|=0x40;

// Wait for the AD conversion to complete( (ADCSRA & 0x10) ==0);|=0x10; ADCH;

}

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

void zapoln (unsigned char rezim)

{ switch (rezim)

{case 1: T_max=22;_min=17;_max=60;_min=30;=1;;2: T_max=23;_min=19;_max=80;_min=60;;3: T_max=21;_min=18;_max=65;_min=35;

pr=1;;4: T_max=24;

T_min=21;_max=90;_min=70;;5: T_max=30;_min=25;_max=65;_min=40;

break;

default: break; }}

// функция работы с термодатчиком

void izm_temp (int temp_v)

{

// считываем температуру_start (0);_v=ds1621_temperature_10 (0);

// температурный датчик переводим в режим пониженного энергопотребления

ds1621_stop (0);

// сравниваем с нормой

if (temp_v>T_max) { // охлаждение теплицы

if (PINB.5==0) {PORTB.5=1; }if (PINB.3==0) {PORTB.3=1; }{if (rezim==1) {PORTB.4=1; }(rezim==5) {PORTB.4=1; }} } (temp_v<T_min) { // нагревание теплицы

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

}

}

}

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

interrupt [TIM0_OVF] void timer0_ovf_isr (void)

{indik ();

}

void main (void)

{

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

// Port A initialization=0x00;=0x08;

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

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

// Port D

PORTD=0x00;

DDRD=0x7F;

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

TCCR0=0x03;=0x00;=0x00;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off=0x80;=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=ADC_VREF_TYPE & 0xff;=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; }(rezim! =0) {

zapoln (rezim);

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

izm_temp (temp_v);

// считываем влажность

V=read_adc (5);(V<V_min) {

// полив для помидор и перца

if (pr==1) {while (V<V_max) {

PORTA.6=1;(i=1; i<=900; i++) delay_ms (1000);.6=0;

// считываем влажность

V=read_adc (5);

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

} }

// задержка на 30 минут

delay_my (2); }

}

}

Похожие работы на - Микропроцессорное управление микроклиматом теплицы

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!