Последовательная отправка странных данных

StackOverflow https://stackoverflow.com/questions/394483

  •  23-08-2019
  •  | 
  •  

Вопрос

Итак, я делаю эскиз, который берет двузначное число из USB-порта, проверяет состояние контакта, соответствующего этому номеру, а затем включает/выключает этот контакт.

Взгляните на источник

По какой-то причине, когда я отправляю 13 через последовательный монитор Arduino, я получаю обратно это сообщение: Pin number is greater than 14, details: 490 51 541

Это означает, что IDE отправляет странные числа или Arduino неправильно их обрабатывает.Кто-нибудь из вас видит проблему в том, почему это не работает правильно?

Это было полезно?

Решение

Если вы войдете в ASCII символы «1», затем «3», затем Serial.read() вернет 49 и 51.Это потому, что в ASCII таблица символов «1» и «3» представлена ​​числами 49 и 51 соответственно.Если вы хотите найти число, которое набрал пользователь, вам нужно преобразовать его из ASCII.

Я не очень знаком с языком Arduino, но если предположить, что он похож на C, вы сможете найти необходимые изменения. Здесь.

Я переписал программу по-другому, что может быть яснее Читать.

«0», используемый в источнике, — это просто еще один способ сказать «число, используемое для представления символа «0»», как и 48.В C-подобных языках '0' == 48, '1' == 49, и т.д. и т.п.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top