Я играл с примером контроллера сервоприводов / светодиодов с 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-подключения к моему ноутбуку. То же самое, приводя сервопривод в действие независимо
в) Отключение сервомотора
Я был бы очень признателен, если бы кто-нибудь имел представление о том, что здесь происходит.
Ура!