Добавить в корзинуПозвонить
Найти в Дзене

Разбор простого обучающего кода для Arduino на обмен данными с компьютером

Сегодня разберём код для обучения программирования Arduino с использованием функций Serial. Это основа основ в Ардуинотехнике. Прежние статьи про основы программирования Arduino смотрите в подборке "основы Arduino". Функции: Serial.begin() Инициирует последовательное соединение и задает скорость передачи данных в (1 бод). Для обмена данными с компьютером можно использовать значения: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 или 115200, но я рекомендую использовать именно 9600. Эту функцию нужно писать внутри setup(). Вот так это выглядит в коде: void setup(){ Serial.begin(9600); } void loop(){ } И не забываем написать loop(), который должен быть в каждом скетче (см. прежние статьи). Serial.available() Функция получает количество байт(символов) доступных для чтения из последовательного интерфейса связи. Это те байты которые уже поступили и записаны в буфер последовательного порта. Буфер может хранить до 64 байт. А так как нам нужно принимать данные только
Оглавление

Сегодня разберём код для обучения программирования Arduino с использованием функций Serial. Это основа основ в Ардуинотехнике.

Прежние статьи про основы программирования Arduino смотрите в подборке "основы Arduino".

Функции:

Serial.begin()

Инициирует последовательное соединение и задает скорость передачи данных в (1 бод). Для обмена данными с компьютером можно использовать значения: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 или 115200, но я рекомендую использовать именно 9600.

Эту функцию нужно писать внутри setup().

Вот так это выглядит в коде:

void setup(){

Serial.begin(9600);

}

void loop(){

}

И не забываем написать loop(), который должен быть в каждом скетче (см. прежние статьи).

Serial.available()

Функция получает количество байт(символов) доступных для чтения из последовательного интерфейса связи. Это те байты которые уже поступили и записаны в буфер последовательного порта. Буфер может хранить до 64 байт.

А так как нам нужно принимать данные только тогда, когда они есть, пишем её внутри условия if.

На условие пока что не обращайте внимания, скоро будет статья))

if(Serial.available()>0){

}

Соответственно всё, что относится к работе с данными, должно находиться внутри этого условия.

Serial.print()

Выводит данные на последовательный порт в виде читаемого текста ASCII. Эта команда может принимать различные формы. Числа печатаются с использованием символа ASCII для каждой цифры. Числа с плавающей точкой аналогично печатаются как цифры ASCII, по умолчанию с точностью до двух знаков после запятой. Байты отправляются как один символ. Символы и строки отправляются как есть. Например-

Serial.print(78) выдает 78

Serial.print(1.23456) выдает 1.23

Serial.print(N) выдает N или его значения

Serial.print("Hello world!") выдает Hello, world!

Также есть функция Serial.println(), которая всегда выводит с новой строки.

Serial.parseInt()

Ищет следующее допустимое целое число во входящем последовательном файле.

Serial.parseFloat()

Возвращает первое допустимое число с плавающей запятой из последовательного буфера.

А теперь самое интересное – программируем!

Допустим, нам нужна программа, выполняющая такие функции:

Мы ей отправляем любое целое число от 0 до 1023;

Она возводит его в квадрат и выводит нам результат.

Для диапазона от 0 до 1023 подойдёт переменная типа int.

Назовём её буквой A:

int A = 0;

void setup(){

Serial.begin(9600);

}

void loop(){

if(Serial.available()>0){

A = Serial.parseInt();

Serial.println(A * A)!

}

}

Возведение в n'ную степень числа A есть умножение числа A на само себя n раз. Если n = 2, то есть мы возводим в квадрат, то A² = A × A. В языке C++ знак умножения это " * ".

Получается, наша программа при наличии данных (то есть когда данные больше 0) выделяет из них целые, и выводит квадрат этого числа. Всё просто!

Для введения чисел и получения результата открываем в Arduino IDE монитор порта (в верхнем правом углу), настраиваем скорость передачи 9600, вводим в строку сверху число и нажимаем "отправить" или "Enter". Внизу появится квадрат этого числа!

Спасибо, что дочитали : )

Oleg Arduinych - YouTube