MATLAB: Использование библиотеки Neopixel для Arduino Uno R3 для управления светодиодом внутри цикла - PullRequest
0 голосов
/ 25 мая 2018

Я использую MATLAB для управления неопиксельной светодиодной лентой, и у меня странное поведение, и я не уверен, в чем может быть проблема.У меня есть следующие две функции:

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

У меня уже есть объект Neopixel с именем neostrip, и я могу управлять светодиодами Neopixel, используя writeColor(neostrip, 1, [1 1 1]); из командной строки, но когда я запускаю свой flicker() функционируют вместо встроенных светодиодов Neopixel, вместо встроенных светодиодов Arduino.

Есть идеи?Кажется, что функция writeColor() отлично работает вне моей функции flicker(), поэтому я не уверен, откуда возникла моя проблема.Я думал, что может быть проблема с передачей по значению или ссылке, но я не уверен, почему код неожиданно исполняется на встроенном светодиоде Arduino, когда writeColor() вызывается внутри моей функции.

1 Ответ

0 голосов
/ 25 мая 2018

Ух ты, это был действительно глупый упущение с моей стороны.Проблема заключалась в том, что моя функция была настроена на включение светодиода, если он был включен, и выключение светодиода, если он был выключен, в результате чего поведение не изменилось.Я не уверен, почему светодиод Arduino мигает, но, по крайней мере, я исправил это, переключив матрицы [1 1 1] и [0 0 0].

...