Для связи микроконтроллера с компьютером чаще всего применяют COM-порт. В этой статье мы покажем, как передать команды управления из компьютера и передать данные с контроллера.
Подготовка к работе
Большинство микроконтроллеров обладают множеством портов ввода-вывода. Для связи с ПК наиболее пригоден из них протокол UART. Это протокол последовательной асинхронной передачи данных. Для его преобразования в интерфейс USB на плате есть конвертор USB-RS232 – FT232RL.
Для выполнения примеров их этой статьи вам будет достаточно только Arduino-совместимая плата. Мы используем EduBoard. Убедитесь, что на вашей плате установлен светодиод, подключенный к 13му выводу и есть кнопка для перезагрузки.
Таблица ASCII
Для примера загрузим на плату код, выводящий таблицу ASCII. ASCII представляет собой кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов.
Переменная symbol хранит код символа. Таблица начинается со значения 33 и заканчивается на 126, поэтому изначально переменной symbol присваивается значение 33.
Arduino урок 1 работа с монитором порта
Для запуска работа порта UART служит функция Serial.begin(). Единственный ее параметр – это скорость. О скорости необходимо договариваться на передающей и приемной стороне заранее, так как протокол передачи асинхронный. В рассматриваемом примере скорость 9600бит/с.
Для записи значения в порт используются три функции:
- Serial.write() – записывает в порт данные в двоичном виде.
- Serial.print() может иметь много значений, но все они служат для вывода информации в удобной для человека форме. Например, если информация, указанная как параметр для передачи, выделена кавычками – терминальная программа выведет ее без изменения. Если вы хотите вывести какое-либо значение в определенной системе исчисления, то необходимо добавить служебное слово: BIN-двоичная, OCT – восьмеричная, DEC – десятичная, HEX – шестнадцатеричная. Например, Serial.print(25,HEX).
- Serial.println() делает то же, что и Serial.print(), но еще переводит строку после вывода информации.
Для проверки работы программы необходимо, чтобы на компьютере была терминальная программа, принимающая данные из COM-порта. В Arduino IDE уже встроена такая. Для ее вызова выберите в меню Сервис->Монитор порта. Окно этой утилиты очень просто:
Теперь нажмите кнопку перезагрузки. МК перезагрузится и выведет таблицу ASCII:
Обратите внимание на вот эту часть кода:
Она останавливает выполнение программы. Если вы ее исключите – таблица будет выводиться бесконечно.
Для закрепления полученных знаний попробуйте написать бесконечный цикл, который будет раз в секунду отправлять в последовательный порт ваше имя. В вывод добавьте номера шагов и не забудьте переводить строку после имени.
Отправка команд с ПК
Прежде чем этим заниматься, необходимо получить представление относительного того, как работает COM-порт.
В первую очередь весь обмен происходит через буфер памяти. То есть когда вы отправляете что-то с ПК устройству, данные помещаются в некоторый специальный раздел памяти. Как только устройство готово – оно вычитывает данные из буфера. Проверить состояние буфера позволяет функция Serial.avaliable(). Эта функция возвращает количество байт в буфере.
Чтобы вычитать эти байты необходимо воспользоваться функцией Serial.read(). Рассмотрим работу этих функций на примере:
После того, как код будет загружен в память микроконтроллера, откройте монитор COM-порта. Введите один символ и нажмите Enter. В поле полученных данных вы увидите: “I received: X”, где вместо X будет введенный вами символ.
Программа бесконечно крутится в основном цикле. В тот момент, когда в порт записывается байт функция Serial.available() принимает значение 1, то есть выполняется условие Serial.available() > 0. Далее функция Serial.read() вычитывает этот байт, тем самым очищая буфер. После чего при помощи уже известных вам функций происходит вывод.
Использование встроенного в Arduino IDE монитора COM-порта имеет некоторые ограничения. При отправке данных из платы в COM-порт вывод можно организовать в произвольном формате. А при отправке из ПК к плате передача символов происходит в соответствии с таблицей ASCII. Это означает, что когда вы вводите, например символ “1”, через COM-порт отправляется в двоичном виде “00110001” (то есть “49” в десятичном виде).
Немного изменим код и проверим это утверждение:
После загрузки, в мониторе порта при отправке “1” вы увидите в ответ: “I received: 110001”. Можете изменить формат вывода и просмотреть, что принимает плата при других символах.
Управление устройством через COM-порт
Очевидно, что по командам с ПК можно управлять любыми функциями микроконтроллера. Загрузите программу, управляющую работой светодиода:
При отправке в COM-порт символа “H” происходит зажигание светодиода на 13ом выводе, а при отправке “L” светодиод будет гаснуть.
Если по результатам приема данных из COM-порта вы хотите, чтобы программа в основном цикле выполняла разные действия, можно выполнять проверку условий в основном цикле. Например:
Если в мониторе порта отправить значение “1” светодиод будет мигать с частотой 5Гц. Если отправить “0” – частота изменится на 1Гц.
Последовательный интерфейс (serial) предназначен передачи данных через универсальный асинхронный порт UART. Порт UART очень часто используется для передачи данных с Ардуино на компьютер, и обратно, а также для связи нескольких плат ардуин между собой.
Для многопортовых DUE/MEGA см. здесь.
Основные функций для работы с последовательным портом (Serial)
Serial.begin(rate) — Открывает последовательный порт и задаёт скорость для последовательной передачи данных. Типичная скорость обмена для компьютерной коммуникации — 9600.
Очевидно, когда задействован последовательный порт, выводы 0 (RX) и 1 (TX) не могут использоваться для других целей.
Serial.println(data) — Передаёт данные в последовательный порт, сопровождая автоматическим возвратом каретки и переходом на новую строку.
Serial.print(data) — тоже самое без возврата каретки и перехода на новую строку.
Serial.begin(скорость_передачи); — Инициализация порта. Задает скорость передачи в битах в секунду. Нормированные скорости: 300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, или 115200.
count = Serial.available(); — Принимаемые по последовательному порту байты попадают в буфер микроконтроллера, откуда Ваша программа может их считать. Функция возвращает количество накопленных в буфере байт. Последовательный буфер может хранить до 128 байт.
char = Serial.read(); — Считывает следующий байт из буфера последовательного порта. возвращает -1 если нет входящих данных
Serial.flush(); — Ожидает окончания передачи исходящих данных (до версии Arduino 1.0 функция очищала буфер последовательного соединения)..
Разные варианты функции print:
Serial.print(b, DEC); — выводит ASCII-строку — десятичное представление числа b.
Serial.print(b, BYTE) — выводит младший байт числа b.
(аналогично HEX, OCT, BIN).
Serial.print(str) // если str — строка или массив символов, побайтно передает str на COM-порт.
Serial.println(); — отличие заключается в том, что после данных дополнительно выводятся два символа – символ возврата каретки (ASCII 13, или ‘
‘) и символ новой линии (ASCII 10, или ‘
‘).
Функция write:
Serial.write(uint8_t c); — Записывает данные в последовательный порт. Данные посылаются как байт или последовательность байт.
Serial.write(val); // где val — переменная для передачи, как единственный байт
Serial.write(str); // где str — строка для передачи, как последовательность байт
Serial.write(buf, len); // где buf — массив для передачи, как последовательность байт; len — длина массива.
Пример 1. Передача данных по Serial-порту с Arduino на компьютер
Инициализация порта со скоростью 9600 бот и передача данных (от Arduino на внешние устройства, например на компьютер):
Пример 2. Передача данных по Serial-порту с компьютера на Arduino
serialEvent() — функция вызывается автоматически, когда поступают данные.
Serial.setTimeout() — задает максимальное время (в мс) для работы Serial.readBytesUntil();
Возможные проблемы
1) auto-reboot DTR : возможна автоперезагрузка МК при передаче на него данных по serial-пору. Чтобы отключить это, надо поставить конденсатор 10мкФ между RES и GND. Я ставил электролитический кондер (естественно, + на RES).
Как соединить две ардуины по UART (serial) порту
Схема соединения двух ардуин:
Длина провода и скорость: RS-232 (англ. Recommended Standard 232) — стандарт физического уровня для асинхронного интерфейса (UART).
Расстояние связи по RS232 максимум 15 метров.
Но всё зависит от скорости.
Работа Arduino MEGA/DUE с несколькими последовательными serial портами
Многопортовые ардуино.
Как вы уже заметили, на ардуиновских платах Mega и Due имеется по 4 последовательных порта, а именно:
Serial — выводы 0 (RX) and 1 (TX);
Serial1 — выводы 19 (RX) and 18 (TX);
Serial2 — выводы 17 (RX) and 16 (TX);
Serial3 — выводы 15 (RX) and 14 (TX).
Естественно, что на Due используется напряжение 3.3 В (на MEGA как обычно 5 В).
Как с ними работать?
Здесь синим цветом выделены собственно имена объектов ( Serial , Serial1 , Serial2 , Serial3 ), которые используются в коде программы для работы с их методами. Всё просто! Например,
Пример вывода на дисплей LCD1602 через последовательный порт UART Arduino из-под Linux средствами языка Python
Короче говоря, есть комп с линуксом, к которому подключена Arduino через USB, а к арудине подключен дисплей LCD1602, и мы хотим на него выводить инфу.
Сначала привожу полный код программы для Arduino UNO, к которой подключен дисплей LCD1602:
Я сделал здесь решетку ‘#’ в качестве символа завершения передачи пакета данных. Как только в потоке данных встречается символ #, данные выводятся на дисплей, и буфер обнуляется, при этом сам символ ‘#’ не выводится. Конечно, можно было бы использовать ‘
‘ или др.
Далее мы напишем скрипт на Python, который будет выводить инфу на дисплей. Я выбрал Python, потому что это прикладной язык и он лучше всего подходит для подобных задач. С такими языками как C++/C# и т.п. больше возни с библиотеками, а здесь всё просто, особенно если это дело происходит под линуксом.
Первым делом устанавливаем необходимые библиотеки (для 2-ой или 3-ей версии python)
$sudo apt-get install python-serial
$sudo apt-get install python3-serial
Далее в интерпретаторе python пишем:
Здесь ардуина у меня подключена к порту /dev/ttyUSB0 — это я узнавал из Arduino IDE. Обычно она всегда на этом порту сидит, если других устройств на последовательный порт не подключено.
Как вы уже догадались, и в первой, и во второй программы должна быть указано одинаковая скорость в бодах. В моем случае это 9600 — стандартная, хотя и маленькая скрость. Может быть и больше (читай выше).
Для связи микроконтроллера с компьютером чаще всего применяют COM-порт. В этой статье мы покажем, как передать команды управления из компьютера и передать данные с контроллера.
Подготовка к работе
Большинство микроконтроллеров обладают множеством портов ввода-вывода. Для связи с ПК наиболее пригоден из них протокол UART. Это протокол последовательной асинхронной передачи данных. Для его преобразования в интерфейс USB на плате есть конвертор USB-RS232 – FT232RL.
Для выполнения примеров их этой статьи вам будет достаточно только Arduino-совместимая плата. Мы используем EduBoard. Убедитесь, что на вашей плате установлен светодиод, подключенный к 13му выводу и есть кнопка для перезагрузки.
Таблица ASCII
Для примера загрузим на плату код, выводящий таблицу ASCII. ASCII представляет собой кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов.
Переменная symbol хранит код символа. Таблица начинается со значения 33 и заканчивается на 126, поэтому изначально переменной symbol присваивается значение 33.
Для запуска работа порта UART служит функция Serial.begin(). Единственный ее параметр – это скорость. О скорости необходимо договариваться на передающей и приемной стороне заранее, так как протокол передачи асинхронный. В рассматриваемом примере скорость 9600бит/с.
Для записи значения в порт используются три функции:
- Serial.write() – записывает в порт данные в двоичном виде.
- Serial.print() может иметь много значений, но все они служат для вывода информации в удобной для человека форме. Например, если информация, указанная как параметр для передачи, выделена кавычками – терминальная программа выведет ее без изменения. Если вы хотите вывести какое-либо значение в определенной системе исчисления, то необходимо добавить служебное слово: BIN-двоичная, OCT – восьмеричная, DEC – десятичная, HEX – шестнадцатеричная. Например, Serial.print(25,HEX).
- Serial.println() делает то же, что и Serial.print(), но еще переводит строку после вывода информации.
Для проверки работы программы необходимо, чтобы на компьютере была терминальная программа, принимающая данные из COM-порта. В Arduino IDE уже встроена такая. Для ее вызова выберите в меню Сервис->Монитор порта. Окно этой утилиты очень просто:
Теперь нажмите кнопку перезагрузки. МК перезагрузится и выведет таблицу ASCII:
Обратите внимание на вот эту часть кода:
Она останавливает выполнение программы. Если вы ее исключите – таблица будет выводиться бесконечно.
Для закрепления полученных знаний попробуйте написать бесконечный цикл, который будет раз в секунду отправлять в последовательный порт ваше имя. В вывод добавьте номера шагов и не забудьте переводить строку после имени.
Отправка команд с ПК
Прежде чем этим заниматься, необходимо получить представление относительного того, как работает COM-порт.
В первую очередь весь обмен происходит через буфер памяти. То есть когда вы отправляете что-то с ПК устройству, данные помещаются в некоторый специальный раздел памяти. Как только устройство готово – оно вычитывает данные из буфера. Проверить состояние буфера позволяет функция Serial.avaliable(). Эта функция возвращает количество байт в буфере.
Чтобы вычитать эти байты необходимо воспользоваться функцией Serial.read(). Рассмотрим работу этих функций на примере:
После того, как код будет загружен в память микроконтроллера, откройте монитор COM-порта. Введите один символ и нажмите Enter. В поле полученных данных вы увидите: “I received: X”, где вместо X будет введенный вами символ.
Программа бесконечно крутится в основном цикле. В тот момент, когда в порт записывается байт функция Serial.available() принимает значение 1, то есть выполняется условие Serial.available() > 0. Далее функция Serial.read() вычитывает этот байт, тем самым очищая буфер. После чего при помощи уже известных вам функций происходит вывод.
Использование встроенного в Arduino IDE монитора COM-порта имеет некоторые ограничения. При отправке данных из платы в COM-порт вывод можно организовать в произвольном формате. А при отправке из ПК к плате передача символов происходит в соответствии с таблицей ASCII. Это означает, что когда вы вводите, например символ “1”, через COM-порт отправляется в двоичном виде “00110001” (то есть “49” в десятичном виде).
Немного изменим код и проверим это утверждение:
После загрузки, в мониторе порта при отправке “1” вы увидите в ответ: “I received: 110001”. Можете изменить формат вывода и просмотреть, что принимает плата при других символах.
Управление устройством через COM-порт
Очевидно, что по командам с ПК можно управлять любыми функциями микроконтроллера. Загрузите программу, управляющую работой светодиода:
При отправке в COM-порт символа “H” происходит зажигание светодиода на 13ом выводе, а при отправке “L” светодиод будет гаснуть.
Если по результатам приема данных из COM-порта вы хотите, чтобы программа в основном цикле выполняла разные действия, можно выполнять проверку условий в основном цикле. Например:
Если в мониторе порта отправить значение “1” светодиод будет мигать с частотой 5Гц. Если отправить “0” – частота изменится на 1Гц.
Источник: auto-technologies.ru
Как Arduino подключить к компьютеру и вывести график температуры.
Для реализации своих задумок, мне нужно с компьютера управлять Arduino. Поэтому стал изучать программы, которые помогут реализовать обмен данных между ПК и Arduino. Сперва начал с самой распространённой программы для данных целей Processing. Сделал программу, которая позволяет управлять реле.
Но когда я приступил к реализации более сложных проектов, столкнулся с проблемой возможности реализации на Processing задуманных функций. Поэтому я стал думать какой язык и IDE будем оптимальным для быстрого освоения и реализации связи Arduino с компьютером. После некоторого времени поисков и тестирования остановился на Visual Studio и языке программирования C#. Первый проект, который я реализовала это подключение Arduino к компьютеру и передача данных с датчика температуры DS18B20.
Visual Studio приложение Windows Forms для получения данных от Arduino.
Первое приложение Visual Studio буду делать Windows Forms C#. Для этого нужно создать новый проект и выбрать язык программирования C#. И соответственно Windows Forms.
Затем с помощью визуального редактора создать интерфейс приложения для получения данных с Arduino. Останавливаться на данном моменте не буду, так как в интернете очень много уроков и достаточно хорошая документация на русском языке, которую можно почитать на официальном сайте или тут.
Также вы можете скачать исходные материалы проекта и приложение в формате .exe внизу статьи в разделе «Файлы для скачивания».
Описание приложения построения графиков по данным с датчика температуры.
Для получения данных с датчика температуры достаточно запустить приложения, для этого откроем файл «Monitor temperature.exe».
При загрузке мы сразу получаем список всех доступных com-портов.
За это отвечает вот этот кусок кода.
Если вы подключили Arduino поле запуска программы и не видите нужный порт для подключения, список портов можно обновить с помощью кнопки «Обновить список портов».
После выбора нужного порта нажимаем кнопку «Подключиться». При подключении увидим, как мигнут светодиоды на плате Arduino. Это означает, что подключение прошло успешно.
Для того чтобы создать обработчик нажатия на кнопку. Кликаем в визуальном редакторе на нужную кнопку два раза и у вас автоматически создастся функция обработки нажатия. Добавляем нужный код. Например, код подключения будет следующим.
Для работы с монитором порта добавим невидимый компонент в проект и назовем его «mySerialPort».
Для получения данных от Arduino добавим функцию «mySerialPort_DataReceived».
В данной функции реализуем считывание полученных данных из порта и выведем температуру в текстовое поле.
А также вывод значений полученных с датчика на график.
Чтобы график был читабельным при получении данных длительное время, сделаем ограничение выводимых значений на график. Для этого создадим еще один выводящий список «comboBox» и пропишем необходимые значения для выбора.
В коде ограничим диапазон в зависимости от выбора «Диапазона времени».
Также сделал вывод текущего времени и даты.
Но это просто как дополнительный параметр, который можно и не выводить в данном проекте.
Кроме этого настроим приложение. Отключил кнопку развернуть на весь экран, и ограничим минимальный и максимальный размер окна. Сейчас окно открывается одного размера, и изменить его нельзя.
Пример изменения диапазона времени на графике.
Давайте подробнее рассмотрим, что такое диапазон времени и как его менять в приложении.
На график значение температуры выводиться по умолчанию 30 секунд. Данное значение мы можем изменить на 60, 90 120 сек. Данные диапазоны задаются в программе и их можно изменить и дополнить.
Изменяя данное значение, например, на 120 сек. На графике будем видеть изменение температуры, уже не 30 сек, а минимум 120 сек. Почему минимум? Это связанно с тем, что сдвиг графика происходит при достижении числа кратного значению 10. И диапазон выводимых значений будет на 9 секунд больше до момента сдвига.
Скетч для Arduino отправки значений температуры в монитор порта.
Измерять температуру будем датчиком DS18B20 выполненного в виде модуля KY-001. По работе с данным модулем у меня есть отдельный урок. Скетч возьмем из урока и немного подправим для нашего проекта.
#include #include // контакт 2 на Arduino: #define ONE_WIRE_BUS 2 // создаем экземпляр класса OneWire, чтобы с его помощью // общаться с однопроводным устройством OneWire oneWire(ONE_WIRE_BUS); // передаем объект oneWire объекту sensors: DallasTemperature sensors( void setup(void) < Serial.begin(9600); // запускаем библиотеку: sensors.begin(); >void loop(void) < // вызываем функцию sensors.requestTemperatures(), // которая приказывает всем устройствам, подключенным к шине sensors.requestTemperatures(); static uint32_t tmr2; if (millis() — tmr2 >1000) < tmr2 = millis(); Serial.println(sensors.getTempCByIndex(0)); // в Цельсиях: >>
Схема подключения модуля KY-001 (DS18B20) к Arduino.
В связи с тем, что будим использовать модуль KY-001 (DS18B20) подключение к Arduino будет достаточно простым и понадобиться всего 3 соединительных провода.
Подведем итог.
Как видим сделать в Visual Studio приложение Windows Forms достаточно просто. А при сочетании с C# возможности взаимодействия Arduino с компьютером становятся достаточно большими. Можно реализовать не только получение данных с Arduino, но и реализовать управление, получая данные с ПК, Интернета и т.д.
Если вам интересны уроки по данной теме, пишите в комментарии. При заинтересованности сделаю блок уроков Visual Studio Arduino.
Понравился проект Пульт для презентаций своими руками на Arduino? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Источник: arduino-tex.ru
Как включить монитор порта в ардуино
Монитор последовательного порта Ардуино встроен в среду Arduino IDE и служит для связи компьютера с контроллером. Рассмотрим, команды для работы с утилитой.
§ Как включить монитор порта Arduino
§ Прием и отправка текста Serial Monitor
§ Вывод текста в Serial Monitor Arduino
§ Перенос строки в Serial Monitor Arduino
§ Вывод переменных в Serial Monitor
§ Табуляция и перенос строк Serial Monitor
Монитор порта Ардуино – это утилита, встроенная в среду программирования Arduino IDE и служит она для связи компьютера с контроллером. С помощью монитора последовательного порта производится отладка прошивки микроконтроллера, получение информации о работе программы и отправка команд к микроконтроллеру по USB. Рассмотрим, как работать с утилитой: выбор скорости обмена информацией, команды в скетче для вывода текста и переменных на Serial Monitor Arduino IDE.
Как включить Serial Monitor Arduino
Утилита состоит из окна, разбитого на три части. В верхней части находится поле ввода, где можно с компьютера отправлять данные в последовательный порт. В центре отображаются данные, полученные из последовательного порта. В нижней части окна — меню настроек. Монитор порта Arduino может работать с одним последовательным портом, чтобы не было ошибки при загрузке скетча и открытии Serial Monitor, необходимо выбрать COM порт на котором определилась плата Arduino UNO.
Для открытия утилиты необходимо нажать на иконку в верхнем правом углу Arduino IDE, использовать комбинацию клавиш Ctrl+Shift+M или выбрать в панели меню: Сервис -> Монитор порта. По умолчанию в Serial Monitor для Ардуино установлена скорость передачи данных 9600 бит в секунду, поэтому во многих скетчах используется такая скорость. Если скорость передачи данных в скетче и в настройках монитора порта будут разные, то вся информация будет отображаться в виде иероглифов.
Как включить монитор порта ардуино: команды, скетч
Прием и отправка текста на монитор порта
Для работы с утилитой, используют следующие команды:
§ Serial.begin(); — команда запускает последовательный порт
§ Serial.end(); — останавливает и очищает последовательный порт
§ Serial.print(); — отправляет данные в последовательный порт
§ Serial.println(); — отправляет данные с переносом строки
§ Serial.read(); — принимает данные из последовательного порта
§ Serial.parseInt(); — чтение больших чисел из монитора порта
Пример 1. Команды для вывода текста
Serial.begin(9600); // подключаем монитор порта
Serial.print(«Start»); // выводим текст на монитор 1 раз
Serial.print(«Hello!»); // выводим текст 1 раз в секунду
delay(1000); // задержка в 1 секунду
Пример 2. Команды с переносом строки
Serial.begin(9600); // подключаем монитор порта
Serial.println(«Start»); // выводим текст на монитор 1 раз
Serial.println(«Hello!»); // выводим текст 1 раз в секунду
delay(1000); // задержка в 1 секунду
Пример 3. Вывод переменных на монитор порта
Serial.begin(9600); // подключаем монитор порта
Serial.println(«Start»); // выводим текст на монитор 1 раз
byte z; // освобождаем память для переменной z
byte x = random(0,10); // генерируем случайное число x
byte y = random(0,10); // генерируем случайное число y
z = x + y; // выполняем операцию сложения
// выводим результаты арифметических операций
delay(1000); // задержка в 1 секунду
Скетч для общения компьютера и Ардуино через Serial Monitor
Для вывода сообщений на мониторе порта можно использовать табуляцию и перенос строк для оформления, чтобы сделать информацию удобной для восприятия.
Монитор порта Ардуино команды
Монитор порта Ардуино – это утилита, встроенная в среду программирования Arduino IDE и служит она для связи компьютера с контроллером. С помощью монитора последовательного порта производится отладка прошивки микроконтроллера, получение информации о работе программы и отправка команд к микроконтроллеру по USB. Рассмотрим, как работать с утилитой: выбор скорости обмена информацией, команды в скетче для вывода текста и переменных на Serial Monitor Arduino IDE.
Как включить Serial Monitor Arduino
Утилита состоит из окна, разбитого на три части. В верхней части находится поле ввода, где можно с компьютера отправлять данные в последовательный порт. В центре отображаются данные, полученные из последовательного порта. В нижней части окна меню настроек. Монитор порта Arduino может работать с одним последовательным портом, чтобы не было ошибки при загрузке скетча и открытии Serial Monitor, необходимо выбрать COM порт на котором определилась плата Arduino UNO.
Для открытия утилиты необходимо нажать на иконку в верхнем правом углу Arduino IDE, использовать комбинацию клавиш Ctrl+Shift+M или выбрать в панели меню: Сервис -> Монитор порта. По умолчанию в Serial Monitor для Ардуино установлена скорость передачи данных 9600 бит в секунду, поэтому во многих скетчах используется такая скорость. Если скорость передачи данных в скетче и в настройках монитора порта будут разные, то вся информация будет отображаться в виде иероглифов.
Прием и отправка текста на монитор порта
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega.
-
Для работы с утилитой, используют следующие команды:
Пример 1. Команды для вывода текста
Пример 2. Команды с переносом строки
Пример 3. Вывод переменных на монитор порта
Скетч для общения компьютера и Ардуино через Serial Monitor
Для вывода сообщений на мониторе порта можно использовать табуляцию и перенос строк для оформления, чтобы сделать информацию удобной для восприятия.
Arduino.ru
Добрый день! Посдкажите пожалуйста как сделать так чтобы данные в мониторе порта обновлялись в одной строке, т.е шла перезапись текущего значения. Делаю вольметр на Arduino. Спасибо!
В Serial Monitore видно «как длинную строка и все цифры сливаются». А если открыть putty счетчик себе аккуртно «тикает» в левом верхнем углу.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ну в мониторе среды ардуино — понятное дело никак, а вообще это уже довно решенный вопрос.
И вместо монитора програмку Putty
Чем больше скорость тем меньше заметно мелькание курсора на экране.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Если не хочется ломать голову по поводу управляющих кодов. То можно готовую либу под ардуину поискать.
Уверен что и другие есть.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Спасибо всем большое!
Сам тоже робовал возврат каретки ‘/r’ только пишет типа ошибка синтаксиса.
Либо получалось выводить все в одну строку. Но такая же абракадабра получается.
Поставлю сторонний терминал
Еще раз спасибо!=)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
может я отстал от жизни
паросвятите заблудшую душу
но с порта в данном случае rs232/usb (неважно) надо производить
4.отображение . в удобном виде . на экране
взрослые и дети для этого специальный exe-шник пишут последние 20 лет
а в чем смыл в терминале таращится и хныкать над тем о чем столько лет с 1970-ого по 1980ый боролись и придумали перевод каретки что-бы . история событий. оставалась
по моемому идиотизмом попахивает
вырываешь старый код
пользуешь несовершенство НЕ перевода строки
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сам тоже робовал возврат каретки ‘/r’ только пишет типа ошибка синтаксиса.
Потому что это ошибка синтаксиса. Вглядывайтесь внимательней в мой возврат карретки и в свой.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А как putty настроить на прослушку COM-порта?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Art100, просвещаю. Вы знаете что такое терминал ? Правильно это хъюманинтерфейс, интерфейс взаимодействия с человеком. Поэтому правильная терминальная программа и правильное с ней взаимодействие позволяет удобно для человек предоставить управление и отобразить индикацию. В данном случае последдовательный интерфейс всег лишь среда передачи и интерфейс управления. И за форматирование отображения отвечает ардуино.
Если же пойти путем который вы считаете единственно правильным, создать прогу для лога и отображения, то это уже будет не терминал, а клиент. И за форматирование отображаемой информации будет отвечать программа принимающая данные.
То и другое имеет право быть. Но в первом случае не нужно написание специального клиента на стороне компа, а можно использовать любой терминальный клиент, кстати такой есть в стандартной поставке виндоуса.
Related posts:
- В чем измеряется диагональ монитора
- Как включить второй монитор windows 10
- Как выбрать второй монитор для компьютера
- Как выключить smartimage на мониторе philips
Источник: www.kak-zarabotat-v-internete.ru