Гирлянда на ATtiny2313 собирается очень просто. В этой простой статье мы с вами будет делать мини-гирлянду из 4 светодиодов.
Нажата ли ты, наша кнопочка, или отжата?», — именно таким вопросом мы задавались в прошлой статье. И в зависимости от состояния кнопки мы делали эффект из 4 светодиодов. В этой статье мы с вами разберем похожую ситуацию. Итак, погнали!
Помните китайскую гирлянду за 100 руб?
Нажимаем кнопочку и эффект моргания становится абсолютно другой 😉 Именно этим мы с вами и займемся в этой статье 😉
Мы не будем делать китайску гирлянду с N-ным количеством лампочек, а сделаем упрощенную схему такой гирлянды на МК AVR Tiny2313 и четырех светодиодах. С помощью кнопки мы будем менять эффект моргания.
Итак, наша задача буквально звучит так:
Создать гирлянду на МК AVR Tiny2313 из четырех светодиодов и одной кнопки с самовозвратом (кнопка, которую нажал и сама отжимается). Нажимаем один раз кнопку — появляется первый эффект моргания кнопки, нажал второй раз кнопку — появился второй эффект моргания и тд. Всего у нас будет семь эффектов. Условие такое, что пока светодиоды переливаются морганием, у нас МК не реагирует на кнопку. То есть пока не прошел эффект, нажатие на кнопку никак не отображается на эффекте. Эффект НЕ прерывается. Когда эффект закончится, только тогда МК будет обрабатывать нажатие на кнопку.
Задача вроде бы ясна. Для начала составим простенькую схемку в Proteus. Схемка будет выглядеть примерно как-то так (кликните для увеличения, откроется в новом окне):
Все? Нет не все! Теперь шьем наш МК HEX-файлом. А где его взять? Из Atmel Studio 6. Но чтобы его создать, нам потребуется для начала написать программу, по которой будет работать наш МК. Как все это сделать, смотрим в этой статье.
Ниже приведен текст с комментариями:
Обратите внимание также на строчку кода:
Вся эта билиберда при переключении кнопки носит название дребезг контактов и мешает разработчикам логических устройств. Дело в том, что эти хаотические импульсы МК может посчитать как за логическую единичку, так и за нолик. В настоящее время это недоразумение с помощью нехитрой строчки кода устранено.