100 эффектов RGB

Что бы еще такого сделать?... Предлагайте! Обсудим все!!!
Ответить
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Итак, у мя появилась идея: каждый желающий положит сюда по 1 эффекту на RGB светодиоде, а потом некто все эти эффеты соединит в 1 большую (ну, или не очень) программу!
Естественно, при желании можно давать и более 1 эффекта. Правила такие:
Эффекты не должны повторяться!
Эффекты должны быть пронумерованы!
Все эффекты должны выполняться 1RGB светодиодом!
К каждому эффекты должен прикладываться фрагмент кода!
Ну, вроде всё. Ждёмс. . . :beer:
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Реклама
s64
Потрогал лапой паяльник
Сообщения: 321
Зарегистрирован: Пн окт 18, 2010 21:18:21

Сообщение s64 »

ну так и начал бы.
№1. моргнуть зелёным.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Не, ну так несчитается! Если моргать, то это моргнуть каждым цветом, раза по 2!
А в качестве МК предлагаю АТтини13 так как их у мя много! :))) :))) :)))
З.Ы. Подключение светодиода предлагаю такое -- РВ0 красный, РВ1 синий, а РВ2 зелёный. Тактовая частота 4МГц. Питание -- 4,5В. Вроде всё!
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Так что №1 -- перемигивание!

Код: Выделить всё

1<<PINB0
delay_ms(700)
0<<PINB0
1<<PINB1
delay_ms(700)
0<<PINB1
1<<PINB2
delay_ms(700)
0<<PINB2
1<<PINB0
delay_ms(700)
0<<PINB0
1<<PINB1
delay_ms(700)
0<<PINB1
1<<PINB2
delay_ms(700)
0<<PINB2
Как-то так я освоил программирование. . .
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
s64
Потрогал лапой паяльник
Сообщения: 321
Зарегистрирован: Пн окт 18, 2010 21:18:21

Сообщение s64 »

а в цикл закрутить ни как? :facepalm:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Чё его крутить то?! К нему приписать остальное, а потом закрутить уже!
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1292
Зарегистрирован: Сб апр 21, 2007 10:40:53

Сообщение Maks »

Я бы сделал то потухнет, то погаснет.
Думаю хорошо бы смотрелось. Правда программу писать я пас. :cry:
Контактная информация:
Мудрый кот
Аватара пользователя
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Сообщение Flasher »

Рекомендации к теме:
Для начала необходимо создать платформу, описать примитивы, обеспечить ШИМ. Потом предлагать писать код и говорить о чем-то конкретном.
Лучше обеспечить эффекты для нескольких светодиодов- востребованнее будет.
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Да мне вот просто интересно стало -- что можно с ОДНИМ светодиодом сделать?! Пусть даже и РГБ. Это типа фонарика ночника выйдет, можно например попугая заворожить. . .
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

ИМХО единственный приемлемый спецэффект на одном RGB светодиоде это плавное уменьшение/увеличение одного или нескольких компонент цвета. Примерно как я делал тут (только там было 2 канала). А всякие мигалки/мерцалки просто раздражают.
Мудрый кот
Аватара пользователя
Сообщения: 1815
Зарегистрирован: Пн янв 12, 2009 01:59:20
Откуда: Россия.

Сообщение SERJ »

просто КОТ писал(а):что можно с ОДНИМ светодиодом сделать?
Maks писал(а): то потухнет, то погаснет
:shock:
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Мда, с Вами ничего антиресого не сделаешь -- всем лень! :evil: :evil: :evil:
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

просто КОТ писал(а):с Вами ничего антиресого не сделаешь
А мя ничего антиресого и не делаем никогда.. :)))
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Ну ладно-ладно! интересного!
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Вот ТЫ МитяРа -- друг Кота, КОТ-2011 и просто авторитет. Тебе что, нечего предложить?!
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

просто КОТ писал(а):нечего предложить?!
Для одного РЖБшника - нет простора для творчества..
Вот если-бы их два было, то есть одна "кошачья" идейка..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Предлагай, может и 2. Просто когда их много, все эффекты сводятся к бегущим огням. А из двух -- даже не знаю, что можно сделать. . .
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

просто КОТ писал(а):А из двух -- даже не знаю, что можно сделать. . .
Делаешь игрушку-кошку, а вместо глаз - РЖБшники..
Встраиваешь в кошку динамик и "датчик хозяина"..
Если хозяин протянул руку, то кошка плавно "зелёними" глазами мигает, а если чужой - то глаза семафорят "красно-оранжевым" и кошка шипит..

Вот такая идея.. :tea:
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

А если забыл покормить -- синеют что ли?!
Нет, хочется просто светильник, с эффектами. Кто ещё может предложить?!
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Эффект №2 -- плавная смена цвета!

Код: Выделить всё

.def  red = r1	; Счетчик прерываний
.def  green = r2
.def  blue = r3
.def  co4=r16
.def  co3=r17	; Общий регистр отсчёта времени
.def  tmph = r19	; Рабочий регистр главной программы
.def  ct1 = r20	; Рабочий регистр главной программы
.def  ct2 = r21	; Рабочий регистр главной программы
.def  co1   = r24		; Общий регистр таймера
.def  co2 = r25	; Буфер для временного хранения содержимого SREG


.equ  time1=20   ;задержка смены цвета 1
.equ  time2=20   ;задержка смены цвета 2
.equ  Time =5


 



.cseg

rjmp  Initial	; После сброса – к главной программе
reti
reti
reti
reti
rjmp timer	; Прерывание по переполнению T/C0 


;ooooooooooooooooMAINoooooooooooooooooooo
main:
nop
rjmp main
;--------------- ШИМ ---- END ----------------



;------------------------ TIMER 0 BEGIN -----------------
timer:
;push tmph
;push vrm2
;in vrm2,sreg
;push vrm2

inc co1
cpi co1,255
brlo m0
ldi co1,32
m0:


mov tmph, red
cp tmph,co1
brlo m1
sbi portb,0
rjmp m2
m1:
cbi portb,0
m2:


mov tmph, green
cp tmph,co1
brlo m11
sbi portb,1
rjmp m21
m11:
cbi portb,1
m21:

mov tmph, blue
cp tmph,co1
brlo m12
sbi portb,2
rjmp m22
m12:
cbi portb,2
m22:

inc ct1
cpi ct1,time1
brlo ctm1
inc ct2
clr ct1
ctm1:
cpi ct2,time2
brlo ctm02
clr ct2

rjmp ctm03
ctm02:
rjmp ctm2
ctm03:

;***************** ROTATE COLOR *****************



cpi co2,198
brlo cl1
clr co2
cl1:


cpi co2,32-1
brlo col_10
rjmp col_11
col_10:
mov tmph,green
subi tmph,-4
mov green,tmph

mov tmph,red
subi tmph,4
mov red,tmph
col_11:


cpi co2,65-1
brlo col_20
rjmp col_21
col_20:
cpi co2,32+1
brlo col_21
mov tmph,red   ; red min
subi tmph,4
mov red,tmph

mov tmph,green   ;green max
subi tmph,-4
mov green,tmph
col_21:

cpi co2,98-1
brlo col_30
rjmp col_31
col_30:
cpi co2,65+1
brlo col_31
mov tmph,blue
subi tmph,-4
mov blue,tmph
mov tmph,green
subi tmph,4
mov green,tmph
col_31:


cpi co2,131-1
brlo col_40
rjmp col_41
col_40:
cpi co2,98+1
brlo col_41
mov tmph,green   ; green min
subi tmph,4
mov green,tmph

mov tmph,blue   ; blue max
subi tmph,-4
mov blue,tmph
col_41:

cpi co2,164-1
brlo col_50
rjmp col_51
col_50:
cpi co2,131+1
brlo col_51
mov tmph,red
subi tmph,-4
mov red,tmph

mov tmph,blue
subi tmph,4
mov blue,tmph
col_51:

cpi co2,197-1
brlo col_60
rjmp col_61
col_60:
cpi co2,164+1
brlo col_61
mov tmph,blue  ; blue min
subi tmph,4
mov blue,tmph


mov tmph,red   ;red max
subi tmph,-4
mov red,tmph
col_61:






inc co2

;***************** ROTATE COLOR ******* END *****
ctm2:


ldi   tmph,$ff-Time	; Передаем начальное значение для 
out   TCNT0,tmph	; таймера 0

reti
;------------------------- TIMER 0 END -------------------




Initial:
clr tmph
mov green,tmph
mov blue,tmph
clr co1
clr co2
clr co3
clr co4

ldi tmph,255
mov red,tmph



;ldi   tmph,RamEnd
;out   spl,tmph	    ; Инициализация стека
ldi   tmph,0b11111111	
out   DDRB,tmph	    ; Все разряды порта В - выход
ldi   tmph,0b00000111   ; Включаем светодиоды 0..3
out   PortB,tmph	
ldi   tmph,$02	    ; С помощью разряда TOIE0 разрешаем
;out   TIMSK,tmph	; прерывание по переполнению T/C0
;ldi   tmph,$ff-Time	; Передаем начальное значение для 
out   TCNT0,tmph	; таймера 0



ldi   tmph,0b10001010	    ; С помощью разряда TOIE0 разрешаем
out   TIMSK,tmph	; прерывание по переполнению T/C0, T/C1


ldi   tmph,$ff-Time	; Передаем начальное значение для 
out   TCNT0,tmph	; таймера 0

ldi	  tmph,0b00111111
out   MCUCR,tmph		;внешние прерывания по переднему фронту
ldi   tmph,0b11000000
out   GIMSK,tmph		;разрешаем внешние прерывания
ldi   tmph,0b00000010	    ; Устанавливаем коэффициент деления 
out   TCCR0,tmph	; и тем самым запускаем T/C0

sei	                ; Общее разрешение прерываний
ldi   tmph,0b00000111   ; Включаем светодиоды 0..3
out   PortB,tmph	

rjmp  main
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Ответить

Вернуться в «Умные мысли»