#serial-port #arduino-uno #servo #arduino-c
#последовательный порт #arduino-uno #сервопривод #arduino-c
Вопрос:
Я играл с примером контроллера сервопривода / светодиодов из 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.print("Position: " pos);
который произвел этот вывод
Position:
Position:
(кажется, выводит «Положение» всякий раз, когда значение равно 0.)
С точки зрения логики, оба должны быть одинаковыми, поэтому я пробовал другие вещи, подозревая какие-то помехи между сервоприводом и последовательной связью с успехом, например:
a) Разные скорости передачи данных (1200, 2400, 9600 до 115200), синхронизирующие код с последовательным монитором. б) Питание Arduino от внешнего источника питания вместо USB-подключения к моему ноутбуку. То же самое при независимом включении сервопривода c) Прямое отключение сервопривода
Я был бы очень признателен, если кто-нибудь имеет представление о том, что здесь происходит. Приветствия!
Ответ №1:
Я предполагаю pos
, что это int. Вы можете преобразовать pos
в строку, чтобы решить проблему. Попробуйте это.
Serial.println("Position: " (String)pos);
Или преобразуйте весь ваш вывод в строку, подобную этой.
Serial.println((String)"Position: " pos);