Ардуино как вывести значение в монитор порта
Перейти к содержимому

Ардуино как вывести значение в монитор порта

Ардуино как вывести значение в монитор порта

Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.

What can I do to prevent this in the future?

If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.

If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.

Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store.

Cloudflare Ray ID: 71ac0fb31d0c0662 • Your IP : 82.102.23.104 • Performance & security by Cloudflare

Arduino IDE: Монитор порта

Приветствую всех, сегодня хочу рассказать вам о небольшой подпрограмме или утилите, кому как удобней, под названием «Монитор порта». Если вы уже знакомы с Arduino IDE то вы не раз с ней сталкивались и догадались о чем пойдет речь. Но не торопитесь уходить, вам точно будет что прочесть, так как мы пройдемся от основ до полного разбора ее работы.

И так, «Монитор порта» это небольшая подпрограмма Arduino IDE, предназначенная для приёма-передачи данных из-в Arduino. Ввиду того, что Arduino IDE не имеет никаких средств отладки скетчей, это единственное средство проверить все ли работает верно, и так как надо.

Состоит подпрограмма из одной формы, при запуске, Arduino IDE передает ей номер COM-порта, с которым она должна работать, после чего она пытается с ним соединиться и в случае успеха, начинает прослушивать и выводить на экран всю полученную информацию.

Саму форму «Монитора порта» можно разбить на три части: верхняя, центральная и нижняя.

  1. В верхней части расположено поле ввода, в которое пользователь может вписать те данные, которые он хочет отправить в Arduino. Это может быть как текст, так и цифры (подробнее о формате передачи я расскажу чуть ниже). По кнопке «Отправить» как вы уже догадались, подпрограмма отправляет введённые данные в COM-порт и далее в Arduino.
  2. В центральной же части расположено текстовое поле, в которое выводиться вся информация, полученная из COM-порта, т.е. то, что было отправлено из Arduino.
  3. В нижней части формы, расположены дополнительные настройки, а именно:
  • «Автопрокрутка» — Удобна в том случае, когда вы хотите видеть всегда свежую информацию, полученную из Arduino. Центральная часть автоматически пролистывается в самый низ поля.
  • «Постфикс» — Выпадающий список, в котором можно выбрать один из вариантов постфикса, т.е. когда вы нажимаете кнопку «Отправить» в верхней части формы, к данным которые вы ввели в поле, будут добавлены еще несколько байт, какие читайте ниже.
  • «Скорость» — Выпадающий список, в котором необходимо выбрать скорость передачи данных в бодах.

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

Передача данных из Arduino в «Монитор порта»

Начнем мы с Arduino.

Для того чтобы передать данные из Arduino в «Монитор порта» необходимо в функции setup() проинициализировать класс Serial вызвав его метод begin попутно передав скорость и настройки COM-порта.

  • Где скорость — это скорость передачи данных бод в секунду.
  • В настройках (не обязательный параметр) же указывается, сколько информационных бит в байте, а также количество стоповых бит и добавлять ли бит четности. По умолчанию если не передать настройки (а они нам не нужны в 99.9% случаев), класс Serial возьмёт стандартные настройки, а именно:
  1. Количество информационных бит в байте – 8.
  2. Количество стоповых бит – 1.
  3. Бит четности – Без бита четности.

Что такое стартовый бит, информационный бит, бит четности, почему скорость измеряется в бодах, я расскажу вам в другой статье, иначе переварить такой большой объём информации, а статья получиться не маленькая, будет не просто. Сейчас же мы будем пользоваться стандартными настройками, где скорость равна 9600 бод в секунду, а настройки Arduino будет выбирать автоматически.

Итого у нас получилось следующее:

После того как все готово, отправить данные можно используя методы print и println того же класса Serial.

Таким образом, в мониторе порта мы будем видеть строку, состоящую из двух «Hellow World!» каждую секунду (см. фото выше).

Класс Serial содержит и другие методы для работы с монитором порта, но, как правило, методов print и println достаточно в большинстве случаев.

Получение данных отправленных из «Монитора порта» в Arduino

Теперь мы попробуем получить команды, отправленные из монитора порта в Arduino и использовать их, например, для включения или выключения светодиода.

Поможет нам с этим все тот же класс Serial и его метод readString.

И так по команде «HIGH» мы будем включать светодиод, а по команде «LOW» будем выключать.

Для того чтобы отправить команду, необходимо в поле расположенном в верхней части формы набрать текст, и нажать кнопку «Отправить». Получать команды мы будем при помощи упомянутого метода readString.

Итого у Вас должно получиться следующее.

Вот так, без особых мучений можно создать N-е количество команд и обрабатывать их в Arduino.

Ну а далее о формате передачи данных.

Формат передачи данных

Напоследок, мы поговорим о том, в каком же виде происходит обмен информацией между «Монитором порта» и Arduino. Не смотря на то, какие данные вы передаете из Arduino в монитор порта, все они конвертируются в строку формата ASCII (см. таблицу), то же самое происходит и при отправке данных из монитора порта в Arduino. Т.е. отправив число десять, вы на самом деле отправляете не число, а строку, состоящую из двух символов, символ единицы и символ нуля.

К примеру, отправив один байт равный 128, на самом деле монитор порта получит три байта.

  • Байт 49 – Символ единицы в кодировке ASCII.
  • Байт 50 – Символ двойки.
  • Байт 56 – Символ восьмерки.

При выполнении метода println мы получим и вовсе 5 байт. Где первые три будут описанные выше, а два дополнительных это байт CR (13) и LF(10), означающие перевод на новую строку.

Посмотрев таблицу символов ASCII, многие заметят, что в ней присутствует символы только латиницы, в следствии чего отправив к примеру "Привет мир!", в мониторе порта мы получим какие то кракозябры. Пользуясь случаем хочу прорекламировать альтернативный монитор порта, написанный авторами портала, который понимает не только надписи на Русском, но и на других языках.

И вот теперь прочтя все, что я тут написал, наконец, можно рассказать что такое «Постфикс», выпадающий список в нижней части монитора порта.

Постфикс это байт или байты, в зависимости от того какой пункт вы выбрали, которые будут добавлены к данным которые вы ввели в поле для отправки.

Например, написав в поле для отправки число 128 и нажав на кнопку «Отправить» мы получим следующее:

  • В постфиксе выбрано «Нет конца строки» — Монитор порта отправит только то что было введено в поле для отправки, не добавляя ничего.
  • В постфиксе выбрано «NL (Новая строка)» — Монитор порта отправит то, что было введено в поле для отправки, и добавит байт LF (10).
  • В постфиксе выбрано «CR (Возврат каретки)» — Монитор порта отправит то, что было введено в поле для отправки, и добавит байт CR (10).
  • В постфиксе выбрано «NL & CR» — Монитор порта отправит то, что было введено в поле для отправки, и добавит два байт CR (13) и LF (10).

На этом все. Пишите в комментариях, что вам не понятно, и в новых статьях мы попробуем расписать это более подробно.

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

Arduino IDE : Работа с Serial Monitor

Самой популярной средой разработки для Arduino является официальная программа от итальянских разработчиков — Arduino IDE. Можно конечно использовать и другие программы, например, имеющая обширный функционал, Atmel Studio и другие. Но сегодня мы остановимся на самом оптимальном варианте для начинающих, да и просто для любителей пошаманить долгими вечерами за компьютером, проектируя очередной проект.

Скачать Arduino IDE можно на официальном сайте Arduino, в разделе программное обеспечение. Вы можете скачать любую версию, как самую новую, так и самую старую. Однако, советую также использовать версию 1.6.5 или 1.6.9, поскольку они является одними из самых стабильных и реже выдают ошибки при компиляции, казалось бы, правильно написанного кода.

После успешной установки программы, давайте ознакомимся с ее интерфейсом. Он выполнен в стиле минимализма и довольно прост в понимании, особенно для начинающих.

На верхней панели расположены несколько разделов: файл, инструменты и так далее.

С помощью раздела “Файл” мы можем управлять нашими файлами и скетчами: создавать, открывать, сохранять и распечатать, то есть самые стандартные функции в подобного рода программах. Особое внимание стоит уделить здесь нескольким подразделам.

Функция “Открыть недавние” достаточна полезная, так как поможет вам открыть программные кода, с которыми вы ранее работали, и не придется тратить лишнее время на их поиски. В подразделе “Примеры” содержится огромное множество уже готовые программных кодов (скетчей), взятых на разные направления: механика, мигание светодиодом, циклы, работа с дисплеями и аналоговыми выходами и так далее. При установке новых библиотек в Arduino (для различных модулей и датчиков) число примеров увеличится. Также, эти коды содержат подробные пояснения, и поэтому данный раздел будет очень полезен начинающим, программировать на платформе Ардуино. Еще есть подраздел “Настройки”. В нем стоит обратить внимание на отдельное поле для вставки ссылок, которые позволят загрузить в программу возможность работы с другими платформами и модулями, например с семейством интернет модулей на чипе ESP.

Раздел “Правка” служит для редактирования текста, кода и пояснений для него.

Раздел “Скетч” позволит выполнить различные действия с вашим кодом, например, проверить его (отправить на компиляцию) или загрузить в память вашего устройства.

Раздел “Инструменты” служит для вывода данных с ваших датчиков на компьютер, а также для правильной настройки работы программы с платой.

И также имеется раздел “Помощь”, который, вроде как, должен решать возникающие проблемы при работе с Arduino IDE.

Остановимся подробнее на разделе “Инструменты”. Когда вы подключаете плату к компьютеру, то в этом разделе нужно настроить все необходимые параметры: выбрать в списке предложенных вашу плату, указан номер порта, к которому она подключается (посмотреть номер можно в диспетчере устройств в панели управления компьютера).

Чуть ниже панели с разделами изображены различные иконки. Они служат для более быстрой работы с программой. Первые две отвечают за компиляцию и за загрузку программного кода в плату, а другие три помогают создавать, открывать и сохранять ваши творения.

В данной статье хотелось бы затронуть возможность открытия в программе специального дополнительного окна, на котором будут выводиться значения сигналов и различные данные с датчиков и модулей, подключенных к Ардуино. Называется эта функция Serial Monitor (в русскоязычной версии – монитор порта). Ее, также, можно открыть с помощью сочетания клавиш Ctrl+Shift+M

По сути, это окно отвечает за последовательный порт соединения и служит для принятия или отправки различных данных на этот самый порт. В первом поле вы можете вводить различные значения (отправлять их в порт с помощью кнопки “отправить”) и получать, засчет этого, определенную информацию с Ардуино (если это прописано в вашем коде). Есть также поле для получения данных, а внизу справа можно менять скорость последовательного соединения (измеряется в битах и или в бод на секунду). Чаще всего используется значение в 9600. При использовании монитора порта, смотрите, чтобы скорости передачи данных, одна из которых прописана в скетче, а другая – установлена в самом мониторе порта, совпадали.

Чаще всего для работы с этим окном, используют две функции — Serial.print () и Serial.read(). Первая позволяет отправлять данные через порт последовательного соединения, а вторая – принимать их.

Приведем два кода для работы с монитором порта в Arduino IDE

Управление светодиодом с помощью монитора порта. Суть кода такова, что если мы введем цифру 1 в поле ввода и нажнем “отправить”, то светодиод загорится, если введем 0, то погаснет.

Следующий программный код позволит нам передавать данные из Arduino в Монитор порта, например слово «Amperkot»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *