лампа настроения
Увидел в инете такую штуку http://licrym.org/index.php/%D0%9B%D0%B0%D0%BC%D0%..., захотел собрать, но хочу сделать ее более компактной, поэтому прошу помощи в поиске аналогов элементов, присутствующих на схеме, т.к. у самого еще опыта нету .
Заранее спасибо!
Заранее спасибо!
В настоящий момент текст на данной странице отсутствует. Вы можете найти упоминание данного названия в других статьях или создать страницу с таким названием.
Вот наш новый дефлоратор!
Он мощней чем финский трактор!
Вот наш новый дефлоратор!
Он мощней чем финский трактор!
Иэтофсё? Саму стекляшку в икее точно такую продают, даж купить хотел, смотрится неплохо. Светодиоды не проблема. И в той же самой икее кстати тоже, только дорогие там. Контроллер со случайной прогой только осталось. Можно даж не умничать с алгоритмом, тупо сгенерить дамп на всю память и выплёвывать в порт. Или щёчег+пзу заколхозить, как вся светотехника новогодняя сделана.
В настоящий момент текст на данной странице отсутствует. Вы можете найти упоминание данного названия в других статьях или создать страницу с таким названием.
сори, текст куда то кончился....
благодарю
С
Сhin_middle
хрень какаято!
h
hacker
у меня похожий блок новый в упаковке валяется в любой плафон можно засунуть
программы от хлопка меняет
автору-если интересно ,в личку плиз
[Сообщение изменено пользователем 06.08.2009 10:58]
программы от хлопка меняет
автору-если интересно ,в личку плиз
[Сообщение изменено пользователем 06.08.2009 10:58]
d
darkwoox
да я думаю в той же икее продаються подобные светильники и стоят не на много дороже той стеклянной вазы
E
El.Master ПриватизировалКОСМОС
вот он пожалста уже собранный есть в наборах
http://www.masterkit.ru/main/set.php?num=1170
только цена несколько завышена на мой взгляд, 1500 рублей
http://www.masterkit.ru/main/set.php?num=1170
только цена несколько завышена на мой взгляд, 1500 рублей
F
Faleex WK
Можно было собрать на attiny2313, у него 4 pwm.
Ищите косяки в коде, может и накосячил. Переработал алгоритм выбора цвета, чтоб места меньше занимал...
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.8 Standard
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 08.08.2009
Author : Faleex
Company : Lomalkin
Comments:
Chip type : ATtiny2313
Clock frequency : 8,000000 MHz
Memory model : Tiny
External SRAM size : 0
Data Stack size : 32
*****************************************************/
#include <tiny2313.h>
#include <stdlib.h>
#include <math.h>
#include <delay.h>
float red, green, blue; //now colors
unsigned int tred, tgreen, tblue, color; //tagert colors
float delta_red, delta_green, delta_blue; //величина прибавки за шаг
unsigned int time; //длительность шага
void generate_tagert_color(void)
{
do
{
color = rand() & 0x07;
}
while (color > 5);
switch (color)
{
case 0: tred=0xff; tgreen=rand();tblue=0;break;
case 1: tred=rand(); tgreen=0xff;tblue=0;break;
case 2: tred=0; tgreen=0xff;tblue=rand();break;
case 3: tred=0; tgreen=rand();tblue=0xff;break;
case 4: tred=rand(); tgreen=0;tblue=0xff;break;
case 5: tred=0xff; tgreen=0;tblue=rand();break;
};
tred = tred & 0xFF; //to max 255
tgreen = tgreen & 0xFF;
tblue = tblue & 0xFF;
};
void delay(unsigned int delayt) //задержка delay_ms() на вход принимает только константу(
{
while (delayt != 0)
{
delay_ms(1);
delayt--;
};
};
// Declare your global variables here
void main(void)
{
unsigned int temp4;
// Declare your local variables here
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Input/Output Ports initialization
// Port A initialization
// Func2=In Func1=In Func0=In
// State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=0 State2=0 State1=T State0=T
PORTB=0x00;
DDRB=0x0C;
// Port D initialization
// Func6=In Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=0 State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x10;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: Fast PWM top=FFh
// OC0A output: Non-Inverted PWM
// OC0B output: Non-Inverted PWM
TCCR0A=0xA3;
TCCR0B=0x01;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: Fast PWM top=00FFh
// OC1A output: Non-Inv.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x81;
TCCR1B=0x09;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
srand(1); //инициализируем рандомайзер этим значением
while (1)
{
generate_tagert_color();
//значение прибавки. доходим до нужного цвета за 255 шагов
delta_red = (float) (tred - red) / 255;
delta_green = (float) (tgreen - green) / 255;
delta_blue = (float) (tblue - blue) / 255;
do
{
temp4 = rand() & 0x00FF;
}
while ((temp4 < 50) || (temp4 > 100)); //скокрость перехода случайна от 5 до 10с
time = ceil( ((float) temp4 / 255) * 100); //задержка должна быть целой
do
{
if (tred != ceil(red))
red = red + delta_red;
if (tgreen != ceil(green))
green = green + delta_green;
if (tblue != ceil(blue))
blue = blue + delta_blue;
OCR0A = ceil(blue);
OCR0B = ceil(green);
OCR1A = ceil(red);
delay(time);
}
while ((tred != ceil(red)) || (tgreen != ceil(green)) || (tblue != ceil(blue)));
delay(time * 255); //стремились к этому цвету, задержим его
}
}
[Сообщение изменено пользователем 09.08.2009 02:54]
Ищите косяки в коде, может и накосячил. Переработал алгоритм выбора цвета, чтоб места меньше занимал...
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.8 Standard
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 08.08.2009
Author : Faleex
Company : Lomalkin
Comments:
Chip type : ATtiny2313
Clock frequency : 8,000000 MHz
Memory model : Tiny
External SRAM size : 0
Data Stack size : 32
*****************************************************/
#include <tiny2313.h>
#include <stdlib.h>
#include <math.h>
#include <delay.h>
float red, green, blue; //now colors
unsigned int tred, tgreen, tblue, color; //tagert colors
float delta_red, delta_green, delta_blue; //величина прибавки за шаг
unsigned int time; //длительность шага
void generate_tagert_color(void)
{
do
{
color = rand() & 0x07;
}
while (color > 5);
switch (color)
{
case 0: tred=0xff; tgreen=rand();tblue=0;break;
case 1: tred=rand(); tgreen=0xff;tblue=0;break;
case 2: tred=0; tgreen=0xff;tblue=rand();break;
case 3: tred=0; tgreen=rand();tblue=0xff;break;
case 4: tred=rand(); tgreen=0;tblue=0xff;break;
case 5: tred=0xff; tgreen=0;tblue=rand();break;
};
tred = tred & 0xFF; //to max 255
tgreen = tgreen & 0xFF;
tblue = tblue & 0xFF;
};
void delay(unsigned int delayt) //задержка delay_ms() на вход принимает только константу(
{
while (delayt != 0)
{
delay_ms(1);
delayt--;
};
};
// Declare your global variables here
void main(void)
{
unsigned int temp4;
// Declare your local variables here
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Input/Output Ports initialization
// Port A initialization
// Func2=In Func1=In Func0=In
// State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=0 State2=0 State1=T State0=T
PORTB=0x00;
DDRB=0x0C;
// Port D initialization
// Func6=In Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=0 State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x10;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: Fast PWM top=FFh
// OC0A output: Non-Inverted PWM
// OC0B output: Non-Inverted PWM
TCCR0A=0xA3;
TCCR0B=0x01;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: Fast PWM top=00FFh
// OC1A output: Non-Inv.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x81;
TCCR1B=0x09;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
srand(1); //инициализируем рандомайзер этим значением
while (1)
{
generate_tagert_color();
//значение прибавки. доходим до нужного цвета за 255 шагов
delta_red = (float) (tred - red) / 255;
delta_green = (float) (tgreen - green) / 255;
delta_blue = (float) (tblue - blue) / 255;
do
{
temp4 = rand() & 0x00FF;
}
while ((temp4 < 50) || (temp4 > 100)); //скокрость перехода случайна от 5 до 10с
time = ceil( ((float) temp4 / 255) * 100); //задержка должна быть целой
do
{
if (tred != ceil(red))
red = red + delta_red;
if (tgreen != ceil(green))
green = green + delta_green;
if (tblue != ceil(blue))
blue = blue + delta_blue;
OCR0A = ceil(blue);
OCR0B = ceil(green);
OCR1A = ceil(red);
delay(time);
}
while ((tred != ceil(red)) || (tgreen != ceil(green)) || (tblue != ceil(blue)));
delay(time * 255); //стремились к этому цвету, задержим его
}
}
[Сообщение изменено пользователем 09.08.2009 02:54]
E
El.Master ПриватизировалКОСМОС
и кто это пропишет?
у мну нечем
F
Faleex WK
На сайте с оригинальным алгоритмом выбор цвета производится 3 псевдослучайными числами (RGB). Затем один из цветов, выбранный случайным образом, не выводится...
Я же решил, сначала выбрать два из трех цветов, затем для выбранной пары назначить коэффициенты. Сказано - сделано. Прошивка влезла в attiny2313 и сейчас прогоняю в тестовом режиме на smd светодиодах и пластиковом стаканчике. Как ночник - супер. Так, было бы время - сгонял бы в ПЭ за мощным трехцветным светодиодом. Денег буржуйская фиговина конечно стоит, но результат интересен... Только это будет далеко не ночник.
Кстати, идея попутно возникла. Если взять 3 ААА батарейки или ещё чего малогабаритного, собрать плату на smd компонентах, то остается добавить гравированного оргстекла и получим переливающийся всеми цветами радуги "бэйджик".
Пару слов по тексту программы. Нужен CodeVisionAVR для того чтобы получить прошивку. Прошить можно почти чем угодно Ponyprog, ICProg и т.д. Ну и...
ps: задолго до "лампы настроения" наблюдал в радиомагазинах полноцветный светодиод со встроенным контроллером. Для начала оно конечно неплохо, но по сути - мерзость.
Я же решил, сначала выбрать два из трех цветов, затем для выбранной пары назначить коэффициенты. Сказано - сделано. Прошивка влезла в attiny2313 и сейчас прогоняю в тестовом режиме на smd светодиодах и пластиковом стаканчике. Как ночник - супер. Так, было бы время - сгонял бы в ПЭ за мощным трехцветным светодиодом. Денег буржуйская фиговина конечно стоит, но результат интересен... Только это будет далеко не ночник.
Кстати, идея попутно возникла. Если взять 3 ААА батарейки или ещё чего малогабаритного, собрать плату на smd компонентах, то остается добавить гравированного оргстекла и получим переливающийся всеми цветами радуги "бэйджик".
Пару слов по тексту программы. Нужен CodeVisionAVR для того чтобы получить прошивку. Прошить можно почти чем угодно Ponyprog, ICProg и т.д. Ну и...
ps: задолго до "лампы настроения" наблюдал в радиомагазинах полноцветный светодиод со встроенным контроллером. Для начала оно конечно неплохо, но по сути - мерзость.
E
El.Master ПриватизировалКОСМОС
светодиод со встроенным контроллером.
у меня такой в картридере для красоты встроен, прикольно ночью комнату освещает.
F
Faleex WK
в картридере для красоты
Мне не понравился из-за резкого поведения. Сильно привлекает внимание.
а можно схему глянуть? если не секрет. И от чего питание идет? Икакие габаритные
размеры схемы?
Схему... Хм.. мне влом рисовать. Вкратце: используемые ноги процессора 1 (reset) подключил через 10к на +5В, ноги 9, 14 и 15 - к светодиодам, для мощных потребуется ключевой транзистор. 20 нога +5В, 10 нога 0В.
Питание пока что от лабораторного БП. Позже воткну стабилизатор на MC34063.
По поводу габаритов. Не было цели собрать миниатюрный контроллер.
Но... ATMEGA48-20AU стоит ~43рубля, а ATTINY2313-20SU стоит ~42рубля, причем габариты атмеги для поверхностного монтажа меньше. Свой вариант на макетке собрал для того, чтобы пристроить бесхозные тини2313.
ps: если собирать на меге8 или её аналогах, то нет смысла возиться с алгоритмом - оригинальный занимает ~2200байт памяти и влезает в любую мегу.
Если взять 3 ААА батарейки или ещё чего малогабаритного, собрать плату на smd компонентах, то остается добавить гравированного оргстекла и получим переливающийся всеми цветами радуги "бэйджик".
У меня дети притащили откудато кетайский брелок, выполняющий функции именно такой радуги. 3 таблетки, сопля и 3 светодиода, переливается всеми цветами плавно. Стоит наверное рублей 10. Или 20.
Нуачо.
А слабо цифровую цветомузыку?
В идеале по USB. Но это наверное очень сложно.
А древние аналоговые - неинтересно. С цифрой можно написать более-менее адекватную программку, чтобы не сильно утомляло вспышками и тд.
Кстати вчера в Икее посмотрел эти светильники. Они есть разного размера, от 300 до 600р. Cтеклянные. Действительно удобные для всяких самоделок.
Надо попробовать хоть аналоговую цветомузыку замутить.
У моего поколения нездоровая фиксация на цветомузыках. До сих пор считаем что это круто, а не "вата какая-то"
А слабо цифровую цветомузыку?
В идеале по USB. Но это наверное очень сложно.
А древние аналоговые - неинтересно. С цифрой можно написать более-менее адекватную программку, чтобы не сильно утомляло вспышками и тд.
Кстати вчера в Икее посмотрел эти светильники. Они есть разного размера, от 300 до 600р. Cтеклянные. Действительно удобные для всяких самоделок.
Надо попробовать хоть аналоговую цветомузыку замутить.
У моего поколения нездоровая фиксация на цветомузыках. До сих пор считаем что это круто, а не "вата какая-то"
На дискотеках цветомузыки автономные есть. Микрофон, ару, проц. В такт бумканью подстраиваюца сами. Удобно, только в сеть воткнул и всё.
Ну тут просмотривается какая-нибудь "СДУ с компрессором" из старого журнала Радио.
C корпусом, трансом, десятью ОУ и огромными тиристорами.
A вот что-нибудь маленькое, легкое, недорогое..
C корпусом, трансом, десятью ОУ и огромными тиристорами.
A вот что-нибудь маленькое, легкое, недорогое..
Филипс не хуже меня любит всякие цветомузыки-амбилайты.
У них есть кстати спецдевайс - колонки с цветомузыкой. (она же и амбилайт для монитора). Прикольно, на 10 000р вроде стоит.
Лампочка со светодиодами под обычный цоколь меняющая цвет у Филипса тоже есть.
Cтоит 250р вроде. C виду как обычная.
У них есть кстати спецдевайс - колонки с цветомузыкой. (она же и амбилайт для монитора). Прикольно, на 10 000р вроде стоит.
Лампочка со светодиодами под обычный цоколь меняющая цвет у Филипса тоже есть.
Cтоит 250р вроде. C виду как обычная.
Авторизуйтесь, чтобы принять участие в дискуссии.