Я играл с примером контроллера сервопривода / светодиодов из https://learn.adafruit.com/multi-tasking-the-arduino-part-1?view=all
В функции обновления для сервопривода я добавил следующее для отладки:
Serial.print("Position: ");
Serial.println(pos);
производство
Position: 180
Position: 90
Position: 0
Position: 90
Position: 180
Position: 90
Position: 0
в качестве вывода в Serial Monitor во время выполнения.
Затем я изменил эти две строки на:
Serial.print("Position: " + pos);
который произвел этот вывод
Position:
Position:
(кажется, печатает "Позиция" всякий раз, когда значение равно 0.)
С логической точки зрения, оба должны быть одинаковыми, поэтому я пробовал другие вещи, подозревая какое-то вмешательство между сервоприводом и последовательной связью без успеха, например:
a) Различные скорости передачи (от 1200, 2400, 9600 до 115200), синхронизация кода с последовательным монитором. б) Питание Arduino от внешнего источника питания вместо USB-подключения к моему ноутбуку. То же самое при независимом питании сервопривода c) Непосредственное отключение сервопривода
Я был бы очень признателен, если бы кто-нибудь имел представление о том, что здесь происходит. Ваше здоровье!