Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.153.44] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Порылся в сети, вариант подключения, предложенный инэтом - вполне хил , в случае подключения одного ~20mA RGB LED с общим анодом(т.е. общий + у каналов R,G,B).
Простая реализация, позволяющая плавно(ШИМ) менять свечение каждого отдельного канала(годится только в случае подключения одного диодика ): общий плюс берем через резюк(около 1к) - с ноги 3.3в или 5в. Ножки R,G,B подкидываем на ардуину 3,5,6 (ШИМ-же!) const byte const_Pin_R=3; const byte const_Pin_G=5; const byte const_Pin_B=6; const byte const_pwr_min=200; const byte const_pwr_max=255; byte pwr_R=const_pwr_min; byte pwr_G=const_pwr_min; byte pwr_B=const_pwr_min; analogWrite(const_Pin_R,pwr_R); analogWrite(const_Pin_G,pwr_G); analogWrite(const_Pin_B,pwr_B); delay(50); 255 на ШИМах(pwr_*) - полное выключение канала. p.s. для более серьезных нагрузок можно заюзать что нибудь вроде К1109КТ22 = ULN2003, хотя какова их частота, смогут ли они нормально трудится с ШИМ - вопрос открытый. Добавлено и ещё, я взял ближайший резюк для питалова, меньще кило, соответственно питание просаживалось, что выглядело как мерцание при изменении значений нескольких каналов. Решил проблему включением подручного же (ближайшего) кондера между питанием и землей - мерцание полностью устранено, цвета меняются плавно и очень красиво! /*хотя в таком режиме плата наверняка относительно быстро сдохнет.*/ |
Сообщ.
#2
,
|
|
|
рабочий скетч (отладил красивое перетекание цветов):
byte Pin_Color[3]{3,5,6};//R,G,B const byte const_Delay=200;/*для ускоренного просмотра рекомендуется установить в 50, 20, или меньше. Потомм вернуть 200.*/ int Delay_Dynamic=0; int Delay_Tmp=0; const int const_pwr_off=255; // 255 - светодиоды не светят const int const_pwr_on=200; // 200 - яркий свет int i=0; int pwr[3]={0,0,0}; //яркость R,G,B- от 0 до 55(const_pwr_off-const_pwr_on) int pwr_average[3]={10,45,32};//среднее значение R,G,B, при отклонении стремиться к нему int pwr_max[3]={20,55,55};//ограничение по максимуму для канала (истиный максимум - const_pwr_off-const_pwr_on=55) int pwr_steep[3]={1,1,1};//шаг R,G,B, положительное число - увеличит яркость, отрицательное - снизит int odds_steep_change=0;//вероятность на изменение шага(меняется по ситуации) const int rnd_counter_enter=2;//количество циклов до входа в random(изменения динамики) int rnd_counter=0; int rnd; //моргнуть бортовым светодиодом //void delay1() {digitalWrite(13, HIGH);delay(5);digitalWrite(13, LOW);delay(5);} void setup() { /*Serial.begin(9600);*/ } void loop() { //условие для изменений динамики if (rnd_counter<rnd_counter_enter) {rnd_counter++;} else { rnd_counter=0; Delay_Tmp=0; for (i=0;i<3;i++) { odds_steep_change=pwr_average[i]-pwr[i]; Delay_Tmp+=(odds_steep_change*2); /* Serial.print("i: "); Serial.println(i); Serial.println(odds_steep_change); Serial.println(Delay_Tmp); Serial.println("-------");*/ if (odds_steep_change<0) {odds_steep_change=-odds_steep_change;} rnd=random(57-odds_steep_change); if (pwr[i]<pwr_average[i]) {if (rnd>-1 && rnd<3) {pwr_steep[i]++;}} if (pwr[i]>pwr_average[i]) {if (rnd>-1 && rnd<3) {pwr_steep[i]--;}} if (pwr[i]==pwr_average[i]) {if (rnd==1) {pwr_steep[i]++;} else {if (rnd==2) {pwr_steep[i]--;}}} } } //включение каналов (R,G,B) светодиода for (i=0;i<3;i++) { pwr[i]=pwr[i]+pwr_steep[i];if (pwr[i]<0) {pwr[i]=0;if (random(2)==1){pwr_steep[i]++;}} else {if (pwr[i]>pwr_max[i]) {pwr[i]=pwr_max[i];if (random(3)==1){pwr_steep[i]--;}}} analogWrite(Pin_Color[i],const_pwr_off-pwr[i]); } Delay_Dynamic=const_Delay-(Delay_Tmp); if (Delay_Dynamic<5) {Delay_Dynamic=5;} delay(Delay_Dynamic); //delay1(); } использовано: arduino nano - 1шт светодиод RGB 5mm с общим анодом(т.е. полюс один, и три ноги под минусы)- 1 шт резистор ближайший подручный (условно 1к, но не меньше) - 1шт конденсатор электролитический, ближайший подручный, (не меньше 6В) сколько-то-там микрофарад(не больше 1000uf, хотя у меня 1500uf) - 1шт. опционально(таки заюзано) макетная плата - 1шт, провода китайские для удобства работы с макеткой - 5шт. от ноги ардуино 3,3В, через резюк(1к) кидаем на + электролит, вторая нога электролита(минус которая) - на земле. С электролита плюс кидаем на анод светодиода(который плюсом питается), три ноги светодиода подключаем к портам 3,5,6 ардуино(порты с ШИМ). Заливаем скетч, вуаля, моргалка работает! Неплохой эффект достигается добавлением рассеивателя из простого листа белой бумаги А4 - складываем как угодно, хоть домиком, он будет вполне прикольно подсвечиваться! у меня сутки крутится без проблем, хотя резюк ~ на 2К, и электролит поменьше(500uf) - было бы надежней для долгосрока. моргалка к НГ! Добавлено кстати, с фишкой-моргалкой(хотя нифига не моргает, плавно цвета текут - красотища) неплохо сочетать жмых оптоволокна. |
Сообщ.
#3
,
|
|
|
Цитата Руслан @ от ноги ардуино 3,3В, через резюк(1к) кидаем на + электролит, вторая нога электролита(минус которая) - на земле. С электролита плюс кидаем на анод светодиода(который плюсом питается), три ноги светодиода подключаем к портам 3,5,6 ардуино(порты с ШИМ). Думаю, не удачное решение: не стоит крахоборничать и экономить на |
Сообщ.
#4
,
|
|
|
моргалка к НГ!
Скрытый текст есть rgb светодиоды переливающиеся сами по себе 8] (~ по 40р за штуку) |
Сообщ.
#5
,
|
|
|
Цитата Alexei @ Думаю, не удачное решение: не стоит крахоборничать и экономить на спичках резисторах. Надо поставить 3 между катодами и портами Скоро третьи сутки как без остановок крутится на одном резисторе... Сча время появится, буду переделывать - вешать жмых сведодиодов (через подручные транзисторы). Хотя глобально конечно согласен - предложенные резюки - нужны бы (а я просто поленился из ставить)! Скрытый текст Цитата SVK @ есть rgb светодиоды переливающиеся сами по себе 8] (~ по 40р за штуку) я 50 шт. брал ~ рублей за 200, т.е. ~4р.\шт., плюс МК(ардуино), который управляет ~ 120р. |
Сообщ.
#6
,
|
|
|
Итак, к ардуине подключил целый жмых RGB LED с общим анодом. Что порадовало - оказалась полная совместимость с выше приведенным скетчем. Использовано минимум деталей(да, я жмот, экономящий на спичках).
Использовано (перечисляю снова) МК Ардуино - 1шт. блок питания 5В (зарядное для мобилки) - 1шт. RGB светодиоды с общим анодом (кстати не рекомендую их юзать - местами крайне неудобно, лучше с общим катодом) - 8шт. транзисторы pnp подручные(подручными оказались 1015, ЭКБ) - 3шт. резисторы из расчёта 200 Ом - 3шт. проводки подручные, короткие - 5шт * 10см. макетная плата (на этот раз под пайку которая) - 1шт. аноды светодиодов(плюс который) соединил вместе и отправил прямиком к питанию +5В (думаю не сдохнет, судя по стабилизатору на плате МК). катоды светодиодов R пачкой идут к резистору 1, который в свою очередь идёт к эмитеру транзюка 1 катоды светодиодов G пачкой идут к резистору 2, который в свою очередь идёт к эмитеру транзюка 2 катоды светодиодов B пачкой идут к резистору 3, который в свою очередь идёт к эмитеру транзюка 3 коллекторы транзюков соеденены вместе, и подключены прямиком к GND базы транзюков идут к портам ардуино - R=3, G=5, B=6 вуаля, засветилось сразу, без изменений скетча. токопотребление (при 5.14В) получилось 0,02А - 0,03А(запас прочности светодиодов получается раз в 5). Добавлено Скрытый текст из неожиданных эффектов: колонки которые были отремонтированы примерно год назад(включены вместо пылящегося саба) внезапно заговорили не своим голосом на полной громкости (в обход резистора), впрочем, эффект одноразовый; что это за наводки привели к сбою микросхемы усилителя - хз, близкий к ппц! |
Сообщ.
#7
,
|
|
|
Сообщ.
#8
,
|
|
|
Цитата Руслан @ RGB светодиоды с общим анодом (кстати не рекомендую их юзать - местами крайне неудобно, лучше с общим катодом) Не понятны мне ваши проблемы : пину МК побарабану - "истекать" током или тянуть в себя. Проблемы с драйверами лед , их делают на втекающий ток, а светодиоды- наоборот. И еще МК от тех же 5в питается, выше что-то про 3.3 было, думаю с ним не заработает. |
Сообщ.
#9
,
|
|
|
Цитата Alexei @ Не понятны мне ваши проблемы : пину МК побарабану - "истекать" током или тянуть в себя. Адресацию сложней организовать, что бы разными группами LED отдельно управлять с одного МК. Из этих соображений RGB с общим катодом - значительно удобней! Цитата Alexei @ выше что-то про 3.3 было, думаю с ним не заработает Почему же, прекрасно работало трое суток без остановок. с ноги 3,3 бралось питание одного светодиода; но то была программа минимум, так сказать эксперимент перед запусков жменьки светодиодов, где 3,3 нога незатейлево выгорит от непомерной нагрузки. Изменения: номинал резисторов изменен на 20 ом, соответственно света больше, макс.потребление тока приблизилось к 0,1А при 5В. На схему опять добавил какой то подручный кондер (~на 100-200uf). изображение (сделал в замечательной free программе fritzing). обновленный скетч (лучше отрегулирован, больше опций, более интуитивно понятно в настройке) будет позже. Прикреплённая картинка
Добавлено п.с. светодиоды собраны в жмых параллельно (да, решение с экономией на спичках ). |
Сообщ.
#10
,
|
|
|
Цитата Руслан @ Адресацию сложней организовать, что бы разными группами LED отдельно управлять с одного МК. Из этих соображений RGB с общим катодом - значительно удобней! Не понятно чем. Цитата пину МК побарабану - "истекать" током или тянуть в себя. Соответственно, группы можно переключать как питанием, так и "0" Нарисуйте , о чем вы? Цитата Руслан @ Почему же, прекрасно работало трое суток без остановок. с ноги 3,3 бралось питание одного светодиода; Речь о том , что если МК питается 0т 3.3в, а на эмитере тр-ра 5в , то он не закроется. Вообще , тр-ры используются как-то странно. В схеме ключа тр-р , в зависимости от проводимости , подключают эмитером к питанию или земле, а нагрузку включают в коллектор. |
Сообщ.
#11
,
|
|
|
Цитата Alexei @ Что странного в эмиттерном повторителе? Вообще , тр-ры используются как-то странно. |
Сообщ.
#12
,
|
|
|
Цитата Alexei @ Закроется.Речь о том , что если МК питается 0т 3.3в, а на эмитере тр-ра 5в , то он не закроется. Если на ноге высокое напряжение (скажем 3 вольта), транзистор выдаст на светодиод напряжение где-то 2.5 В (для красного светодиода как раз столько и надо, желтый или зелёный будут светиться пожалуй тускловато). Если напряжение низкое (ниже 0.5-0.7 вольта), транзистор закроется и погасит диод. Другое дело, что при свечении диода транзистор будет рассеивать мощность порядка 0.05 ватта, но думаю, для таких транзисторов это ерунда. |
Сообщ.
#13
,
|
|
|
Цитата Dushevny @ Что странного в эмиттерном повторителе? Применение не к месту. Цитата amk @ Закроется. Если на ноге высокое напряжение (скажем 3 вольта), транзистор выдаст на светодиод напряжение где-то 2.5 В (для красного светодиода как раз столько и надо, желтый или зелёный будут светиться пожалуй тускловато). Если напряжение низкое (ниже 0.5-0.7 вольта), транзистор закроется и погасит диод. Не закроется,особенно при низком Там pnp. |
Сообщ.
#14
,
|
|
|
Цитата Alexei @ Применение не к месту. У меня всё работает. А как ты считаешь было бы лучше подключить? Вот практика: Ногу анода светодиодов вместо +5(я же говорил, что питаю от зарядного, это разумеется было временное решение, у меня не десяток зарядных) подключил к vin, куда подал регулируемое напряжение(12В адаптера, через LM2596), таким образом повышается яркость светодиодов до любых(разумных) значений, транзисторов хватает тянуть жменю светодиодов. Ну а что предлагаешь ты? Добавлено Цитата Alexei @ Речь о том , что если МК питается 0т 3.3в, а на эмитере тр-ра 5в , то он не закроется. Хорош порожняки гонять! Давай по существу, а? Есть предложения как лучше подключить к ардуине десяток RGB LED с общим анодом, или нет? |
Сообщ.
#15
,
|
|
|
Цитата Alexei @ Невнимательно прочитал (вообще, схемы предпочитаю рисованные, а не описанные текстом) В таком случае светодиоды гаснут потому, что одного вольта просто не хватает, чтобы их зажечь. В полной темноте,возможно, можно разглядеть свечение.Не закроется,особенно при низком Там pnp Хотя здесь действительно лучше подошли бы npn-транзисторы со стандартным подключением эмиттера к земле, а диодов через резистор порядка 50-100 Ом (надо по конкретным диодам определять) к питанию. |