2017-01-20 19 views
1

私はこのRGB 5050 LEDトリップを持っています。現在、ArduinoボードとJohnny-Fiveプラットフォームでこれを使用しています.Javascriptを使用して制御する必要があるためです。 私は一定の周波数でLEDを点滅させたいと思いますが、これはゆっくりと増加します。 LED単色の場合、彼らは、このコマンドを持ってArduino + Johnny-fiveでRGB LEDが点滅

led.fade(brightness, ms) 

が、これは、RGB LED(ちょうど愚かあるもの)のために動作しません。

私が見つけた唯一の選択肢はこれです:

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

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

これは、ループ機能であるあなたが実際forまたはwhileループ内setTimeout()を使用することはできませんので、私はこのようにしなければなりませんでした。また、同様の機能を使用してLEDをフェードアウトします。

問題は次のとおりです。短期間で問題なく動作します。しかし時にはそれは文字通りビープ音をスキップします。また、光度低下(フェードアウト)がちょうど無視できるほど速く、「0」に達して再び増加し始めることもない場合もあります。

これはハードウェアの制限(Arduino)ではないことを確かめています.Arduino EditorとC++を使用しています。

J5のWebサイトでは、単一の色のLEDについてのみ多くのコマンドと例がありますが、RGBでは何も表示されません。

誰でも手助けできますか?

答えて

0

RGB LEDは、単色LEDとは異なる方法でインスタンス化する必要があることに注意してください。彼らは結局、より多くのピンを持っています!ここでは例です:

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

https://github.com/rwaldron/johnny-five/wiki/led.rgbhttp://johnny-five.io/api/led.rgb/でRGBのLEDを使用するためのドキュメントがあります。実際、時間の経過とともにRGB LEDの輝度を変更する際のドキュメントは、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); 
    } 
    }, ]); 
}); 
関連する問題