Arduino:Примеры/Различие между char и int

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Проверка/Оформление/Редактирование: Мякишев Е.А.



Различие между char и int

При приеме/передачи между Arduino и ПК по последовательному порту для представления букв, цифр, символов и управляющих команд используется кодировка ASCII(7-битная кодировка, 128 символов и команд). Поэтому при отправке символа или цифры, например "7" или "C", мы отправляем байт, который ПК представляет как символ.

Таблица символов ASCII
Таблица символов ASCII

Когда вы отправляете с ПК на Arduino какие-то данные(символ или число), вы должны сохранить их в переменную типа char(прочитать байт как символ). И только потом, если вы ожидали число, конвертировать его.

Есть несколько способов отправки числовых данных на Arduino:

  • Сравнение символов. Если вы хотите выполнить какое-либо действие, при получении числа, то можно просто сравнить значения символов.
if(Serial.read() == '1') // одинарные кавычки, говорят о том что это символ, а не цифра  
{
    // выполнение каких либо операторов
}
  • Преобразование входящего байта в целочисленное значение, вычитаем символа '0'. Данный метод можно использовать только для чисел не больше 9.
// Если мы считаем для примера, символ числа '9' (код 57 кодировки ASCII)
// и затем вычтем символ '0' (код 48 кодировки ASCII)
// мы получим символ горизонтальной табуляции с кодом 9 кодировки ASCII
// 57 - 48 = 9
// в целочисленной переменной number сохранится число 9
int number = Serial.read() - '0';
  • Использование функции Serial.parseInt(). Данный метод можно использовать для любых целочисленных значений.
if (Serial.parseInt() == 100) // в данном случае мы сравниваем целочисленные значения
{
    // выполнение каких либо операторов
}

Необходимые компоненты

Монтажная схема

Для данного примера не нужно собирать схему.

См.также

Внешние ссылки