【问题标题】:MATLAB: Using Neopixel Library for Arduino Uno R3 to control LED inside loopMATLAB:使用 Arduino Uno R3 的 Neopixel 库来控制 LED 内循环
【发布时间】:2018-05-25 00:58:28
【问题描述】:

我正在使用 MATLAB 来控制 neopixel LED 灯条,但我遇到了一些奇怪的行为,我不确定问题可能是什么。我有以下两个功能:

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() 函数时,板载 Arduino LED 会闪烁而不是我的Neopixel LED。

有什么想法吗? writeColor() 函数似乎在我的 flicker() 函数之外工作得很好,所以我不确定我的问题来自哪里。我认为通过值或引用传递可能存在问题,但我不确定为什么在我的函数内部调用 writeColor() 时代码突然在 Arduino 内置 LED 上执行。

【问题讨论】:

    标签: matlab arduino pass-by-reference pass-by-value


    【解决方案1】:

    哇,这实际上是我的一个非常愚蠢的疏忽。问题是我的功能设置为在 LED 开启时打开 LED,如果 LED 关闭则关闭 LED,导致行为没有改变。 我不确定为什么 Arduino LED 会闪烁,但至少我通过切换 [1 1 1][0 0 0] 矩阵解决了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多