Автомат управления поливом растений « схемопедия

Поводом написать программу для этого устройства послужило пожелание посетителей нашего сайта Радиодед. В статье «Кухонный таймер на микроконтроллере ATtiny13», наши уважаемые посетители интересовались схемой таймера для включения бытовых приборов раз в сутки или на какое-то время с заданным интервалом.

«Да и полив цветов, на время когда в отпуске. раз в сутки нужно включать насос 20 Вт на 5-60 сек.»
rostt, 17:40 10 августа 2010 г.

Для этих целей был разработан универсальный таймер, его принципиальная схема:

Если раз в сутки включается на интервал от 5 до 60 сек, то получается  замкнутый цикл по кругу? Включился на  5 сек, допустим, насос, потом пауза 24 часа, потом снова 5 сек, потом снова 24 часа. Получается нечто наподобие мультивибратора с большой скважностью, поэтому назовём это устройство «Таймер-мультивибратор»для полива  растений.

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

А интервал работы насоса будем программировать по своему усмотрению от 5 сек до 20 минут максимум (если набрать 255 раз). Хотя обычно на практике, как написано, требуется интервал 5-60 сек.

Порядок работы такой:
Включаем устройство, набираем нужный интервал  N-ное количество 5 секундных выдержек. Допустим надо набрать 60 сек, значит надо нажать кнопку «SET» и удерживать её в нажатом состоянии и ждать, считая 12 раз ( 5 сек  х   12 = 60 сек). Ровно столько раз таймер «пиликнет» баззером и одновременно мигнёт светодиодом HL2. После этого отпускаем кнопку, тут же таймер подтвердит набранное вами количество 5- ти минутных интервалов, как бы для проверки. Если ошиблись в наборе, можно перейти в исходное состояние, нажав кнопку «RESET».

Если всё набрано верно, следом  за озвучкой  начинает мигать  светодиод  HL1, это означает,  что теперь  настал момент,когда можно  занесли в энергонезависимую память микроконтроллера  EEPROM набранный нами интервал времени работы  поливочного  насоса. Для этого  следует  замкнуть перемычку  Jmp1 и оставить её в замкнутом положении.Светодиод HL1 продолжает мигать, далее  для запуска  нажимаем кнопку «SET» удерживаем её нажатой около секунды, отпускаем её и ВСЁ! Таймер ещё раз озвучит набранное количество  5 секундных интервалов, светодиод HL1 перейдёт  в режим индикации непрерывного цикла, будет  мигать 1 раз за секунду короткими импульсами (0.2 сек) со скважностью  5.

Начался непрерывный замкнутый цикл, сразу же включается реле К1 на время набранного нами интервала, после этого замыкаем перемычку джампера Jmp 2 и оставляем её в замкнутом положении. На этом процедура программирования  устройства с выбранным  нами, временным интервалом работы поливочного насоса закончена.

Если спустя время вы забыли какой интервал у вас запрограммирован в памяти микросхемы, достаточно нажать кнопку  «RESET», после отпускания, таймер уведомит звуковой индикацией, сколько раз набрано 5-ти  секундных интервалов. При этом сразу включится насос, этой операцией можно включать его вручную на выбранный интервал времени, не дожидаясь  окончания суток, как бы вмешаться в ручном режиме в автоматически заданный цикл временных интервалов работы устройства. Информация будет озвучиваться каждый раз при включении устройства, в момент старта с исходного положения.

Теперь даже если кратковременно пропадёт питание в сети, на протяжении суток и появится снова, то устройство сохранит  свои настройки и включится снова при появлении напряжения  и продолжит  работу  по замкнутому циклу.
Если требуется изменить настройки, надо снять перемычки Jmp 1, Jmp 2  и повторить процедуру описанную выше.

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

Сделать это можно так:
Занести  в память EEPROM  по адресу 00 число в  шестнадцатиричном  виде  (это множитель на сколько надо умножить 5 сек, чтобы получить желаемый интервал времени работы насоса). Допустим нам требуется интервал 30 секунд,(5х6=30). Значит надо занести число 6, в шестнадцатиричном виде это  число равно 0x06, а в ячейку  EEPROM  по адресу 01 внести (множитель) для  формирования  времени паузы, на сколько надо умножить 1 час. У нас сутки равны числу 24 в десятичной форме, следовательно переведя в 16-тиричную форму, будет соответствовать числу 18. После того, как запрограммировали чип, устанавливаете перемычки JP1 и JP2. Теперь устройство запрограммировано и готово к работе.

Программирование микроконтроллера:
Тактовая частота выбрана 128/8  =16 кГц, как выставить фьюзы при программировании, показано на картинке. Так же прилагается вариант печатной платы, ( в формате Sprint Layot 5) любезно предоставленной участником форума, Юрием и рабочая  прошивка  (poliv.hex) для заливки в микроконтроллер.

Так же прилагается модель в Протеусе,  где имитируется работа устройства. Прошивка для Proteus отдельная, называется «TIMER_PROTEUS.hex» отличается от рабочей лишь временем паузы которое равно там около 5 сек (чтобы не дожидаться пока пройдут сутки), остальное выставляется как в реальном устройстве.

Можно «поиграться»  сперва  с виртуальной моделью, чтобы понять работу устройства. Все вопросы и обсуждения по работе устройства пишите на форуме.

Скачать файлы проекта

Владимир Науменко, г.Калининград

Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

 

Автор Сообщение

Подскажите, на что можно заменить, ATtiny15 нет в продаже, а надо много поменять. Прошивку прилагаю. Считано Uniprof.

  Прошивка БП tiny15.rar  1,75 КБ  Скачано: 350 раз(а)


Прошивка тебе ничего не даст, ибо скомпилирована она под тиньку15… Искать контроллер надо по рукам, так как Атмель снял его с производства… Замену никак не сделать ибо нет у тебя исходников чтобо доработать и скомпилить под новый кристалл…


Your editor
Сообщения: 8037


Они наверное с производства сняты, кому уже нужен этот гемор, тини13а намного лучше.

pavel-pervomaysk, Павел, это уже больше похоже на совет на будущее…

pavel-pervomaysk, А при создании новых устройств – какие аналоги посоветуешь?

Rusion, Вот список теоретических аналогов — ATtiny12,13,15,25,45,85 а что выбрать подскажут бывалые.
Типа – 15 отпадает.
Your editor
Сообщения: 8037


Выбрать нада тини13. Тини 25 45 85 смысла брать нету, они стоят дороже чем мега8А, а по возможностям просто сосут рядом с ней, нада маленький корпус ?, возьмите мегу8а в корпусе MLF-32 размер 5 * 5 мм всего.

pavel-pervomaysk писал:
нада маленький корпус ?, возьмите мегу8а в корпусе MLF-32 размер 5 * 5 мм всего.

Паша, а ты пробовал купить мегу в таком корпусе? Её и под заказ то не везут в наши магазины…

Забанен

Сообщения: 2252


Дык в природе уже полно STM8.
За полтора доллара 32кБ флеши.

slav0n, Это не то кино для тех, кто пишет на асме для авр
Забанен

Сообщения: 2252


GarikBaza писал:
кино для тех, кто пишет на асме для авр

асм — мрак, нечеловеческий язык. Сплошные флаги, сравнения, переходы… брррр… Мазохизм, а не писание.
Писать надо на людском языке.


slav0n писал:
Писать надо на людском языке.

Правильно! На русском!

Забанен

Сообщения: 2252


Угу. примерно так
int x = y * z / abs(a -b);

А на асме ?…

Your editor
Сообщения: 8037


atmicandr писал:
Паша, а ты пробовал купить мегу в таком корпусе?

У меня 5 шт лежат, GarikBaza, мне высылал их.
slav0n, вот именно для этих целей и нужно 32КБ . Си не понимаю ваще …
Да и не делаю я такие проекты где нужно на Си писать.

Забанен

Сообщения: 2252


Ногами дергать, встроенную периферию контролировать, данные туда-суда совать — это понятно. А если математику?
Си просто придется волей-неволей изучать.
А то 32кБ на асме… Я даже не представляю себе сей титанический труд.
Your editor
Сообщения: 8037


32 нет, но 7 я писал

Микроконтроллер ATtiny13A

Микроконтроллеры / Для начинающих /

Микроконтроллер ATtiny13A — это 8-разрядный CMOS-микроконтроллер, в основе которого лежит архитектура AVR — улучшенная RISC-архитектура.

За счёт выполнения большинства инструкций за один такт, схема ATtiny13A достигает скорости выполнения инструкций 1 MIPS на MГц, что позволяет проектировщикам систем оптимизировать соотношение энергопотребления и быстродействия.

Микроконтроллер ATtiny13A-SSU производства компании Atmel — это один из самых простых и дешёвых микроконтроллеров, который на момент написания этой статьи стоит всего 38 рублей (то есть примерно 0,7$). Этот микроконтроллер принадлежит к семейству AVR и имеет соответствующую архитектуру.

Ядро AVR объединяет в себе большой набор инструкций с 32-мя регистрами общего назначения (РОН). Все 32 регистра напрямую связаны с арифметико-логическим устройством (АЛУ), что позволяет двум независимым регистрам быть доступными из одной команды, выполняемой за один такт. В итоге архитектура обладает большей эффективностью кода, за счёт чего достигается высокая производительность, которая в 10 раз выше, чем у обычных CISC-микроконтроллеров (об архитектуре CISC как-нибудь в другой раз).

Схема ATtiny13A предоставляет следующие возможности:

  • 1 КБ во внутрисистемной программируемой флэш-памяти (In-System Programmable Flash).
  • 64 байта EEPROM
  • 64 байта SRAM
  • 6 линий ввода-вывода общего назначения
  • 32 регистра общего назначения
  • Один 8-ми разрядный таймер/счётчик с режимами компаратора
  • Внутренние и внешние прерывания
  • 4-х канальный 10-разрядный аналого-цифровой преобразователь (АЦП)
  • Программируемый сторожевой таймер с внутренним генератором и тремя программно
  • выбираемыми режимами энергосбережения. В режиме ожидания процессор останавливается и находится в режиме ожидания до тех пор, пока системное прерывание SRAM, таймера/счётчика, АЦП или аналогового компаратора не продолжит работу. При переходе в режим энергосбережения сохраняется содержимое регистров и отключаются все функции микроконтроллера до тех пор, пока не произойдёт следующее прерывание или аппаратный сброс. Режим уменьшения шумов АЦП останавливает процессор и все модули ввода-вывода, кроме АЦП, чтобы как можно сильнее уменьшить шумы во время аналого-цифровых преобразований.

Микроконтроллер ATtiny13A разработан с использованием технологии энергонезависимой памяти высокой плотности Atmel. Внутренняя программная флэш-память может быть перепрограммирована через последовательный интерфейс SPI, с помощью обычного программатора энергонезависимой памяти или встроенного в микроконтроллер загрузочного кода, запускаемого ядром AVR.

ATtiny13A AVR поддерживает полный набор программных и аппаратных средств разработки, включая компиляторы Си, Макро Ассемблер, отладчики/симуляторы и оценочные комплекты (Evaluation kits).

Если вам уже очень хочется научиться программировать микроконтроллеры серии AVR, то могу посоветовать отличный видеокурс по этой теме.

Я же буду продолжать рассказывать (и очень подробно) об этом семействе микроконтроллеров в следующих статьях…

Микроконтроллеры для ЧАЙНИКОВ

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

Программирование контроллеров AVR AtTiny13 / 25

 

Материал собран по интернету, любой желающий может найти самостоятельно множество вариантов схем, плат, программ.

Я выбрал наиболее простой для наколенного исполнения способ и описываю его.

Для начала вам понадобится программа.

Я предлагаю использовать. PonyProg.

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

С этой версией у меня все зашилось. Я специально это проверял при подготовке статьи.

Теперь понадобится программатор

Я использовал так называемые <Пять проводов>.

Мой макет выглядит так.

 

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

 

 

Схема. У меня микросхема программируется, когда питание на нее идет от 13 ноги DRB-25M, но это не очень хорошо, поэтому питание предлагается брать на USB разъеме. Там гарантированные 5В.

 

Плата для лазерно-утюжного метода:

Вариант для печати лежит тут.

 

Сборка вот:

 

Для изготовления понадобятся 4 сверла, но можно обойтись и двумя диаметрами

1 и 3мм.

 

Как работать с ПО

 

Устанавливаем PonyProg.

Напомню, дистрибутив есть здесь.

 

После установки и запуска возникнет такое окно.

Далее программатор сообщит, что надо выполнить калибровку и установить тип адаптера.

 

 

Калибровка выполняется автоматически и там показывать нечего.

А вот так надо выставить тип адаптера.

 

 

Далее открываем HEX файл.

 

 

Жмем кнопку Write Program Memory (пятая слева кнопка)

И радуемся, что микросхема удачно зашилась.

 

 

Жмем кнопку Configuration and security bits (Восьмая слева)

Программа считает текущие параметры.

На всякий случай жмем Read.

Выставляем биты как указано и жмем Write.

Некоторые мои проекты требуют использования 1 вывода процессора, для его использования необходимо зашить бит RSTDISBL, что PonyProg делать не умеет, тут придется воспользоваться CodeVision. Но учите, сделать это можно только один раз. После прошивания этого бита, больше таким программатором стереть/прошить этот контроллер не удастся.

В проектах, где это необходимо, я отмечаю об этом специально.

 

 

Теперь микросхема зашита и готова к работе. Удачи.

 

Да, также через такой адаптер можно шить из CodeVision AVR.

Открывем программу

Настраиваем тип программатора

Открываем проект

Настраиваем, если необходимо

Компиллируем

Выставляем настройки программирования и программируем, нажав Programm All

Про EEPROM отвечаем нет

Про RSTDISBL отвечаем да, и после этого чип больше не перепрограммируется этим программатором!

 

Мои микроконтроллерные поделки:

Пульт дистанционного управления для HT6806

Пульт дистанционного управления для Hyundai H-CMD4009

Доработка датчика дождя

Удлинитель сигналов поворота

Доработка водительского стеклоподъемника

Реализация ДХО (DRL) дальний в пол накала

 

Все.

Удачи!

Назад

  Поиск по сайту:

 

По базе:  

 
  Примеры применения микроконтроллеров AVR в устройствах управления 3-фазными бесколлекторными электродвигателями постоянного тока

Отличительные особенности:

  • Высококачественный низкопотребляющий 8- битный AVR микроконтроллер
  • Передовая RISC архитектура
        — 120 команд, большинство которых выполняется за один тактовый цикл
        — 32 8 битных рабочих регистра общего применения
        — Полностью статическая архитектура
  • Энергонезависимая память программ и данных
        — 1 КБ внутрисистемно программируемой Flash памяти программы, способной выдержать 10 000 циклов записи/стирания
        — 64 байта внутрисистемно программируемой EEPROM памяти данных, способной выдержать 100 000 циклов записи/стирания
        — 64 байта встроенной SRAM памяти (статическое ОЗУ)
        — Программируемая защита от считывания самопрограммируемой Flash памяти программы и EEPROM памяти данных
  • Характеристики периферии
        — Один 8- разрядный таймер/счетчик с отдельным предделителем и два ШИМ канала
        — 4 канальный 10 битный АЦП со встроенным ИОН
        — Программируемый сторожевой таймер со встроенным генератором
        — Встроенный аналоговый компаратор
  • Специальные характеристики микроконтроллера
        — Встроенный отладчик debugWIRE
        — Внутрисистемное программирование через SPI порт
        — Внешние и внутренние источники прерывания
        — Режимы пониженного потребления Idle, ADC Noise Reduction и Power-down
        — Усовершенствованная схема формирования сброса при включении
        — Программируемая схема обнаружения кратковременных пропаданий питания
        — Встроенный откалиброванный генератор
  • Порты ввода — вывода и корпусное исполнение
        — 8 выводные PDIP и SOIC корпуса: 6 программируемых линий ввода-вывода
  • Диапазон напряжения питания
        — от 1.8 до 5.5 В
  • Индустриальный рабочий температурный диапазон
  • Потребление
        — Активный режим:
          290 мкА при частоте 1 МГц и напряжении питания 1.8 В
        — Режим пониженного потребления
          0.5 мкА при напряжении питания 1.8 В

Блок- схема ATtiny13:

Расположение выводов ATtiny13:

Общее описание:

ATATtiny13 — низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой.

Выполняя команды за один цикл, ATtiny13 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.

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

ATtiny13 имеет следующие характеристики: 1 КБ внутрисистемно программируемой Flash память программы, 64 байтную EEPROM память данных, 64 байтное SRAM (статическое ОЗУ), 6 линий ввода — вывода общего применения, 32 рабочих регистра общего назначения, 8 битный таймер/счетчик со схемой сравнения, внутренние и внешние источники прерывания, 4 канальный 10 битный АЦП, программируемый сторожевой таймер со встроенным генератором и три программно инициализируемых режима пониженного потребления. В режиме Idle останавливается ядро, но ОЗУ, таймер/счетчик, АЦП, аналоговый компаратор и система прерываний продолжают функционировать. В режиме Power-down регистры сохраняют свое значение, но генератор останавливается, блокируя все функции прибора до следующего прерывания или аппаратного сброса. В режиме ADC Noise Reduction останавливается вычислительное ядро и все модули ввода-вывода за исключением АЦП, что позволяет минимизировать шумы при выполнении преобразования.

Прибор изготовлен по высокоплотной энергонезависимой технологии изготовления памяти компании Atmel. Встроенная ISP Flash позволяет перепрограммировать память программы в системе через последовательный SPI интерфейс программой-загрузчиком, выполняемой в AVR ядре, или обычным программатором энергонезависимой памяти.

ATtiny13 поддерживается различными программными средствами и интегрированными средствами разработки, такими как компиляторы C, макроассемблеры, программные отладчики/симуляторы, внутрисхемные эмуляторы и ознакомительные наборы.

Добавить комментарий

Закрыть меню