В жизни каждого человека существует множество забот требующих выполнения однообразной и неинтересной работы и к счатью именно такая работа (однообразная и неинтересная) обычно больше всего подходит для того чтобы её автоматизировать. В этой статье рассмотрим устройство которое можно применить для автоматизации например полива растений, кормёжки домашних животных и возможно ещё чего либо подобного.
Рассмотрим схему
Кварцевый резонатор для генератора тактовых импульсов микроконтроллера имеет основную резонансную частоту 4МГц. Используя таймер микроконтроллера при данной частоте можно добиться точного счёта времени как в часах. Для этого предделитель таймера устанавливаем так чтобы он делил тактовую частоту на 16, начальное значение таймера (с которого он считает до переполнения) сделаем равным 5 т.е. таймер будет отсчитывать 250 импульсов идущих с частотой в 16 раз меньшей частоты тактирования микроконтроллера которая, в данном случае, равна 1МГц т.к. резонансная частота кварцевого резонатора 4МГц + микроконтроллер делит её на 4. В основном цикле после 250 переполнений таймера будет отсчитана ровно одна секунда! (1000000/(16*250*250)=1) А дальше имея такой секундный счётчик не трудно посчитать минуты и часы. Микросхема CD4543 - декодер семисегментного индикатора и + ещё драйвер семисегментного индикатора т.к. серия 45 данных микросхем, по сравнению с серией 40, имеет больший выходной ток и он достаточен для того чтобы семисегментный индикатор светился достаточно ярко. Для того чтобы не ставить 4 таких микросхемы, выводов микроконтроллера хватило для обслуживания системы вывода цифр и не было большого потребления тока можно сделать динамическую индикацию, при этом цифры будут светиться в 4 раза слабее чем если бы индикация была статической но т.к. вывод цифр - это не основная функция данного устройства то можно пожертвовать яркостью ради других достоинств описанных выше. Т.к. выводов у данного микроконтроллера не много то для переключения индикаторов будет использоваться десятичный счётчик CD4022 которым можно управлять через 2 его вывода CLOCK и RESET, декодер займёт 4 вывода + драйвер шагового двигателя займёт 4 итого остаётся 3 вывода для кнопок и переключателя через которые будет происходить настройка системы т.е. установка текущего времени и установка времени при котором срабатывает шаговый двигатель открывающий клапан для полива. Для управления маленьким шаговым двигателем лучше использовать полношаговый режим и использованием 2х фоз на каждом шаге т.к. такой способ даст самый большой момент что позволит двигателю вытянуть большую нагрузку. Драйвер двигателя представляет собой 4 эмиттерных повторителя, т.к. двигатель маломощный то их будет достаточно самих по себе.
Рассмотрим программу:
Программа написана на языке C в среде "mikroC PRO for PIC" -это удобная сред с полезным калькулятором и т.д. весь проект можно скачать по ссылке https://yadi.sk/d/MGmnThXb37MdSn. Записать hex файл в микроконтроллер можно например через программу программатор ICprog также понадобится com-порт и простейший jdm программатор. В начале программы инициализируются переменные и константы, после идёт функция interrapt которая вызывается при переполнении таймера, далее идёт основная функция main с которой начинается выполнение программы в ней происходит инициализация таймера (установка предделителя и начального значения) разрешение прерывания от таймера TMR0 а также конфигурация портов ввода вывода (в чём очень помогает встроенный в среду калькулятор). Далее идёт основной цикл внутри которого определяется нажатие кнопок, считаются минуты и часы, происходит управление шаговым двигателем при совпадении текущего времени и времени для полива а также выводятся цифры на семисегментные индикаторы.
КАРТА БЛОГА (содержание)
Рассмотрим схему
Рисунок 1 - Система автополива комнатных растений
Кварцевый резонатор для генератора тактовых импульсов микроконтроллера имеет основную резонансную частоту 4МГц. Используя таймер микроконтроллера при данной частоте можно добиться точного счёта времени как в часах. Для этого предделитель таймера устанавливаем так чтобы он делил тактовую частоту на 16, начальное значение таймера (с которого он считает до переполнения) сделаем равным 5 т.е. таймер будет отсчитывать 250 импульсов идущих с частотой в 16 раз меньшей частоты тактирования микроконтроллера которая, в данном случае, равна 1МГц т.к. резонансная частота кварцевого резонатора 4МГц + микроконтроллер делит её на 4. В основном цикле после 250 переполнений таймера будет отсчитана ровно одна секунда! (1000000/(16*250*250)=1) А дальше имея такой секундный счётчик не трудно посчитать минуты и часы. Микросхема CD4543 - декодер семисегментного индикатора и + ещё драйвер семисегментного индикатора т.к. серия 45 данных микросхем, по сравнению с серией 40, имеет больший выходной ток и он достаточен для того чтобы семисегментный индикатор светился достаточно ярко. Для того чтобы не ставить 4 таких микросхемы, выводов микроконтроллера хватило для обслуживания системы вывода цифр и не было большого потребления тока можно сделать динамическую индикацию, при этом цифры будут светиться в 4 раза слабее чем если бы индикация была статической но т.к. вывод цифр - это не основная функция данного устройства то можно пожертвовать яркостью ради других достоинств описанных выше. Т.к. выводов у данного микроконтроллера не много то для переключения индикаторов будет использоваться десятичный счётчик CD4022 которым можно управлять через 2 его вывода CLOCK и RESET, декодер займёт 4 вывода + драйвер шагового двигателя займёт 4 итого остаётся 3 вывода для кнопок и переключателя через которые будет происходить настройка системы т.е. установка текущего времени и установка времени при котором срабатывает шаговый двигатель открывающий клапан для полива. Для управления маленьким шаговым двигателем лучше использовать полношаговый режим и использованием 2х фоз на каждом шаге т.к. такой способ даст самый большой момент что позволит двигателю вытянуть большую нагрузку. Драйвер двигателя представляет собой 4 эмиттерных повторителя, т.к. двигатель маломощный то их будет достаточно самих по себе.
Рассмотрим программу:
Программа написана на языке C в среде "mikroC PRO for PIC" -это удобная сред с полезным калькулятором и т.д. весь проект можно скачать по ссылке https://yadi.sk/d/MGmnThXb37MdSn. Записать hex файл в микроконтроллер можно например через программу программатор ICprog также понадобится com-порт и простейший jdm программатор. В начале программы инициализируются переменные и константы, после идёт функция interrapt которая вызывается при переполнении таймера, далее идёт основная функция main с которой начинается выполнение программы в ней происходит инициализация таймера (установка предделителя и начального значения) разрешение прерывания от таймера TMR0 а также конфигурация портов ввода вывода (в чём очень помогает встроенный в среду калькулятор). Далее идёт основной цикл внутри которого определяется нажатие кнопок, считаются минуты и часы, происходит управление шаговым двигателем при совпадении текущего времени и времени для полива а также выводятся цифры на семисегментные индикаторы.
КАРТА БЛОГА (содержание)