Бегущие огни (ch-bo-36)

Views: 2438


Проект на PIC-микроконтроллере PIC16F648A. Количество каналов 36. Для индикации используется подключение по матрице 6х6. Расположение светодиодов в одну линию. Все эффекты написаны для возможности увеличения количества светодиодов. Рекомендуется увеличивать кратно 36. При использовании в схема транзисторных ключей типа IRF7104 и IRF7101 (или аналогичных) количество светодиодов было 540 шт. Больше просто не было необходимости.


Схема бегущих огней.

ch-catcatcat-bo-01

Питание осуществляется от источника постоянного тока 5 вольт. Мощность выбирается от количества светодиодов, для питания 36 светодиодов достаточно тока в 300 мА. Для подключения светодиодных линеек предназначены соединители con3/4. Резисторы R14-R25 это плата за использования только одного плеча в управлении светодиодами, при высокой скорости которая используются для индикации, существенно сказывается емкость перехода светодиодов, поэтому эти емкости необходимо чем то разряжать когда транзисторный ключ закрыт.

Резисторы в затворах полевых транзисторов (установленные последовательно) можно выкинуть, только нужно оставить резисторы R12-R13. Они необходимы для выполнения функций внутрисхемного программирования (если это необходимо). Для задания тактовой частоты используется керамический резонатор на 20 мГ. Хотя можно использовать кварцевый резонатор или любой с частотой поближе к 20 мГ.

Диод шоттки предназначен для защиты PIC-контроллера от случайной подачи напряжения обратной полярности. Больше никаких нюансов в схеме нет.


Схема одной матрицы из 36 светодиодов и подключение к контроллеру бегущих огне ch-bo-36.

ch-catcatcat-bo-02

Для создания периметра их бегущих огней необходимо изготовить необходимое количество таких матриц и все они подключаются параллельно. Сопротивление резистов выбирается в зависимости от установленных типов светодиодов. Необходимо учитывать, что светодиоды работают в импульсном режиме с периодом 1:6. Вы можете выбирать ток согласно паспорта для светодиода для импульсного режима с коэффициентом 0,7.

Программа построена таким образом, что яркость светодиода можно менять в диапазоне 127 шагов, это достаточно для создания элементарных световых эффектом. Все эффекты написаны в динамическом режиме когда один эффект сменяет другой на максимальной скорости.


Вид на собраную плату контроллера бегущих огней

ch-catcatcat-bo-03

ch-catcatcat-bo-04

резисторы на нижней стороне это R14-R25.


Перечень элементов необходимых для сборки. 

Наименование  Типоразмер  Тип (замена)  Количество  Примечание 
 Микроконтроллер SOIC18 PIC16F648A 1
Конденсатор электролитический 1000,0х6,3в 1
Конденсатор электролитический 22,0х6,3в 1
Конденсатор керамический 0,1х50в 3
 Керамический резонатор 20.0 мГц 1 можно заменить на кварцевый
+ два конденсатора на 15 пф 
Резистор 0805 1,0к 12
 Резистор 0805 100,0к 12
Транзисторы SOIC8 IRF7341 3
 Транзисторы SOIC8 IRF7342 3
 Диод шоттки SMA 10MQ040N 1

Программа написана на ассемблере. В основную программу входят 55 эффектов, в том числе 2-ва – звездное небо, выбор эффектов через RAND, режим бегущей тени.

Основные моменты:

Световые эффекты задаются последовательно и их количество и последовательность может  быть изменена по своему желанию. Это можно сделать в этом месте:

			org		0xD60
;====================== выбор подпрограммы для огней
vypro
				movfw	chet_pro
				movwf	temp_c
				bcf		STATUS,C		; умножить значение регстра на 2
				rlf		temp_c,f
;======================
				movlw	HIGH adr_str1	; PCLATH настройка регистра страницы для 
				movwf	PCLATH			; правильного выполнения команды "addwf	PCL,F"
;======================
				movfw	temp_c			; загрузка адреса выбора программы 
adr_str1		addwf	PCL,F			;
pro1			call 	bo_left			; 0
			return
pro2			call 	bo_rait			; 1
			return
pro3			call 	bo_r_l			; 2 бегущий влево-вправо
			return
pro4			call 	bo_nvc			; 3 бегущие навстречу
			return
pro5			call 	bo_vys			; 4
			return
pro6			call 	bo_vys2         ; 5
			return
pro7			call 	bo_sal       	; 6
			return
pro8			call 	bo_dvo			; 7
			return			
pro9			call 	bo_nak			; 8
			return
pro10			call 	bo_nak2			; 9
			return
pro11			call 	bo_nak3			; 10
			return
pro12			call 	bo_nak4			; 11
			return
pro13			call 	bo_kop			; 12 копьё
			return
pro14			call 	bo_nak5			; 13 выдвижение с низу
			return
pro15			call 	bo_nak6			; 14 выдвижение с верху
			return
pro16			call 	bo_nak7			; 15 два огня из центра с накоплением по краям, стирание с краев в центр
			return
pro17			call 	bo_ng			; 16 плавно - все плавно загораются и ганут
			return
pro18			call 	bo_ng1			; 17 "бросок"
			return
pro19			call 	stars			; 18 ветренное ночное небо
			return
pro20			call 	stars2			; 19 северное сияние
			return
pro21			call 	chet_bit		; 20 случайные 4 огня
			return
pro22			call 	chet_bit2		; 21 бегущие 4 огня
			return
pro23			call 	ccvety			;*22 цветы
			return
pro24			call 	dogdi			;*23 капли дождя
			return
pro25			call 	bo_left2		;*24
			return
pro26			call 	bo_left3		;*25
			return
pro27			call 	bo_nak8			;*26
			return
pro28			call 	bo_nak9F		; 27
			return
pro29			call 	dogdi2F			;*28
			return
pro30			call 	taxiF			; 29
			return 
pro31			call 	volnyF			; 30
			return 
pro32			call 	volny1F			; 31
			return 

;======================
				bsf		INVRT			; 1 -32
			goto	pro1
				bsf		INVRT			; 2 -33
			goto	pro2
				bsf		INVRT			; 3 -34
			goto	pro3
				bsf		INVRT			; 4 -35
			goto	pro4
				bsf		INVRT			; 5 -36
			goto	pro5
				bsf		INVRT	       	; 6 -37
			goto	pro6
				bsf		INVRT	       	; 7 -37
			goto	pro7
				bsf		INVRT			; 8 -39
			goto	pro8			
				bsf		INVRT			; 9 -40
			goto	pro9
				bsf		INVRT			; 10 -41
			goto	pro10
				bsf		INVRT			; 11 -42
			goto	pro11
				bsf		INVRT			; 12 -43
			goto	pro12
				bsf		INVRT			; 13 -44
			goto	pro13
				bsf		INVRT			; 14 -45
			goto	pro16
				bsf		INVRT			; 15 -46
			goto	pro19
				bsf		INVRT			; 16 -47
			goto	pro20
				bsf		INVRT			; 17 -48
			goto	pro21
				bsf		INVRT			; 18 -49
			goto	pro22
				bsf		INVRT			; 19 -50
			goto	pro23
				bsf		INVRT			; 20 -51
			goto	pro24
				bsf		INVRT			; 21 -52
			goto	pro25
				bsf		INVRT			; 22 -53
			goto	pro26
				bsf		INVRT			; 23 -54
			goto	pro27
				bsf		INVRT			; 24 -55
			goto	pro29
;=====================================================================================================

 


Видео проекта

  

В видео предоставлены вырезки от общего цикла работы программы, сам цикл приблизительно 45 минут.

Для радиолюбителей Днепропетровска, платы контроллера и светодиодные планки есть в наличии, стоимость платы контроллера 20 грн, планка 10 грн.

Корпус для платы контроллера, с вырезами под соединители

ch-catcatcat-bo-07


[box title=”Файлы для загрузки” color=”#521BDE”]Схема контроллера бегущих огней в формате pdf [wpdm_file id=125]Схема подключения светодиодов в pdf [wpdm_file id=126]Прошивка v15 [wpdm_file id=127]Программа ассемблер Language tool versions: MPASMWIN.exe v5.49, mplink.exe v4.47, mplib.exe v4.47 [wpdm_file id=128][/box]



Это может быть интересно


  • PIC18 – System ArbitrationPIC18 – System Arbitration
    Views: 572 Системный арбитр. Разрешает доступ к памяти между выборами уровнями системы (т.е. Main, Interrupt Service Routine) и выбором периферийных устройств (т.е. DMA и Scanner) на основе назначенных пользователем приоритетов. Каждый …
  • Проект с использованием MCC часть 14Проект с использованием MCC часть 14
    Views: 833 С выводом данных на дисплей мы справились (но могу сразу сказать библиотеку графики к этой статьи пришлось доработать, поэтому в этом проекте она обновлена). У нас на текущем …
  • Altium Designer first projectAltium Designer first project
    Views: 298 Эта статья подразумевает, что у вас установлен и настроен Altium Designer как описано в статье  Altium Designer my setup system and project structure.  Обратите внимание! Библиотека постоянно обновляется, …
  • LED драйвер TM1639LED драйвер TM1639
    Views: 2202 TМ1639 позволяет работать на матрицу 8*8 или 8 семисегметных индикаторов. Может работать как на индикаторы с общим катодом, но и есть возможность подключать общим анодом. Для управления драйвером …
  • Проект с использованием MCC часть 04Проект с использованием MCC часть 04
    Views: 1140 Теперь простого горения светиков нам не достаточно, заставим их мигать. Для начала используем первобытно простой способ, но достаточно простой. Используем функции delay, напрягаться откуда они берутся не будем, самое …
  • Часы-кухонный таймерЧасы-кухонный таймер
    Views: 4064 Каждая кухня должна иметь кухонный таймер, который позволяет напоминать хозяйке когда проходить определенный промежуток времени. Например, печем пирог, варим яйца… , чтобы не смотреть постоянно на часы, установим таймер и …
  • MPLAB® Code ConfiguratorMPLAB® Code Configurator
    Views: 1768 MPLAB ® Code конфигуратор (MCC) является свободно распространяемым плагином, это графическая среда программирования, которая генерирует бесшовный, легкий для понимания кода на Cи, чтобы вставить его в свой проект.
  • Оптосимистор и его применениеОптосимистор и его применение
    Views: 19612 Эрве Кадино “Цветомузыкальные установки” Ответ на вопрос – управление мощным тиристором или симистором, от терморегулятора. Статья в pdf[wpdm_file id=129 template=”link-template-calltoaction3.php”] Оптосимистор принадлежат к классу оптронов и обеспечивают очень хорошую …
  • Проект с использованием MCC часть 12-1Проект с использованием MCC часть 12-1
    Views: 955 В настоящее время без визуализации информации уже не интересно. Поэтому научимся выводить информацию на дисплей. Для это возьмет простенький OLED RET012864E/REX012864J я такой приобретал в фирме “Гамма-Украина”, описание можно …
  • Инфракрасный датчик движения, PIR-sensorИнфракрасный датчик движения, PIR-sensor
    Views: 3097 Домашняя автоматика предполагает наличие датчиков движения, которые способны контролировать движения человека. Самым простым и доступным устройством позволяющие контролировать изменения ИК-излучения, это ПИР-сенсоры. На текущий момент доступны не дорогие модели D203B, D204B, D205B. Все …



Поделись этим!

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

Продолжайте читать

НазадДалее