RGB светильник

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Максим B, 18 июл 2013.

  1. Максим B

    Максим B Гуру

  2. Mitrandir

    Mitrandir Гуру

    Нет, это полевые
     
  3. Mitrandir

    Mitrandir Гуру

    Код (C):

    #define LOOP_LENGTH 100
    #define SPEED 100
    #define TIME_IN_SECONDS = ( millis() / 1000 );
    void setup()
    {
    }
    int r(long tm)
    {
      return map(sin(tm),-1,1,0,255);
    }

    int g(long tm)
    {
      return map(cos(tm),-1,1,0,255);
    }

    int b(long tm)
    {
      return map(cos(tm)*sin(tm),-1,1,0,255);
    }

    void loop()
    {
    long tm = TIME_IN SECONDS % loo;
    digitalWrite(14,b(tm));
    digitalWrite(15,r(tm));
    digitalWrite(16,g(tm));
    delay(SPEED);

    }
     
    с функциями r g b можешь поиграть для получения разных эффектов
     
    Megakoteyka и nailxx нравится это.
  4. Максим B

    Максим B Гуру

    Спасибо за код. А какие марки полевых можно использовать ??? И нужны ли они вообще??? А такие подойдут IRF530
     
  5. Unixon

    Unixon Оракул Модератор

    1) Зависит от того, какие у вас светодиоды. В принципе, любые N-канальные с Vds>=20V, Vgs>=8V, Vgs.th<=4V, Id>2*I_load, Rdson*Id^2 < 2*Pd;
    2) Один вывод микроконтроллера может прокачать ток ~20mA, весь МК в целом ~200mA, для светодиодной линейки нужны несколько ампер; Следовательно, нужен силовой ключ;
    3) Да, IRF530 подойдут.
     
  6. Mitrandir

    Mitrandir Гуру

    В марках не силен. Полевики должны быть с пятивольтовым затвором.
    У вашего мк есть аналоговые выходы?
     
  7. Максим B

    Максим B Гуру

    sketch_jul19a.cpp: In function 'void loop()':
    sketch_jul19a:23: error: expected primary-expression before '=' token
    sketch_jul19a:23: error: expected primary-expression before '/' token
    sketch_jul19a:23: error: 'loo' was not declared in this scope
     
  8. Mitrandir

    Mitrandir Гуру

    Loo заменить на LOOP_LENGTH
    Писал с мобильного могут быть опечатки
     
  9. Максим B

    Максим B Гуру

    Код (C):


    #define LOOP_LENGHT 100
    #define SPEED 100
    #define TIME_IN_SECONDS = ( millis() / 1000 );
    void setup()
    {
    }
    int r(long tm)
    {
      return map(sin(tm),-1,1,0,255);
    }

    int g(long tm)
    {
      return map(cos(tm),-1,1,0,255);
    }

    int b(long tm)
    {
      return map(cos(tm)*sin(tm),-1,1,0,255);
    }

    void loop()
    {
    long tm = TIME_IN_SECONDS % LOOP_LENGHT;
    digitalWrite(14,b(tm));
    digitalWrite(15,r(tm));
    digitalWrite(16,g(tm));
    delay(SPEED);

    }



    sketch_jul19a.cpp: In function 'void loop()':
    sketch_jul19a:23: error: expected primary-expression before '=' token
    sketch_jul19a:23: error: expected primary-expression before '%' tok
     
  10. Mitrandir

    Mitrandir Гуру

    Добрался до компа исправил ошибки
    в макросе TIME_IN_SECONDS не нужно = и точки с запятой
    Код (C):
    #define LOOP_LENGHT 100
    #define SPEED 100
    #define TIME_IN_SECONDS  ( millis() / 1000 )
    void setup()
    {
    }
    int r(long tm)
    {
      return map(sin(tm),-1,1,0,255);
    }

    int g(long tm)
    {
      return map(cos(tm),-1,1,0,255);
    }

    int b(long tm)
    {
      return map(cos(tm)*sin(tm),-1,1,0,255);
    }

    void loop()
    {
    long tm = TIME_IN_SECONDS % LOOP_LENGHT;
    digitalWrite(14,b(tm));
    digitalWrite(15,r(tm));
    digitalWrite(16,g(tm));
    delay(SPEED);

    }
    Это у меня компилится, запустить не могу, нет железа на чем
    14 15 16 - цифровые порты, а не ноги МК!
    как подсоединять смотри пин маппинг
     
  11. Максим B

    Максим B Гуру

    Пасиб и у меня компилится теперь )))
     
  12. Максим B

    Максим B Гуру

    Собрал. Только светодиоды не меняют свое свечение ((( Просто горят тускло. Я собрал правда без полевиков. Влияет ли это???
     
  13. XCB

    XCB Гик

    ну подумаешь, сгорит контроллер, если еще не сгорел...
     
  14. Mitrandir

    Mitrandir Гуру

    Без них рвботать не будет
     
  15. Mitrandir

    Mitrandir Гуру

    Если он оставил резисторы то не должен сгореть...
     
  16. Максим B

    Максим B Гуру

    Да у меня стоят резисторы. Не сгорел )))
     
  17. Максим B

    Максим B Гуру

    Собрал схему. Фото ниже. И не горит светодиод (((( Что не так ??? Использовал Полевой MOSFET транзистор IRF530 с N-каналом. Может есть схема такого просто подключения ?? ))) Спасибо
     

    Вложения:

    • IMG213.jpg
      IMG213.jpg
      Размер файла:
      450,6 КБ
      Просмотров:
      584
  18. Mitrandir

    Mitrandir Гуру

    Было бы понятнее, если бы вы привели не фотографию, а схему вашего устройства
    IRF530 подключать так:
    1 ногу подрубить к ардуине, притянуть к земле резистором
    2 ногу через диод к + источника питапния диода
    3-тью ногу к земле
    [​IMG]
     
  19. Максим B

    Максим B Гуру

    А если нету внешнего источника питания ((( тогда как подключить используя только ардуину ??? При подключении напрямую ардуина-резистор-светодиод-скетч - не меняется свечение (((
     
  20. Mitrandir

    Mitrandir Гуру

    подрубить провод который обозначен+12V к Vin ардуины