Странная проблема с последовательным монитором при использовании сервоприводов с Arduino Uno - PullRequest
0 голосов
/ 21 апреля 2019

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

Я был бы очень признателен, если бы кто-нибудь имел представление о том, что здесь происходит. Ура!

1 Ответ

0 голосов
/ 21 апреля 2019

Я полагаю, pos является int. Вы можете привести pos к String, чтобы решить проблему. Попробуйте это.

Serial.println("Position: " + (String)pos);

Или приведите весь вывод в String следующим образом.

Serial.println((String)"Position: " + pos);
...