|
|
|
Световые эффекты на PIC16F84 Автор: ZPS Добавлено: 28.04.2004
Схема управляет 8 светодиодами и контролируется 4 кнопками.
PIC16F84 - программируемый микроконтроллер и для работы схемы понадобится залить в него прошивку. Указания как это сделать будут даны ниже.
Этот микроконтроллер был выбран только потому, что у меня их много и его не жалко пускать на эксперименты. Можно использовать более мощный и практически аналогичный по структуре контроллер - PIC16F628, для этого возможно понадобится внести небольшие изменения в код программ. Как это сделать описано в документации на сайте производителя.
Теперь к делу.
Схема:
Я собирал схему с нуля, но можно использовать макетку описаную в статье "Макетка для PIC16x84".
В схеме в качестве тактового генератора используется RC цепочка из резистора 4.7к и конденсатора 22p.
Светодиоды подключаются к выводам 0-7 порта B (PORTB) через резисторы в 440ом.
Кнопки подключены к выводам порта A (PORTA). Выводы RA0-RA2 и RA4 соединены через кнопки с землей и через резисторы в 1к (у меня 1.5к) с плюсом питания. Резисторы нужны чтобы на входе порта был log1. При нажатии на кнопку соответственно будет log0. Это используется в программе.
На вывод RA3 повешен индикаторный светодиод через резистор.
Прошивка:
Исходник прошивки пока не предлагаю - слишком сырая, да и учиться по ней не стоит, тк. написана она на языке C начинающим программистом МК. Тоесть мной. Программа занимает примерно 97% памяти контроллера и содержит 9 эффектов. Для 9 простых эффектов 97% это слишком много, если код оптимизировать, то он будет раза в 2 меньше. Но пока это не важно, главное что оно работает.
Скомпилированый фаил для заливки в контроллер лежит тут.
Для заливки его в контроллер я рекомендую использовать JDM программатор и программу IC-Prog.
NB! прошивка не содержит конфигурации контроллера - в программаторе нужно будет вручную выбрать тип генератора (для этой схемы - RC, для макетки - XT) и отключить WDT. В icprog это делается справа от окна с кодом программы.
Управление схемой:
RA0 - Stop
RA1 - Start
RA2 - Speed
RA4 - Next
Кнопка Start запускает выбранный эффект.
Кнопка Next - переход к следующему эффекту. Если нажать кнопку и не отпускать, загорится сигнальный диод. Теперь если не отпуская кнопки нажать кнопку STOP, будет выбран первый эффект, а если нажать кнопку START, схема перейдет в режим кругового повторения эффектов.
Кнопка Stop останавливает эффект и отключает круговое повторение.
Кнопка Speed - при удерживании этой кнопки загорается сигнальный диод и диоды на portB. Кол-во горящих светодиодов соответствует выбранной скорости. Скорость можно регулировать кнопками Start и Stop (не отпуская speed).
Индикация:
При нажатии на кнопку Next происходит переход к следующему эффекту и пока кнопка остается нажатой, диоды на PORTB показывают номер эффекта в двоичной системе.
При нажатии на кнопку Speed на диодах PORTB высвечивается столбик (1-8) диодов в зависимости от текущей скорости.
Сигнальный диод (RA3) загорается тогда, когда активируются дополнительные функции кнопок Stop и Start, т.е. когда удерживается кнопка Speed или кнопка Next.
Для тех, кто собирает на макетке:
Вот "схема" подключения деталей.
При программировании контроллера нужно будет выставить тип генератора - XT(кварц).
Возможны проблемы со скоростью, тк. в программе контроллера всё расчитано на RC цепочку, а кварц отличается по частоте и контроллер скорее всего будет работать быстрее => меньше паузы и больше скорость переключения диодов.
Удачи в экспериментах!
Добавлено 2 мая 2004 :
Radist* проверил схему на макетке и прислал фотографии.
Добавлено 18 мая 2004 :
Radist* прислал видео демонстрирующее часть функций схемы.
Качать здесь (1,71мБ - DivX 4.12). |
|
Комментарии посетителей:
|
Radist* Сегодня опробую =))) Зыыы...
|
Radist* Собрал, запрограммил - всё работает! Завтра или даже уже сегодня пришлю фотки, а то их-то какраз к этой статье и не хватает! ...да надобы какую-нибудь книжку хорошую поискать или статью в и-нете про писание собственноручной прошивки. А то какраз этого мне и не достаёт =(
|
ZPS Radist* я хотел сделать фотки, но с фотиком не вышло пока...
Книжку по пикам я нормальную не нашел - справочники только, а хочется что-то типа самоучителя...
Я могу дать пример прошивки простейший, но не могу ручаться, что он будет правильным... В результате может получиться так, что человек, начав изучение по моей прошивке, в самом начале получит неверные знания и ему придется переучиваться.
|
Radist* Вот я тоже ищю такую книжку, хотя на польском уже нашёл, но программирование ПИКов по нему изучать - это просто ужас!
|
Guest_mega_w mogu na Angliiskom podkinut'..
|
Guest_Kar@mba А кварц на макетке какой стоит? Если 4МГЦ - тогда действительно управление скоростью будет проблематично работать. На макетке для некритичных по скорости приложениях парем ставить кварц от часов - 32.768 кГц вроде. При такой скорости генерации нет необходимости делать долгие задержки между циклами, да и поэкономичней это намного. П.С: При использовании RC-цепи есть возможность управлять скоростью генерации ИЗ ПРОГРАММЫ...
|
microbios "..да надобы какую-нибудь книжку хорошую поискать или статью в и-нете про писание собственноручной прошивки. А то какраз этого мне и не достаёт =("
http://pic16f84.narod.ru/nach.htm - может быть это вам подойдет?
|
Mihail Рекомендую посмотреть эту ссылку http://www.nscalp.narod.ru/ Готовая прога, эфекты и т.п. Собрал - работает как часы.
|
ZPS Mihail отличие моего устройства в том, что оно автономное и работает без компа.
|
Guest_Radist* SORRY!!! Я тут всех запутал, не прочитав внимательно мануал к прошивке! ОФИЦИАЛЬНО ЗАЯВЛЯЮ, ЧТО ДАННЫЙ ДЕВАЙС РАБОТАЕТ ПОЛНОЦЕННО, КАК С RC-ЦЕПОЧКОЙ, ТАК И С КВАРЦЕМ (У МЕНЯ СТОИТ 4MHz). СКОРОСТЬ МЕНЯЕТСЯ И В ПЕРВОМ, И ВО ВТОРОМ СЛУЧАЕ (НЕОДНОКРАТНО ПРОВЕРЕНО МНОЮ) =) еще раз сорри...
|
|
Остальные комментарии(7) можно прочитать на форуме
|
|
|
|
|
|