Я использую 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()
вызывается внутри моей функции.