bugfix> matlab > 投稿

私はMATLABを使用してneopixel LEDストリップを制御していますが、奇妙な動作をしており、問題が何であるかわかりません。次の2つの機能があります。

function flicker(neostrip, ledNum, sec)
    if any(neostrip.readColor(ledNum))
        writeColor(neostrip, ledNum, [1 1 1]);
        delay(sec);
    else
        writeColor(neostrip, ledNum, [0 0 0]);
        delay(sec);
    end
end
function delay(seconds)
    % function pause the program
    % seconds = delay time in seconds
    tic;
    while toc < seconds
    end
end

neostrip というNeopixelオブジェクトが既にあります writeColor(neostrip, 1, [1 1 1]); を使用してNeopixel LEDを制御できますコマンドラインから、しかし flicker() を実行すると私のNeopixel LEDではなく、オンボードのArduino LEDがちらつきます。

何か案は?ザ・ writeColor() 関数は私の flicker() の外でうまく動作するようです機能なので、私の問題がどこから来たのか分かりません。値または参照による受け渡しに問題がある可能性があると考えましたが、 writeColor() のときにArduinoの組み込みLEDでコードが突然実行される理由がわかりません関数内で呼び出されます。

回答 1 件
  • うわー、これは実際に私の側の本当に愚かな監視でした。問題は、機能がオンの場合はLEDをオンにし、オフの場合はLEDをオフにするように設定されているため、動作が変わらないことでした。 ArduinoのLEDがちらつく理由はわかりませんが、少なくとも [1 1 1] を切り替えることで修正されました  および [0 0 0]  マトリックス。

あなたの答え