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


Проект на 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 грн.


[box title=»Файлы для загрузки» color=»#521BDE»]страница загрузки[/box]


 

 

 

 

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