Плата и терминал, вероятно, не используют одинаковую скорость передачи данных. Проверьте нижний правый угол последовательного терминала Arduino и убедитесь, что он установлен на 9600.
Серийные данные
Последовательная связь работает, посылая весь поток данных по одному биту за раз. Это в отличие от стандартного параллельного порта, который отправляет один байт за раз. Оба устройства должны знать, с какой скоростью отправляются данные. Кроме того, оба устройства должны работать с одинаковой скоростью. Это называется скоростью передачи данных.
Скорость передачи
Бод на самом деле просто означает импульсы в секунду. В контексте последовательной связи это означает, сколько битов передается в секунду. Одним из наиболее распространенных значений является 9600, но есть и другие общие значения, которые являются коэффициентами или кратными 9600. Однако это не имеет значения, если оба устройства работают с одинаковой скоростью.
Если я отправляю вам сообщения быстрее, чем вы, вы теряете данные. Если я отправляю вам сообщения медленнее, чем вы их получаете, вы смешиваетесь с тем, что я вам отправил.
Данные, четность, стоп-биты
Если вы посмотрите на документацию begin(), вы увидите, что она может принимать два параметра:
Serial.begin(speed)
Serial.begin(speed, config)
Надеюсь, вы понимаете скорость сейчас, это биты в секунду, с которыми Arduino будет общаться.
Второй параметр, configпозволяет вам настроить некоторые другие параметры последовательной передачи данных. Это данные, четность и стоп-биты. Вы увидите на странице, что она имеет такие значения, как 5N1, 6N1иSERIAL_8N1 (the default)
Первое число представляет, сколько бит данных. Второй символ говорит вам, что это за бит четности. Eдля четного контроля, Oдля нечетного контроля или Nбез контроля. Третье число говорит вам, сколько стоп-битов.
Так что на самом деле, с 8N1 у нас есть 10 битов, отправляемых на каждые 8 битов «ваших» данных. 1 стартовый бит, 8 бит данных и 1 стоповый бит.
В любом случае, обе стороны должны договориться об этой информации, а также о скорости. Серийный терминал Arduino не дает вам возможности изменять эти настройки, но другие делают это, поэтому вы должны быть уверены, что все эти параметры конфигурации одинаковы.
Больше информации на вики: Асинхронная последовательная связь