Последовательная отправка странных данных - PullRequest
0 голосов
/ 27 декабря 2008

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

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

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

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

1 Ответ

1 голос
/ 27 декабря 2008

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

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

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

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

...