2017-01-20 4 views
1

У меня есть эта поездка RGB 5050 LED. В настоящее время я использую это с помощью платы Arduino и платформы Johnny-Five, потому что мне нужно использовать Javascript для ее управления. Я хочу, чтобы светодиод мигал на определенной частоте, и это будет медленно возрастать.RGB LED мигает с Arduino + Johnny-five

Для одного цвета светодиода, они имеют следующую команду:

led.fade(brightness, ms) 

, но это не работает для RGB LED (то, что это просто глупо).

Единственный вариант, который я нашел это:

function FadeIN(){ 
    led.intensity(i); 
    i++; 

    if(i < 100){ 
    setTimeout(FadeIN, (Timer[y]/20)); 
    }       
} 

Это функция цикла, я должен был сделать в этом случае, потому что вы на самом деле не можете использовать setTimeout() внутри for или while петли. Im также использует аналогичную функцию для Fade Out LED.

Вопрос: Он работает в течение короткого периода времени. Но иногда он буквально пропускает звуковой сигнал. Кроме того, иногда это происходит так быстро, что уменьшение яркости (Fade Out) является незначительным, даже не достигая «0» и снова начинает увеличиваться.

Я уверен, что это не аппаратное ограничение (Arduino), потому что я добился того, что хочу, используя Arduino Editor и C++.

На веб-сайте J5 у них есть много команд и примеров только для одноцветного светодиода, но ничего для RGB.

Может ли кто-нибудь помочь?

ответ

0

Обратите внимание, что светодиоды RGB должны быть созданы иначе, чем одноцветные светодиоды. В конце концов, у них больше контактов! Вот пример:

var led = new five.Led.RGB([9, 10, 11]); 

Существует документация для использования светодиодов RGB на https://github.com/rwaldron/johnny-five/wiki/led.rgb и http://johnny-five.io/api/led.rgb/. Фактически, здесь представлена ​​документация по изменению интенсивности светодиодов RGB с течением времени: http://johnny-five.io/examples/led-rgb-intensity/. Из этого документа:

var temporal = require("temporal"); 
var five = require("johnny-five"); 
var board = new five.Board(); 

board.on("ready", function() { 

    // Initialize the RGB LED 
    var led = new five.Led.RGB([6, 5, 3]); 

    // Set to full intensity red 
    console.log("100% red"); 
    led.color("#FF0000"); 

    temporal.queue([{ 
    // After 3 seconds, dim to 30% intensity 
    wait: 3000, 
    task: function() { 
     console.log("30% red"); 
     led.intensity(30); 
    } 
    }, { 
    // 3 secs then turn blue, still 30% intensity 
    wait: 3000, 
    task: function() { 
     console.log("30% blue"); 
     led.color("#0000FF"); 
    } 
    }, { 
    // Another 3 seconds, go full intensity blue 
    wait: 3000, 
    task: function() { 
     console.log("100% blue"); 
     led.intensity(100); 
    } 
    }, ]); 
}); 
Смежные вопросы