В этом и последующих уроках мы будем говорить об интерфейсах связи Arduino. Их несколько, но начнем мы с Serial интерфейса. Мы его уже использовали прошлых уроках, когда выводили значения с датчиков на экран компьютера. Сегодня мы расширим наши возможности и будем использовать на компьютере показания с датчиков.

В этом уроке используется:

Отличный набор для начинающих: Купить
Arduino Uno: Купить
Arduino Nano: Купить
Arduino Mega: Купить
Потенциометры с колпачками 5 шт: Купить

Serial и processing.

Для начала мы напишем скетч для ардуино, который будет принимать символ через Serial соединение и отправлять его обратно. Это очень просто сделать, но есть один момент с которым может быть загвоздка. Вот этот скетч:

Сначала мы открываем порт на скорости 9600 бод (бит в секунду). Этой скорости достаточно для выполнения большинства задач. Вы можете использовать и другую скорость, но не забудьте поставить такую же скорость на компьютере в мониторе порта.

Потом мы запускаем цикл, который ждет появление данных в Serial. Программа выйдет из этого цикла только когда мы отправим какие то данные. Потом считываем данные и приводим их к типу int,
вычитанием десятичного представления символа «0». И отправляем данные обратно. Данный способ подходит только для тех случаев, когда мы ожидаем получить только одну цифру. При отправке других значений программа будет возвращать не то что мы ожидаем. Можете разобраться с этим используя таблицу кодов символов ASCII:

таблица кодов ascii
таблица кодов ascii

Теперь сделаем кое что посложнее. Сейчас напишем скетч для управления, встроенным в Arduino, светодиодом с компьютера через Serial интерфейс. Этот скетч не намного сложнее предыдущего:

Тут вы не найдете ничего нового, что мы бы не разбирали в этом или прошлых уроках, кроме Serial.flush(). Этот метод очищает оставшиеся символы в буфере памяти, так как мы работаем только с одним символом и остальные нам не нужны. В видео подробно рассказано зачем эта строчка.

А теперь приступим к самому интересному и сложному на сегодня. Теперь мы будем отправлять значения с Ардуино на компьютер и там их использовать. Для обработки получаемых значений на компьютере мы будем использовать Processing. Скачать его можно на официальном сайте.

Схема очень проста. Мы просто подключим потенциометр к аналоговому пину Arduino. Скетч тоже очень прост:

Если вы прошли прошлые уроки, то в этом скетче вам все будет понятно. Если вы что то не знаете или забыли можете посмотреть прошлые уроки или справочник по языку программирования ардуино. А вот и код для Processing:

Описывать этот код я не буду, так как в виде все подробно изложено, да и практически каждая строчка кода пояснена комментарием.

1 КОММЕНТАРИЙ

  1. Не работает Serial.flash(). Вместо одной выходят несколько надписей Invaild. Что делать?

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here