2017-01-20 21 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를 페이드 아웃합니다.

문제는 다음과 같습니다. 단기간 동안 작동합니다. 그러나 때때로 그것은 경고음을 건너 뜁니다. 또한 때로는 너무 빠르기 때문에 광도 감소 (Fade Out)는 무시할 수 있으며 "0"에 도달하지 않고 다시 증가하기 시작합니다.

Arduino Editor 및 C++을 사용하여 원하는 결과를 얻었 기 때문에 이것이 하드웨어 제한 사항 (Arduino)이 아님을 확신합니다.

J5 웹 사이트에는 단일 색상 LED에 대해서만 많은 명령과 예제가 있지만 RGB에는 해당 사항이 없습니다.

아무도 도와 줄 수 있습니까?

답변

0

RGB LED는 단일 색상 LED와는 다른 방법으로 인스턴스화해야합니다. 결국 핀이 더 많습니다! 다음 예는 다음과 같습니다

https://github.com/rwaldron/johnny-five/wiki/led.rgbhttp://johnny-five.io/api/led.rgb/에서 RGB LED를 사용하는 문서가있다
var led = new five.Led.RGB([9, 10, 11]); 

. 실제로, 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); 
    } 
    }, ]); 
});