Автоматизация управления поливом, подкормкой и досвечиванием растений
Принципиальная электрическая схема автомата полива представлена на рисунке 6.13. Программу полива 12 теплиц набирают тумблерами SA2…SA24, программу увлажнения — тумблерами SAI…SA23 (на рисунке не показаны). Поскольку системы полива и увлажнения действуют раздельно, а схемы управления ими аналогичны, то достаточно рассмотреть только схему автоматического управления поливом.
Продолжительность полива одной теплицы (2…4 мин) устанавливают переключателями SA1, а кратность полива (1…5)—тумблерами SA25…SA29. При помощи реле KV1…KV12 и тумблеров SA2…SA24 включают соответствующие группы электромагнитных вентилей полива YA1…YAI2 через промежуточные реле, расположенные в местных шкафах управления. Вентили могут быть включены вручную при помощи тумблера SA30 и переключателя SA31. Последовательность работы элементов схемы показана на рисунке 6.14.
Систему полива включают кнопкой SB (см. рис. 6.13) или по цепи а через реле KV14 в заданное время суток. При этом включаются реле KV18 и KV19 (см. также рис. 6.14). Последнее своими контактами подает от блока питания БП напряжение в схему автомата, а все триггеры элементов Д1…Д13 приходят в исходное положение, и срабатывают реле KV1 и KV13. Вслед за этим срабатывает реле KV20nm включенном тумблере SA25 «Кратность полива 1». Контакты реле KV20 включены параллельно контактам реле KV19 и обеспечивают подключение блока БП к автомату при отпускании кнопки SB.
Одновременно с нажатием кнопки SB и подачей напряжения на схему от блока БДЗ срабатывает реле К VIZ, которое включает основной насос полива НП через промежуточное реле. Если пуск

Рис. 6.13. Принципиальная электрическая схема автомата полива УТ-12

Рис. 6.14. Временная диаграмма работы элементов схемы автомата УТ-12
насоса не произошел, то контакты реле давления воды SPI остались замкнутыми. В этом случае на элемент Д через контакты KV21 поступает сигнал «1», который через 1 мин при помощи кольцевого счетчика БДЗ отключает реле KV23 и подключает реле KV24. Реле KV24 подает команду на включение резервного насоса полива НП. Если в течение следующей минуты давление в системе полива не возрастет, то реле KV24 отключается, а реле KV25 включит звуковой сигнал НА и сигнальную лампу HL «Авария».
Насосы-дозаторы НД используют для подачи растворов минеральных удобрений. С включением насоса НП включается полив первой теплицы. Через контакты KV1 и включенный переключатель SA2 подается сигнал «1» (—24В) на вход элемента Д10 а с выхода элемента Д11 сигнал «1» поступает на элементы Д1 и Д12. На вход элемента Д1 подаются также сигналы с периодом 1 с от генератора импульсов БД1. Период следования этих сигналов увеличивается с помощью триггеров, выполненных на элементах Д2…Д7. В зависимости от положения переключателя SA1 «Время полива» на элемент Д12 поступают сигналы «1» с периодом 0,5, 1, 2, 4, 8 или 16 мин, которые затем через элементы Д12 и Д13 поступают на блок дешифрации БД2 (кольцевой счетчик). Кольцевой счетчик вызывает поочередное срабатывание реле KV1…KV12, которые обеспечивают последовательный полив 12 теплиц с интервалом, равным выбранному времени полива.
Если полив какого-то участка нс предусмотрен, то соответствующий тумблер из SA2…SA24 не включен. В этом случае при срабатывании соответствующего реле из KV1…KV12 на вход элемента Д10 «НЕ» поступает сигнал «0», а с его выхода сигнал «1» поступает на входы Д8уД9, реализующие логическую функцию «И». Так как на вход элемента Д8 поступают также импульсы с периодом 2 с от блока БД1, то через элементы Д9 на вход Д13, а затем на дешифратор БД2 сигнал «1» приходит через 2 с. Этот импульс вызывает переключение дешифратора БД2, и продолжительность прохода неполиваемого участка сокращается до 2 с.
После срабатывания реле KV12, обеспечивающего полив последнего, двенадцатого участка, отключается реле KV13 и включается реле KV14. Это обеспечивает запуск нового цикла полива тех же участков в той же последовательности.
Процесс повторяется до тех пор, пока не реализуется заданная тумблерами SA25…SA29 кратность полива. После этого реле KV20 отключается, прекращая подачу напряжения питания на схему автомата полива. Работа автомата полива прекращается.
Система автоматического управления концентрацией растворов минеральных удобрений (рис. 6.15) позволяет измерять концентрацию растворов с точностью до ± 10 % и управлять ею. Концентрированный раствор минеральных удобрений готовят в специальном бассейне Б, откуда насосам и-дозаторами НД его подают

Рис. 6.15. Принципиальная электрическая схема управления концентрацией растворов минеральных удобрений
через регулирующий клапан КР1 в поливную воду. Насосы НД включаются от реле KV22…KV24 аналогично включению поливных насосов ////(см. рис. 6.13, 6.14).
Концентрацию удобрений в поливной воде измеряют датчиком ДКУ кондуктометрического типа (по электропроводности раствора), в который встроен терморезистор, предназначенный для компенсации температурной погрешности. Датчик устанавливают в трубопровод за участком смешения концентрированного раствора и поливной воды. Его присоединяют через анализатор удобрений АУ к регулирующему прибору РП, который настраивают на двухпозиционное управление исполнительным механизмом ИМ1 при помощи реле KV1 «Концентрация больше», и KV2 «Концентрация меньше». Например, если концентрация минеральных удобрений больше заданной, то срабатывает реле KV1, которое включает исполнительный механизм на уменьшение пропуска клапаном КР1 концентрированного раствора. При этом загорается сигнальная лампа HL1. Если концентрация удобрений меньше заданной, то срабатывает реле KV2 и исполнительный механизм открывает регулирующий клапан КР1. При достижении концентрации заданного значения реле KV1 или KV2 отключает исполнительный механизм. Для улучшения качества двухпозиционного регулирования используют импульсный прерыватель, состоящий из реле KV3 и блока БД генератора импульсов с периодом 20 с.
Значение pH определяют методами физико-химического анализа. Из экспрессивных методов наиболее подходит электрометрический метод измерения pH, принцип действия которого основан на определении потенциалов на электродах, помещенных в исследуемый раствор. Такой электродный датчик измеряет концентрацию водородных ионов pH в растворе и выдает сигнал в виде гальванического напряжения. Датчик измеряет pH с точностью до 0,1. Для растений допускается отклонение до ±0,2 pH, а иногда и до ± (0,3…0,5) pH от оптимальных.
Схема управления значением pH раствора минеральных удобрений показана на рисунке 6.15.

Рис. 6.16. Принципиальная электрическая схема управления подкормкой диоксидом углерода, досвсчиванием растений и включением полива в заданное время
При отклонении pH раствора от заданного значения на выходе датчика ДрН изменяется гальваническое напряжение, которое усиливается усилителем У с большим входным сопротивлением. С усилителя сигнал поступает на исполнительный механизм ЯЛ/2, который изменяет степень открытия регулирующего клапана Кг2. Это приводит к изменению подачи из блока БК специального раствора, корректирующего значение pH раствора удобрений в бассейне Б. Мешалка М с электроприводом обеспечивает выравнивание концентрации минеральных удобрений и значений pH по всему объему раствора.
Для подкормки растений диоксидом углерода можно сжигать природный газ в специальных генераторах или подавать в теплицу дымовые газы из тепличных котельных, реже из специальных газовых баллонов, содержащих СО2. Широко применяемые генераторы Г-4,5 производят в час 4,5 м3 С02, который направляют в теплицу при отсутствии там рабочих и при закрытых форточках.
Схема управления содержанием С02 работает по заданной временной программе с 24-часовым циклом. На вход 12-позиционно- го кольцевого счетчика БД2 (рис. 6.16) от блока генератора БД1 поступают импульсы с периодом 2 ч. Эти импульсы поочередно включают реле KV15. Реле KV15 управляет газогенераторами С02 в теплицах через промежуточные реле.
После отключения реле KV12, завершающего управление подачей С02 в последнюю теплицу, срабатывает реле KV13. Контакты реле KV13 подают нулевой потенциал ко всем триггерам блока БД7, возвращающего их в исходное состояние. Затем вновь подключается реле KV1, и начинается новый суточный цикл.
Триггеры можно перевести в исходное состояние, нажав кнопку 57? «Установка времени 12 ч». Номера теплиц, в которые необходимо подавать С02, набирают тумблерами SA39…SA50, а длительность подачи С02 устанавливают тумблерами SA1…SA12, причем первый включенный тумблер определяет начало подкормки, а
последующий — окончание. При помощи тумблера SA25 вручную управляют содержанием СО2 без ограничения по времени.
Досвсчиванием управляют при помощи реле KV16 в рассадных теплицах.
В теплице устанавливают светильники двух типов: ОТ-400Е и ОТ-400И с ртутной лампой ДРЛФ мощностью 400 Вт. Лампа, подвешенная на высоте 1,5 м, равномерно освещает площадь до 4 м2.
Схема автоматического управления досвечиванием работает аналогично схеме управления содержанием СОг- Контакты реле KV16 подключают фазу Л через тумблеры SA52…SA63 «Участок досвечивания» к распределительным щиткам РУ управления досвечиванием. Длительность досвечивания определяют в часах. Она равна двойному числу одновременно включенных тумблеров SA13…SA24 «3осъечъънъ»у а начало и конец досвечивания определяются первым и последним из включенных тумблеров. Для ручного управления досвечиванием предусмотрены тумблеры на распределительных щитках управления РУ.
Реле KVl…KV12n KV14совместно с блоком дешифрации БДЗи тумблерами SA64; SA2…SA38 осуществляют «Включение полива в заданное время» через реле KV18 (см. рис. 6.13). Номер участка, который необходимо полить, выставляют тумблерами SA27…SA38 (см. рис. 6.16). Блок БДЗ обеспечивает выдержку времени во включенном состоянии до 5 с, после которой реле KV14 обесточивается и сигнал «Пуск» в цепь а управления автоматом полива не поступает.
Реферат
Данная пояснительная записка содержит: 38 страниц, 12 рисунков, 2
таблицы, 7 источников по перечню ссылок, 1 приложение.
Целью данного курсового проекта
является практическое применение знаний, полученных в различных областях науки
в пределах таких курсов, как «Микропроцессоры и микроконтроллеры»,
«Компьютерная электроника», «Проектирование специализированных
микропроцессорных систем», а также «Программирование» для
реализации полученного технического задания.
Результат выполнения задания — реализация устройства, предназначенного для
измерения проводимости почвы на микроконтроллере AVR АТMEGA 8А. Принцип измерения основан на
явлении резистивного изменения сопротивления
почвы. Устройство
измеряет сопротивление почвы, индицирует ее состояние и сигнализирует о
чрезмерном пересыхании почвы.
В пояснительной записке представлены этапы перехода от словесного
описания поставленной задачи до конкретной реализации в виде функционирующего
устройства. Выполнены все этапы проектирования от технического задания до
реализации проекта в выбранной элементной базе (микроконтроллер ATMEL ATmega8A,) с использованием сред WinAVR и CodeVisionAVR.
МИКРОКОНТРОЛЛЕР, НАГРУЗКА, ЭЛЕКТРОМАГНИТНОЕ РЕЛЕ, ДЕЛИТЕЛЬ НАПРЯЖЕНИЯ,
УПРАВЛЕНИЕ, ВСТРОЕННЫЙ, LCD-ДИСПЛЕЙ.
Содержание
Введение
1. Техническое задание
1.1 Назначение устройства
1.2 Требования к реализации
1.3 Входные/выходные параметры
2. Техническое предложение
2.1 Элементная база
.2 Алгоритм реализации
3. Эскизный проект
3.1 Описание основных модулей микроконтроллера
3.1.1 Интерфейс SPI
.1.2 LCD — экран
3.1.3 Интерфейс USART
3.1.4 Интерфейс I2C
. Технический
проект
.1 Разработка проекта.
.2 Описание интерфейса.
.3 Реализация основных функций
. Рабочий проект
5.1 Компиляция проекта
.2 Прошивка
.3 Физическое тестирование
Выводы
Перечень ссылок
Приложение А. Исходный код основной программы модуля управления
Введение
Задачей данного курсового проекта было практическое применение знаний,
полученных ранее в различных областях науки, для реализации конкретного
технического задания.
Результатом выполнения такого задания являлась реализация устройства, предназначенного
для измерения проводимости почвы на микроконтроллере AVR АТMEGA 8А. Принцип измерения основан на
явлении резистивного изменения сопротивления
почвы.
В пояснительной записке представлены этапы перехода от словесного
описания поставленной задачи до конкретной реализации в виде функционирующего
устройства. Выполнены все этапы проектирования от технического задания до
реализации проекта в выбранной элементной базе. Также выполнено
программирование микроконтроллера AVR АТMEGA 8А.
Микроконтроллеры семейства AVR за
сравнительно короткое время завоевали заслуженную популярность во всём
мире.Corporation — изготовитель полупроводниковых электронных компонентов.
Компания основана в 1984 году. Один из лидеров производства микроконтроллеров
(MCS-51, ARM, AVR, AVR32).
Продукция Atmel широко применяется в компьютерных сетях, промышленности,
медицине, связи, автомобилях, космосе, военных устройствах, а также кредитных
картах.
Микроконтроллеры AVR имеют гарвардскую архитектуру (программа и данные
находятся в разных адресных пространствах) и систему команд, близкую к
идеологии RISC. Процессор AVR имеет 32 8-битных регистра общего назначения,
объединённых в регистровый файл. В отличие от «идеального» RISC,
регистры не абсолютно ортогональны
AVR, пожалуй, одно из самых интересных направлений, развиваемых
корпорацией Atmel. Они представляют собой мощный инструмент для создания
современных высокопроизводительных и экономичных многоцелевых контроллеров.
На настоящий момент соотношение «цена — производительность —
энергопотребление» для AVR является одним из лучших на мировом рынке
8-разрядных микроконтроллеров. Объемы продаж AVR в мире удваиваются ежегодно. В
геометрической прогрессии растет число сторонних фирм, разрабатывающих и
выпускающих разнообразные программные и аппаратные средства поддержки
разработок для них.
Система команд микроконтроллеров AVR весьма развита и насчитывает в
различных моделях от 90 до 133 различных инструкций. Большинство команд занимает
только 1 ячейку памяти (16 бит). Большинство команд выполняется за 1 такт
машинного цикла.
Семейства микроконтроллеров AVR, представленных на рынке: tinyAVR (ограниченный набор периферийных
устройств, минимальное число линий ввода-вывода и количество памяти), megaAVR
(число линий ввода-вывода 23-86, аппаратный умножитель, расширенная система
команд и периферийных устройств)
Области применения AVR многогранны. Для семейства «tiny» — это
интеллектуальные автомобильные датчики различного назначения, игрушки, игровые
приставки, материнские платы персональных компьютеров, контроллеры защиты
доступа в мобильных телефонах, зарядные устройства, детекторы дыма и пламени,
бытовая техника, разнообразные инфракрасные пульты дистанционного управления.
Для семейства «classic» — это модемы различных типов,
современные зарядные устройства, изделия класса Smart Cards и устройства чтения
для них, спутниковые навигационные системы для определения местоположения
автомобилей на трассе, сложная бытовая техника, пульты дистанционного
управления, сетевые карты, материнские платы компьютеров, сотовые телефоны
нового поколения а также различные и разнообразные промышленные системы
контроля и управления.
Для «mega» AVR — это аналоговые (NMT, ETACS, AMPS) и цифровые
(GSM, CDMA) мобильные телефоны, принтеры и ключевые контроллеры для них,
контроллеры аппаратов факсимильной связи и ксероксов, контроллеры современных
дисковых накопителей, CD-ROM и т. д.
Из этого семейства для реализации данного проекта наиболее подходит
микроконтроллер AVR ATmega8A, т.к. он имеет достаточное количество линий ввода-вывода,
необходимую периферию и довольно низкое энергопотребление.
Микроконтроллер семейства mega — Atmega 8А — маломощный 8-разрядный КМОП
микроконтроллер, основанный на расширенной AVR RISC-архитектуре. За счет
выполнения большинства инструкций за один машинный цикл Atmega 8А достигает
производительности 1 млн. операций в секунду, что позволяет проектировщикам
систем оптимизировать соотношение энергопотребления и быстродействия.
Высокая производительность, наличие развитой подсистемы ввода/вывода и
широкого спектра встроенных периферийных устройств позволяют отнести микроконтроллеры
AVR АТMEGA 8А к классу наиболее функциональных микроконтроллеров для встроенных
систем управления.
Для разработки программной части проекта была использована среда
CodeVisionAVR. Это интегрированная среда разработки программного обеспечения для
микроконтроллеров семейства Atmel AVR.
CodeVisionAVR включает в себя следующие компоненты: компилятор ассемблера
и Си-подобного языка для AVR, генератор начального кода программы, позволяющего
произвести инициализацию периферийных устройств, модуль взаимодействия с
программатором и редактор исходного кода с подсветкой синтаксиса.
Для компиляции исходного кода и прошивки в конечное устройство был
использован программный комплекс WinAVR — набор опенсорсных инструментов для
разработки программного обеспечения для микроконтроллеров Atmel AVR для
платформы Windows. В комплект входит компилятор GNU GCC для языков
программирования C и C .
1. Техническое задание
Техническое задание (ТЗ) — исходный документ на проектирование
технического объекта, который устанавливает основное назначение
разрабатываемого объекта, его технические и тактико-технические характеристики,
показатели качества и технико-экономические требования, предписание по
выполнению необходимых стадий создания документации, а также специальные требования.
Техническое задание обычно объемный документ, в котором на естественном языке
описана словесная модель проектируемой системы. Несмотря на строгость и
точность формулировок ТЗ не дает однозначного описания объекта проектирования и
не позволяет непосредственно переходить от описания функционирования системы к
ее техническому воплощению.
1.1 Назначение устройства
Необходимо аппаратно реализовать устройство, предназначенное для измерения проводимости
почвы на базе микроконтроллера AVR АТMEGA 8А.
Устройство должно измерять сопротивление почвы, индицировать ее состояние
и сигнализировать о чрезмерном пересыхании почвы. Должна осуществляться
автоматическая подача воды для полива в зависимости от состояния грунта.
Основными моментами работы являются:
·
реализация
алгоритмов вычисления проводимости земляного грунта;
·
реализация
измерительной части;
·
реализация
сигнализирования о необходимости полива почвы;
·
реализация
автоматического полива почвы;
·
реализация обмена
данными с персональным компьютером по протоколу UART;
·
тестирование и
оптимизация программного продукта;
·
исследование
возможностей микроконтроллера.
1.2 Требования к реализации
Сроки проектирования определяются сроками выполнения курсового проекта,
включая разработку документации. Проект считается законченным, если разработан
рабочий блок управления, изготовлены модули управления нагрузкой, написана
работоспособная программа и результат соответствует техническому заданию.
Основные требования к проектированию: использование доступной и дешевой
элементной базы, написание прошивки для микроконтроллера на языке
программирования C/C либо ассемблер, использование
тестового подхода к проверке исправности модели устройства. Способ проверки —
физическое тестирование основных функций устройства.
.3 Входные/выходные параметры
Входные и выходные параметры (табл.1.1) определяются из задания.
Таблица 1.1 — Входные/выходные параметры
Входы | Разрядность | |
Значение проводимости почвы | Используется в качестве | 8 бит |
Принимаемые данные с порта | Получение команды на полив | 8 бит |
Посылка информации на порт | Передача текущего значения | 8 бит |
Основные требования к проектированию: описание моделей с помощью языков
программирования типа С/C
или ассемблер.
Способ проверки: пошаговое тестирование основных этапов программы вплоть
до физической реализации.
Произведение проверок работоспособности устройства, проверка правильности
измерения проводимости и индикации ее на дисплее.
Проверка корректности выполнения автоматического полива почвы.
2. Техническое предложение
Техническое предложение является частью предварительного проектирования.
Оно разрабатывается с целью выявления дополнительных или уточненных требований
к изделию, которые не могли быть указаны в техническом задании, и это
целесообразно сделать на основе предварительной конструкторской проработки и
анализа различных вариантов изделия.
При этом:
1) принимается решение об использовании микроконтроллера фирмы Atmel ATmega8A, как
наиболее экономичного в плане энергосбережения и ресурсозатрат в рамках данного
проекта;
1) в качестве измерительной части было
решено использовать резистивный делитель, в одном плече которого стоит
уникальный датчик измерения проводимости;
2) для индикации состояния почвы был
выбран двухстрочный знакогенерирующий жидкокристаллический дисплей WH1602;
3) для автоматического полива почвы
будет использован насос от стеклоомывателя легкового автомобиля;
4) для управления насосом будет
использовано реле постоянного напряжения;
5) оптимизация алгоритма программы для
устройства будет проводиться на этапе программирования микроконтроллера.
.1 Элементная база
Ядром устройства измерения проводимости почвы был выбран микроконтроллер
фирмы ATMEL — ATmega8A.
Функциональная схема микроконтроллера ATmega8A приведена на рисунке 2.1.
Технические характеристики:
— 8-разрядный высокопроизводительный AVR микроконтроллер с малым
потреблением;
прогрессивная RISC архитектура;
приближающаяся к 16 MIPS (при тактовой частоте 16 МГц)
производительность;
энергонезависимая память программ и данных;
— 8 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash);
— 1 Кбайт встроенной SRAM;
— программируемая блокировка, обеспечивающая защиту программных средств
пользователя;
— два 8-разрядных таймера/счетчика и один 16-разрядный таймер/счетчик с
отдельным предварительным делителем, один с режимом сравнения;
три канала PWM;
8-канальный аналого-цифровой преобразователь (в корпусах TQFP и MLF);
программируемый последовательный USART;
встроенный калиброванный RC-генератор;
пять режимов пониженного потребления: Idle, Power-save, Power-down,
Standby и снижения шумов ADC;
23программируемые линии ввода/вывода.
Ядро AVR сочетает богатый набор инструкций с 32 универсальными рабочими
регистрами. Все 32 регистра непосредственно подключены к арифметико-логическому
устройству (АЛУ), который позволяет указать два различных регистра в одной
инструкции и выполнить ее за один цикл.
Данная архитектура обладает большей
эффективностью кода за счет достижения производительности в 10 раз выше по
сравнению с обычными CISC-микроконтроллерами (рис 2.2).А поддерживается полным
набором программных и аппаратных средств для проектирования, в т.ч.:
С-компиляторы, макроассемблеры, программные отладчики/симуляторы,
внутрисистемные эмуляторы и оценочные наборы.
В целях достижения максимальной производительности и параллелизма у
AVR-микроконтроллеров используется Гарвардская архитектура с раздельными
памятью и шинами программ и данных.
Команды в памяти программ выполняются с одноуровневой конвейеризацией. В
процессе выполнения одной инструкции следующая предварительно считывается из
памяти программ.
Данная концепция позволяет выполнять одну инструкцию за один машинный
цикл.
Память программ представляет собой внутрисистемно программируемую
флэш-память.
Регистровый файл с быстрым доступом содержит 32 x 8-разрядных рабочих
регистров общего назначения с однотактовым циклом доступа. Благодаря этому
достигнута однотактность работы арифметико-логического устройства (АЛУ).
При обычной работе АЛУ сначала из регистрового файла загружается два
операнда, затем выполняется операция, а после результат отправляется обратно в
регистровый файл и все это происходит за один машинный цикл.
Шесть регистров из 32 могут использоваться как три 16-разрядных регистра
косвенного адреса для эффективной адресации в пределах памяти данных. Один из
этих указателей адреса может также использоваться как указатель адреса для
доступа к таблице преобразования во флэш-памяти программ. Данные 16-разрядные
регистры называются X-регистр, Y-регистр и Z-регистр и описываются далее в этом
разделе.
почва орошение адаптация микроконтроллер
Рисунок 2.1 — Функциональная схема микроконтроллера
ATmega8A
АЛУ поддерживает арифметические и логические операции между регистрами, а
также между константой и регистром. Кроме того, АЛУ поддерживает действия с
одним регистром.
После выполнения арифметической операции регистр статуса обновляется для
отображения результата выполнения операции.
Для ветвления программы поддерживаются инструкции условных и безусловных
переходов и вызовов процедур, позволяющих непосредственно адресоваться в
пределах адресного пространства.
Большинство инструкций представляют собой одно 16-разрядное слово. Каждый
адрес памяти программ содержит 16- или 32-разрядную инструкцию.
Флэш-память программ разделена на две секции: секция программы начальной
загрузки и секция прикладной программы.
Обе секции имеют раздельные биты защиты от записи и чтения/записи.
Инструкция SPM (запись в секцию прикладной программы) должна
использоваться только внутри секции программы начальной загрузки.
Внутрисистемно программируемая флэш-память программ содержит 128 кбайт
внутренней внутрисистемно перепрограммируемой флэш-памяти для хранения
программы.
Поскольку все AVR-инструкции являются 16 или 32-разрядными, то
флэш-память организована как 64 кбайт16. Для программной защиты
флэш-память программ разделена на два сектора: сектор программы начальной
загрузки и сектор прикладной программы.
Рисунок 2.2 — Карта памяти программ
Высокопроизводительное АЛУ AVR-микроконтроллеров работает в
непосредственной связи со всеми 32 универсальными рабочими регистрами. АЛУ
позволяет выполнить за один машинный цикл операцию между двумя регистрами или
между регистром и константой.
Операции АЛУ могут быть классифицированы на три группы: арифметические,
логические и битовые. Кроме того, архитектурой ATmega8A поддерживаются операции умножения со знаком и без знака и
дробным форматом. В соответствии с гарвардской архитектурой память
AVR-микроконтроллера разделена на две области: память данных и память программ.
В настоящее время в микропроцессорных системах для отображения широко
используют жидкокристаллические индикаторы (ЖКИ). Условно все ЖКИ можно
разделить на две категории: символьные, или знакосинтезирующие, и графические.
Графические индикаторы представляют собой матрицу из m строк и n
столбцов, на пересечении которых находятся пиксели. Пиксель представляет собой
неделимый объект прямоугольной или круглой формы, обладающий определённым
цветом; пиксель — наименьшая единица растрового изображения.
Если на определенный столбец и строку подать электрический сигнал, то
пиксель на их пересечении изменит свой цвет. Подавая группу сигналов на столбцы
и строки можно формировать по точкам произвольное графическое изображение. Так
работает графический ЖКИ.
В символьном ЖКИ матрица пикселей разбита на подматрицы, каждая
подматрица предназначена для формирования одного символа: цифры, буквы или
знака препинания. Как правило, для формирования одного символа используют матрицу
из восьми строк и пяти столбцов. Символьные индикаторы бывают одно-, двух- и
четырехстрочными.
Для упрощения взаимодействия микропроцессорной системы и ЖКИ используют
специализированную микросхему — контроллер (драйвер) ЖКИ. Он управляет
пикселями жидкокристаллического дисплея и интерфейсной частью индикатора.
Обычно такой контроллер входит в состав индикатора.
Внешний вид ЖКИ показан на рисунке ниже.
Рисунок 2.3 — Внешний вид символьного ЖК индикатора
В целом жидкокристаллический индикатор представляет собой печатную плату,
на которой смонтирован сам дисплей, контроллер и необходимые дополнительные
электронные компоненты.
Для отображения различной информации о состоянии почвы и устройства был
выбран символьный дисплей WH1602.
Данный жидкокристаллический индикатор, предназначенный для отображения
буквенно — цифровой информации, русский /английский, с разрешением 16 символов x 2 строки фирмы Winstar пользуется большой популярностью у
радиолюбителей и применяется в различных устройствах. Он показал себя как
исключительно надежный и может быть рекомендован к применению в данной работе.
Технические характеристики дисплея:
Символьный тип дисплея;
Напряжение питания постоянное, 3…5 В;
Символов в строке 16 штук;
Две строки для отображения информации;
— Набор символов русский/латинский.
Для реализации управления двигателем постоянного тока насоса
стеклоомывателя было выбрано электромеханическое реле.
Работа электромагнитных реле основана на использовании электромагнитных
сил, возникающих в металлическом сердечнике при прохождении тока по виткам его
катушки.
Детали реле монтируются на основании и закрываются крышкой. Над
сердечником электромагнита установлен подвижный якорь (пластина) с одним или
несколькими контактами. Напротив них находятся соответствующие парные
неподвижные контакты.
В исходном положении якорь удерживается пружиной. При подаче управляющего
сигнала электромагнит притягивает якорь, преодолевая её усилие, и замыкает или
размыкает контакты в зависимости от конструкции реле.
После отключения управляющего напряжения пружина возвращает якорь в
исходное положение. В некоторые модели, могут быть встроены электронные
элементы. Это резистор, подключенный к обмотке катушки для более чёткого
срабатывания реле, или (и) конденсатор, параллельный контактам для снижения
искрения и помех.
Реле до сих пор очень широко применяются в бытовой электротехнике, в
особенности для автоматического включения и выключения электродвигателей
(пускозащитные реле), а также в электрических схемах автомобилей. Например,
пускозащитное реле обязательно имеется в бытовом холодильнике, а также в
стиральных машинах.
В этих устройствах реле намного надёжнее электроники, так как оно
устойчиво к броску тока при запуске электродвигателя и, особенно, к сильному
броску напряжения при его отключении.
Схема, по которой реле подключается к микроконтроллеру приведена на
рисунке ниже.
Рисунок 2.4 — Схема подключения реле к микроконтроллеру
Детальнее по схеме. Диод используется для гашения электромагнитного
импульса обратного по напряжению, возникающего при включении и выключении реле.
Резистор R в связке с
конденсатором C2 используются для уменьшения тока
питания якоря реле во включенном состоянии. Конденсатор C2 используется для всплеска
напряжения, необходимого для срабатывания реле.
При открытии транзистора конденсатор С2 еще не заряжен, а значит в момент
его заряда он представляет собой почти короткое замыкание и ток через катушку
идет без ограничений. Этого хватает для срыва якоря реле в момент срабатывания.
Потом конденсатор заряжается и превращается в обрыв. Реле питается через
резистор, ограничивающий ток.
Резистор и конденсатор следует подбирать таким образом, чтобы реле четко
срабатывало. При размыкании реле энергия магнитного поля стравливается через
диод, только вот при этом в катушке продолжает течь ток, а значит она
продолжает держать якорь. Увеличивается время между снятием сигнала управления
и отпаданием контактной группы.
Необходимо сделать препятствие протеканию тока, но такое, чтобы не вывело
из строя транзистор. С этой целью используется стабилитрон с напряжением
открывания ниже предельного напряжения пробоя транзистора.
В итоге, обеспечивается бросок напряжения на катушке, но он
контролируемый и ниже критической точки пробоя. Тем самым значительно снижается
задержка на выключение.
Для организации связи блока управления с персональным компьютером был
выбран преобразователь интерфейсов USB в UART под названием CP2102 от производителя Silicon Labs.
Данный чип для своей работы требует минимум внешней обвязки, имеет
встроенный кварцевый генератор, позволяет организовать своё питание от линий
кабеля USB (что позволяет не расходовать лишнюю
электроэнергию, когда соединение с компьютером не требуется).
Устройством измерения проводимости почвы будет выступать делитель
напряжения на двух резисторах, одним из которых является уникальный датчик, реализованный
на двух металлических стержнях с антикоррозионным покрытием, который помещен в
грунт.
Делитель напряжения — устройство, в котором входное и выходное напряжение
связаны коэффициентом передачи.
В качестве делителя напряжения применяются регулируемые сопротивления
(потенциометры), которые можно представить как два участка цепи, называемые
плечами. Сумма напряжений этих двух участков цепи, равна входному напряжению.
Плечо между нулевым потенциалом и средней точкой называют нижним, а другое
плечо — верхним.
Различают линейные и нелинейные делители напряжения. В линейных выходное
напряжение изменяется по линейному закону в зависимости от входного. Такие
делители используются для задания потенциалов и рабочих напряжений в различных
точках электронных схем.
В нелинейных делителях выходное напряжение зависит от коэффициента
нелинейно. Нелинейные делители напряжения применяются в функциональных
потенциометрах. Сопротивление может быть как активным, так и реактивным.
Рассмотрим простейший резистивный делитель напряжения, который
представляет собой два последовательно включённых резистора, подключённых к
источнику напряжения . Поскольку резисторы соединены последовательно, то ток
через них будет одинаков в соответствии с Первым законом Кирхгофа.
Падение напряжения (уменьшение потенциала при перемещении заряда от одной
точки цепи до другой её точки) на каждом резисторе согласно закону Ома будет
пропорционально сопротивлению (ток, как было описано ранее, одинаков) и равно U = I * R.
Формула, связывающая выходное (U2) и входное
(U) напряжение делителя имеет вид
(2.1)
Схема
резистивного делителя напряжения приведена на рисунке 2.5.
Рисунок
2.5 — Схема резистивного делителя напряжения
Следует
обратить внимание, что сопротивление нагрузки делителя напряжения должно быть
много больше собственного сопротивления делителя, таким, чтобы в расчетах этим
сопротивлением, включенным параллельно R2, можно было
бы пренебречь.
Для
выбора конкретных значений сопротивлений на практике, как правило, достаточно
следовать следующему алгоритму.
.
Необходимо определить величину тока делителя, работающего при отключенной
нагрузке. Этот ток должен быть значительно больше тока (обычно принимают
превышение в 10 раз по величине), потребляемого нагрузкой, но, однако, при этом
указанный ток не должен создавать излишнюю нагрузку на источник напряжения U.
.
Исходя из величины тока, по закону Ома определяют значение суммарного
сопротивления R = R1 R2. Остается только взять конкретные значения
сопротивлений из стандартного ряда, отношение величин которых близко требуемому
отношению напряжений, а сумма величин близка расчетной.
.
При расчете реального делителя необходимо учитывать температурный коэффициент
сопротивления, допуски на номинальные значения сопротивлений, диапазон
изменения входного напряжения и возможные изменения свойств нагрузки делителя,
а также максимальную рассеиваемую мощность резисторов.
Максимальная
рассеиваемая мощность резисторов должна превышать выделяемую на них мощность P = I2 * (R1 R2), где I — ток источника при отключенной нагрузке. В этом
случае через резисторы течет максимально возможный ток.
Делитель
напряжения имеет важное значение в схемотехнике. В качестве реактивного
делителя напряжения, как пример, можно привести простейший электрический
фильтр, а в качестве нелинейного делителя -параметрический стабилизатор
напряжения.
Делители
напряжения использовались как электромеханическое запоминающее устройство в
АВМ. В таких устройствах запоминаемым величинам соответствуют углы поворота
реостатов. Подобные устройства могут неограниченное время хранить информацию.
2.2 Алгоритм
реализации
Для программирования микроконтроллера ATmega8A
можно использовать языки программирования С и ассемблер.
Алгоритм работы данного устройства представлен на рисунке 2.6.
Рисунок 2.6 — Алгоритм функционирования устройства
3. Эскизный проект
Эскизный проект представляет собой этап составления спецификаций
отдельных блоков, разработку подробной структурно-блочной схемы устройства.
На рисунке 3.1 изображена функциональная модель устройства
Рисунок 3.1 — Функциональная модель устройства
3.1 Описание основных модулей микроконтроллера
3.1.1 Интерфейс SPI
SPI (Serial Peripheral Interface — последовательный периферийный
интерфейс) — последовательный синхронный стандарт передачи данных в режиме
полного дуплекса, разработанный компанией Motorola для обеспечения простого и
недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют
четырёхпроводным интерфейсом.
В отличие от стандартного последовательного порта, SPI является
синхронным интерфейсом, в котором любая передача синхронизирована с общим
тактовым сигналом, генерируемым ведущим устройством (процессором).
Принимающая (ведомая) периферия синхронизирует получение битовой
последовательности с тактовым сигналом. К одному последовательному периферийному
интерфейсу ведущего устройства-микросхемы может присоединяться несколько
микросхем.
Ведущее устройство выбирает ведомое для передачи, активируя сигнал
«выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не
выбранная процессором, не принимает участия в передаче по SPI.
3.1.2 LCD — экран
Модуль TFTDisplay формирует все необходимые сигналы
для передачи команд и данных чипу драйвера ЖКИ.
Управление можно осуществлять как по последовательному интерфейсу SPI, так и по параллельной шине,
используя четыре однобитные линии для управления и координации передачи данных
и восемь бит для передачи данных.
Можно передавать данные о цвете кодируя его в восьми-, шестнадцати- и
восемнадцатиричной форме.
Драйвер дисплея содержит в себе управляющие регистры (Index Register, Control Register и Address Register), регистры настроек и память для
хранения изображения GRAM.
Вывод изображения на дисплей осуществляется путем выполнения следующих
процедур:
2) В Index Register записывается адрес команды равный
0022h и далее передаются данные,
соответствующие информации о каждом отображаемом пикселе в выбранном формате
отображения.
3) Запись в выделенное окно ведется
циклически, отмена передачи данных для вывода на дисплей осуществляется путем
записи в IR адреса любой другой команды.
3.1.3 Интерфейс USART
Интерфейс USART (адресуемый
универсальный синхронно-асинхронный приемо-передатчик) — весьма гибкий модуль
последовательной связи.
USART
поддерживает полнодуплексную асинхронную или синхронную передачу данных. USART также может работать в режиме
«ведущий SPI» для работы с шиной SPI.
Передача данных выполняется посылками. Формат посылки может быть
адаптирован под различные стандарты.
USART
поддерживает буферизацию данных в обоих направлениях, что обеспечивает
непрерывность передачи данных без каких-либо задержек между посылками.
По завершению приема и передачи, могут генерироваться прерывания по
отдельным векторам. Это позволяет полностью управлять передачей данных по
прерываниям.
Ошибки в посылке и переполнение буфера обнаруживаются аппаратно, о чем
сигнализируют отдельные флаги статуса.
При необходимости, также можно использоваться функции генерации и
проверки паритета (четность или нечетность).
В микроконтроллерах AVR
для работы с UART используются несколько регистров:
) UDR — регистр хранения
принятых-отправляемых данных;
) регистры UCSRA, UCSRB, UCSRC — управляющие и статусные регистры;
) UBRRL и UBRRH — регистры для задания скорости передачи данных.
3.1.4
Интерфейс I2C
I2C — двухпроводная последовательная
шина данных для связи интегральных схем, разработанная фирмой Philips в начале
1980-х как простая шина внутренней связи для создания управляющей электроники.
Она используется для соединения низкоскоростных периферийных компонентов с
материнской платой, встраиваемыми системами и мобильными телефонами.
I²C использует две двунаправленных линии,
подтянутые к напряжению питания и управляемые через открытый коллектор или
открытый сток — последовательная линия данных (SDA) и последовательная линия
тактирования (SCL). Стандартные напряжения 5 В или 3,3 В, однако допускаются
и другие.
Основной режим работы — 100 кбит/с; 10 кбит/с в режиме работы с пониженной
скоростью. Заметим, что стандарт допускает приостановку тактирования для работы
с медленными устройствами.
В AVR Atmega8А для работы с шиной TWI используются регистры:
) TWDR — сдвиговый регистр данных и адреса;
) TWBR — регистр задания частоты работы
шины;
) TWAR — адресный регистр;
) TWSR — регистр состояния;
) TWCR — управляющий регистр.
4. Технический проект
На этапе технического проекта происходит описание и моделирование функций
языка программирования, выбор организации проекта и принципов построения
моделей и т.д.
Основными моментами данного этапа являются:
— составление и описание блоков на языке программирования;
определяются межблоковые связи;
описание констант и переменных;
отладка проекта (пошаговое тестирование основных блоков программы в
процессе написания и исправление некорректной работы).
.1 Разработка проекта
При описании моделей на языках программирования большое внимание следует
уделять конструкциям языка. Так нужно использовать конструкции, которые
воспринимаются программой программирования микроконтроллера, а также
оптимизировать конструкции для достижения наименьших аппаратных затрат.
Рисунок 4.1 — Связи файлов
4.2 Описание интерфейса
Принципы построения модели включает методологию написания языкового кода.
Спецификация составляется на всю программу, состоящую из основных блоков
в соответствие со следующими этапами.
Необходимо выполнить анализ требуемых входных параметров и констант, а
также определить их тип и начальные значения.
Начальные значения выбираются в соответствие с описанием устройства.
Тип параметров — int
целочисленный тип. При этом по умолчанию используется модификатор типа
unsigned, который указывает, что переменная принимает неотрицательные значения.
Самый левый бит области памяти, выделяемой для хранения значения,
используется так же, как и все остальные биты области памяти — для
представления значения.
Таблица 4.1 — Описание интерфейса всей программы
Входы | Тип | Начальные значения | Описание |
sensorPin | int | A0 | Задание входного пина для |
ledPn | int | Y0 | Задание выходной ножки для |
Motor | int | 13 | Задание пина для управления |
sensorValue | int | 0 | Считанное значение |
Displey_g | int | 0 | Используется для вывода |
4.3 Реализация основных функций
При разработке проекта необходимо подключить заголовочные файлы:
. #include «mega8.h»
— для регистрации вводов-выводов для ATMEGA8;
. #include «spi.h»
— для вызова функций используемых в главном файле main.c.
. #include «eeprom.h»
— используется для подключения встроенной памяти ЭПСП микроконтроллера.
Ниже приведены примеры наиболее значащих для проекта функций:
Листинг 4.1 — Инициализация микроконтроллера
void setup()
{Serial.begin(9600);(ledPin, OUTPUT);(slaveSelectPin,
OUTPUT);.begin();}
Ниже приведенный участок кода отвечает за калибровку системы полива. Дело
в том, что при разных разновидностях грунта, меняется свойства ее проводимости.
Из этого следует тот факт, что система нуждается в калибровке перед
эксплуатацией.
Листинг 4.2 — Калибровка системы полива
addr =
addr 1;
if (addr == 512)= 0;
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
В системе предусмотрено каскадирование модулей контроля. Модули связанны
между собой по последовательной шине SPI.
Листинг
4.3 — Каскадирование модулей
контроля
// take the SS pin low to select the
chip:(slaveSelectPin,LOW);
// send in the address and value via
SPI:.transfer(address);.transfer(value);
// take the SS pin high to de-select the chip:
digitalWrite(slaveSelectPin,HIGH);
Фрагмент кода, приведенный ниже, отвечает за контроль влажности почвы.
Значение, считанное с АЦП, сверяется с значением из EEPROM, где хранятся
калибровочные данные. После чего принимается решение о поливе.
Листинг 4.4 — Контроль влажности почвы
if (sensorValue == EEPROM.read(address))
{(motor, 255);(100);(motor, 0);
Вся полученная информация передается в компьютер посредством шины RS-232.
В дальнейшем можно будет реализовать сбор данных на удаленном сервере
посредством LAN.
Листиннг 4.5 — Передача информации в компьютер
sensorValue = digitalRead(2);
Serial.println(sensorValue, DEC);(ledPin, LOW);
5. Рабочий проект
.1 Компиляция проекта
Данный проект реализован с помощью программы CodeVisionAVR.
Интегрированная среда CodeVisionAVR представляет собой кросс-компилятор
языка С ориентированный на семейство микроконтроллеров AVR и содержит:
графическую оболочку для управления ресурсами проекта; текстовый редактор
исходного модуля программы; кросс-компилятор; отладчик, программатор;
автоматический генератор программного кода; терминал для работы с
последовательным интерфейсом RS232C (USART).
Рисунок 5.1 — Окно студии CodeVisionAVR
.2 Прошивка
Прошивка микроконтроллера реализуется с помощью пользовательского интерфейса
среды программирования CodeVisionAVR.
Далее необходимо выполнить компиляцию проекта — создать исполняемый
программный модуль, пригодный для исполнения микроконтроллером. Для этого
необходимо нажать клавишу Shift F9.
При завершении этапа компиляции активизируется окно Information (см.
рисунок 5.2), содержащее информацию о скомпилированном проекте. Если компиляция
прошла успешно, то для записи программы в память микроконтроллера необходимо
нажать кнопку Program, расположенную в нижней части окна Information.
Выявленные в результате компиляции сообщения об ошибках отображаются в
левой части главного рабочего окна, где располагаются данные о ресурсах
проекта. При активизации сообщения об ошибке компилятор выводит подробные
сведения о локализации и возможных причинах ошибки.
Рисунок 5.2 — Окно отображения информации о результатах компиляции
проекта
В некоторых случаях для проверки работоспособности загруженной программы
необходимо выполнить сброс микроконтроллера (Reset Chip) или удалить
программу из памяти (Erase Chip). На рисунке 5.3 изображено окно
отображения настроек программатора.
Рисунок 5.3 — Окно отображения настроек программатора
5.3 Физическое тестирование
На данном этапе производится проверка разработанного устройства на
корректность работы и его надежность.
Для тестирования был использован обычный комнатный горшок с грунтом и
растением. В данную почву был вставлен датчик и подключен к измеряющей плате.
Устройство было запитано от стабилизированного источника постоянного
напряжения 5 В.
В ходе тестирования устройства были поданы различные тесты, которые были
пройдены.
При включении устройство показало текущее состояние грунта и
приблизительное сопротивление почвы, измеряемое в сименсах.
При добавлении воды в грунт устройство индицировало изменение
проводимости грунта и сигнализировало о его достаточной увлажненности.
Далее датчик устройства был установлен в более сухой грунт. Устройство
сигнализировало о недостаточном поливе почвы и включило насос на подачу воды.
По достижении заданной проводимости, насос был выключен. Внешний вид
устройства показан на рисунке 5.4.
Рисунок 5.4 — Внешний вид устройства при работе
Была произведена проверка на надежность устройства, а именно на
равномерность подачи воды, срабатывание аварийного отключения насоса и
превышении заданной нормы подачи жидкости.
В результате всех проверок устройство показало прилежную
работоспособность и признано годным к эксплуатации.
Выводы
Данный курсовой проект позволил более детально ознакомится с
микроконтроллерами типа AVR
компании ATMEL. В процессе разработки проекта были
получены навыки проектирования, реализации и внедрение проекта в реальную
модель. Также были получены навыки работы по сопряжению компьютера и
устройства, на основе микроконтроллера.
В результате была разработана микропроцессорная система интеллектуального
орошения почвы с возможностью адаптации к различным видам грунта посредством
пользовательской калибровки.
Система сама принимает решение о поливе почвы, самостоятельно производит
полив и ведет протокол.
В системе не было реализовано сброса данных на сервер, но заложен
функциональный блок стыковки с компьютерной системой посредством
последовательной шины с протоколом RS 232.
Данное устройство является как и непосредственной частью системы
«Умный дом», набирающей популярность в современном мире, так и может
найти свое применение в аграрной и малой цветоводческой промышленности.
Перечень ссылок
1. Методические указания к лабораторным работам по курсу
«Микроконтроллеры во встроенных системах управления для студентов всех специальностей»
/ Составители Аврунин О.Г., Крук О.Я., Семенец В.В. — ХНУРЭ, 2005. — 105 с.
2. Методические указания к комплексному курсовому проекту /
Составители: В.Г. Лобода, А.С. Шкиль, Л.К. Штец — Харьков, ХНУРЭ, 2001- 8 с.
3. Голубцов М.С., Кириченкова А.В. Микроконтроллеры AVR: от
простого к сложному.- М.: СОЛОН-Пресс, 2004. — 304 с.
. Баранов В.Н. Применение микроконтроллеров AVR: схемы,
алгоритмы, программы.- М.: Издательский дом «Додэка-XXI», 2004. — 288
с.
5. В.А. Гулиус, В.Г. Лобода, В.П. Степанов, В.Ю. Цуканов.
«Средства автоматизированного проектирования специализированных
микропроцессорных устройств»: Учебное пособие — Харьков: ХНУРЭ, 2001. —
228 с.
6. Белова Н.В., Коряк С.Ф., Лобода В.Г.. «Основы
построения ориентированных ЭВМ и систем». Под общ. ред. В.Г. Лободы. —
Харьков: ООО «Компания СМИТ», 2007. — 148 с.
Приложение А. Исходный код основной программы модуля управления
Листинг кода программы
#include <EEPROM.h>
#include <SPI.h>sensorPin = A0; // select the input pin
for the potentiometerledPin, motor = 13; // select the pin for the
LEDsensorValue = 0; // variable to store the value coming from the
sensorsetup()
{.begin(9600);(ledPin, OUTPUT);(slaveSelectPin,
OUTPUT);.begin();
}loop() {val = analogRead(0) / 4;
// write the value to the appropriate byte of the EEPROM.
// these values will remain there when the board is
// turned off..write(addr, val);
// advance to the next address. there are 512 bytes in
// the EEPROM, so go back to 0 when we hit 512.= addr
1;(addr == 512)= 0;
// read the value from the sensor:= analogRead(sensorPin);
// turn the ledPin on= digitalRead(2);.println(sensorValue,
DEC);(ledPin, LOW);(sensorValue == EEPROM.read(address))
{(motor, 255);(100);(motor, 0);
}(slaveSelectPin,LOW);
// send in the address and value via
SPI:.transfer(address);.transfer(value);
// take the SS pin high to de-select the
chip:(slaveSelectPin,HIGH);
// stop the program for for <sensorValue> milliseconds:
delay(sensorValue);
