На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
  
    > ардуина и rgb led, в сети сверху плавает корявый вариант подключения rgb с общим анодом
      Порылся в сети, вариант подключения, предложенный инэтом - вполне хил :facepalm: , в случае подключения одного ~20mA RGB LED с общим анодом(т.е. общий + у каналов R,G,B).

      Простая реализация, позволяющая плавно(ШИМ) менять свечение каждого отдельного канала(годится только в случае подключения одного диодика :good: ):
      общий плюс берем через резюк(около 1к) - с ноги 3.3в или 5в.
      Ножки R,G,B подкидываем на ардуину 3,5,6 (ШИМ-же!)


      ExpandedWrap disabled
        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, хотя какова их частота, смогут ли они нормально трудится с ШИМ - вопрос открытый. :rolleyes:

      Добавлено
      и ещё, я взял ближайший резюк для питалова, меньще кило, соответственно питание просаживалось, что выглядело как мерцание при изменении значений нескольких каналов. Решил проблему включением подручного же (ближайшего) кондера между питанием и землей - мерцание полностью устранено, цвета меняются плавно и очень красиво! :wub:
      /*хотя в таком режиме плата наверняка относительно быстро сдохнет.*/ :rolleyes:
      нечто нейтральное, пока что.
        рабочий скетч (отладил красивое перетекание цветов):
        ExpandedWrap disabled
          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) - было бы надежней для долгосрока. :rolleyes:

        моргалка к НГ! :)

        Добавлено
        кстати, с фишкой-моргалкой(хотя нифига не моргает, плавно цвета текут - красотища) неплохо сочетать жмых оптоволокна. :good:
        Сообщение отредактировано: Руслан -
        нечто нейтральное, пока что.
          Цитата Руслан @
          от ноги ардуино 3,3В, через резюк(1к) кидаем на + электролит, вторая нога электролита(минус которая) - на земле. С электролита плюс кидаем на анод светодиода(который плюсом питается), три ноги светодиода подключаем к портам 3,5,6 ардуино(порты с ШИМ).

          Думаю, не удачное решение: не стоит крахоборничать и экономить на спичках резисторах. Надо поставить 3 между катодами и портами, тем самым снизится зависимость по яркости.
          "Все говорят:"Мы в месте!"-Не многие знают в каком!"
            моргалка к НГ! :)
            Скрытый текст
            есть rgb светодиоды переливающиеся сами по себе 8] (~ по 40р за штуку)
              Цитата Alexei @
              Думаю, не удачное решение: не стоит крахоборничать и экономить на спичках резисторах. Надо поставить 3 между катодами и портами

              Скоро третьи сутки как без остановок крутится на одном резисторе... :whistle: Сча время появится, буду переделывать - вешать жмых сведодиодов (через подручные транзисторы).
              Хотя глобально конечно согласен - предложенные резюки - нужны бы (а я просто поленился из ставить)!

              Скрытый текст
              Цитата SVK @
              есть rgb светодиоды переливающиеся сами по себе 8] (~ по 40р за штуку)

              я 50 шт. брал ~ рублей за 200, т.е. ~4р.\шт., плюс МК(ардуино), который управляет ~ 120р.
              Сообщение отредактировано: Руслан -
              нечто нейтральное, пока что.
                Итак, к ардуине подключил целый жмых 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). :)

                Добавлено
                Скрытый текст
                из неожиданных эффектов: колонки которые были отремонтированы примерно год назад(включены вместо пылящегося саба) внезапно заговорили не своим голосом на полной громкости (в обход резистора), впрочем, эффект одноразовый; что это за наводки привели к сбою микросхемы усилителя - хз, близкий к ппц! :blink: :ph34r:
                нечто нейтральное, пока что.
                  Прикреплённая картинка
                  Прикреплённая картинка

                  Прикреплённая картинка
                  Прикреплённая картинка

                  Прикреплённая картинка
                  Прикреплённая картинка
                  нечто нейтральное, пока что.
                    Цитата Руслан @
                    RGB светодиоды с общим анодом (кстати не рекомендую их юзать - местами крайне неудобно, лучше с общим катодом)

                    Не понятны мне ваши проблемы : пину МК побарабану - "истекать" током или тянуть в себя.
                    Проблемы с драйверами лед , их делают на втекающий ток, а светодиоды- наоборот.
                    И еще МК от тех же 5в питается, выше что-то про 3.3 было, думаю с ним не заработает.
                    "Все говорят:"Мы в месте!"-Не многие знают в каком!"
                      Цитата Alexei @
                      Не понятны мне ваши проблемы : пину МК побарабану - "истекать" током или тянуть в себя.

                      Адресацию сложней организовать, что бы разными группами LED отдельно управлять с одного МК. Из этих соображений RGB с общим катодом - значительно удобней! :yes:

                      Цитата Alexei @
                      выше что-то про 3.3 было, думаю с ним не заработает

                      Почему же, прекрасно работало трое суток без остановок. с ноги 3,3 бралось питание одного светодиода; но то была программа минимум, так сказать эксперимент перед запусков жменьки светодиодов, где 3,3 нога незатейлево выгорит от непомерной нагрузки. :)

                      Изменения:
                      номинал резисторов изменен на 20 ом, соответственно света больше, макс.потребление тока приблизилось к 0,1А при 5В. На схему опять добавил какой то подручный кондер (~на 100-200uf).
                      изображение (сделал в замечательной free программе fritzing).

                      обновленный скетч (лучше отрегулирован, больше опций, более интуитивно понятно в настройке) будет позже.

                      Прикреплённая картинка
                      Прикреплённая картинка


                      Добавлено
                      п.с. светодиоды собраны в жмых параллельно (да, решение с экономией на спичках :blush: ).
                      нечто нейтральное, пока что.
                        Цитата Руслан @
                        Адресацию сложней организовать, что бы разными группами LED отдельно управлять с одного МК. Из этих соображений RGB с общим катодом - значительно удобней! :yes:

                        Не понятно чем. :blink:
                        Цитата
                        пину МК побарабану - "истекать" током или тянуть в себя.

                        Соответственно, группы можно переключать как питанием, так и "0"
                        Нарисуйте , о чем вы?
                        Цитата Руслан @

                        Почему же, прекрасно работало трое суток без остановок. с ноги 3,3 бралось питание одного светодиода;

                        Речь о том , что если МК питается 0т 3.3в, а на эмитере тр-ра 5в , то он не закроется.

                        Вообще , тр-ры используются как-то странно. В схеме ключа тр-р , в зависимости от проводимости , подключают эмитером к питанию или земле, а нагрузку включают в коллектор.
                        "Все говорят:"Мы в месте!"-Не многие знают в каком!"
                          Цитата Alexei @
                          Вообще , тр-ры используются как-то странно.
                          Что странного в эмиттерном повторителе?
                            Цитата Alexei @
                            Речь о том , что если МК питается 0т 3.3в, а на эмитере тр-ра 5в , то он не закроется.
                            Закроется.
                            Если на ноге высокое напряжение (скажем 3 вольта), транзистор выдаст на светодиод напряжение где-то 2.5 В (для красного светодиода как раз столько и надо, желтый или зелёный будут светиться пожалуй тускловато).
                            Если напряжение низкое (ниже 0.5-0.7 вольта), транзистор закроется и погасит диод.
                            Другое дело, что при свечении диода транзистор будет рассеивать мощность порядка 0.05 ватта, но думаю, для таких транзисторов это ерунда.
                            Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
                              Цитата Dushevny @
                              Что странного в эмиттерном повторителе?

                              Применение не к месту.

                              Цитата amk @
                              Закроется.
                              Если на ноге высокое напряжение (скажем 3 вольта), транзистор выдаст на светодиод напряжение где-то 2.5 В (для красного светодиода как раз столько и надо, желтый или зелёный будут светиться пожалуй тускловато).
                              Если напряжение низкое (ниже 0.5-0.7 вольта), транзистор закроется и погасит диод.

                              Не закроется,особенно при низком :)
                              Там pnp.
                              "Все говорят:"Мы в месте!"-Не многие знают в каком!"
                                Цитата Alexei @
                                Применение не к месту.

                                У меня всё работает. А как ты считаешь было бы лучше подключить?

                                Вот практика:
                                Ногу анода светодиодов вместо +5(я же говорил, что питаю от зарядного, это разумеется было временное решение, у меня не десяток зарядных) подключил к vin, куда подал регулируемое напряжение(12В адаптера, через LM2596), таким образом повышается яркость светодиодов до любых(разумных) значений, транзисторов хватает тянуть жменю светодиодов. Ну а что предлагаешь ты? :huh:

                                Добавлено
                                Цитата Alexei @
                                Речь о том , что если МК питается 0т 3.3в, а на эмитере тр-ра 5в , то он не закроется.

                                Хорош порожняки гонять! Давай по существу, а? Есть предложения как лучше подключить к ардуине десяток RGB LED с общим анодом, или нет? :huh:
                                Сообщение отредактировано: Руслан -
                                нечто нейтральное, пока что.
                                  Цитата Alexei @
                                  Не закроется,особенно при низком
                                  Там pnp
                                  Невнимательно прочитал (вообще, схемы предпочитаю рисованные, а не описанные текстом) В таком случае светодиоды гаснут потому, что одного вольта просто не хватает, чтобы их зажечь. В полной темноте,возможно, можно разглядеть свечение.
                                  Хотя здесь действительно лучше подошли бы npn-транзисторы со стандартным подключением эмиттера к земле, а диодов через резистор порядка 50-100 Ом (надо по конкретным диодам определять) к питанию.
                                  Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
                                    Цитата amk @
                                    В полной темноте,возможно, можно разглядеть свечение.

                                    Нет, не получится его разглядеть. Вообще подключать транзюк между МК и единственным светодиодом (20 блин мА - при том, что на ШИМ по спецификации можно вешать до 40мА) - придумал Alexei, вот у него может и будет что-то как-то светиться, хз. У меня же в выключенном состоянии ни какого свечения нет. Есть просьбы собрать пару таких девайсов от людей, увидевших светильник в действии. :)

                                    Цитата amk @
                                    Хотя здесь действительно лучше подошли бы npn-транзисторы со стандартным подключением эмиттера к земле, а диодов через резистор порядка 50-100 Ом (надо по конкретным диодам определять) к питанию.

                                    В целях экономии нано-ампер (мне действительно интересно, чем лучше)? :-?

                                    Ради спортивного интереса переделываю на npn 1815. Если пойдет не хуже чем сейчас (а сейчас прекрасно и стабильно работает, за исключением брака G каналов у LED диодов) схему выложу вместо со скетчем (в связи с переходом на NPN - теряется совместимость с принципом из первого сообщения, т.е. скетч нужен новый).
                                    нечто нейтральное, пока что.
                                      Цитата amk @
                                      вообще, схемы предпочитаю рисованные, а не описанные текстом

                                      +100500
                                      Именно из-за этого и сыр -бор. Упоминалось и 3.3в, и 5, и уже 12 с Vin.
                                      Короче," кто на ком стоял" понять не реально.
                                      Я и подумал , что МК питается от меньшего напряжения, чем диоды.

                                      Цитата Руслан @
                                      придумал Alexei,

                                      Ничего я не придумал. Речь о том что, если питание разное, а нагрузка заземлена.
                                      Сообщение отредактировано: Alexei -
                                      "Все говорят:"Мы в месте!"-Не многие знают в каком!"
                                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                      0 пользователей:


                                      Рейтинг@Mail.ru
                                      [ Script Execution time: 0,1956 ]   [ 21 queries used ]   [ Generated: 25.05.18, 07:05 GMT ]