Serial print arduino: Монитор порта, отладка

Учебное пособие по последовательному монитору Arduino

— Pi My Life Up

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

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

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

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

Оборудование

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

Рекомендуется

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

Видео

Если вы хотите посмотреть мое видео о процессе настройки последовательного монитора, то обязательно посмотрите его ниже.

Я прохожу все шаги, чтобы настроить схему, код, а также правильно открыть и использовать окно монитора.

Вы можете ознакомиться с полным письменным руководством прямо под видео.

Adblock удаляет видео? Поддержите нас, подписавшись на наш сервис без рекламы.

Схема для примера

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

Чтобы настроить схему, выполните следующие действия. Если у вас возникли проблемы, обратитесь к электрической схеме.

1. Просто подключите положительный вывод красного светодиода к контакту 2.

2. Затем подключите 100-омный резистор от отрицательного вывода к заземляющей шине Arduino.

Последовательный монитор Arduino Код

Код, который мы будем использовать, прост, его цель — показать основы того, как вы можете использовать последовательный монитор Arduino для просмотра и отправки данных.

Я объясню каждую из строк кода, которые мы используем, и то, как вы можете использовать их в своем следующем проекте для отладки или взаимодействия с Arduino.

Если вы просто хотите сразу загрузить код, вы можете загрузить его с нашего зеркала загрузки или с нашего GitHub.

Для начала мы инициализируем целочисленную переменную для нашего светодиода, это номер вывода, ведущего к светодиоду. Мы также инициализируем переменную с именем count, в ней будет храниться количество времени, в течение которого светодиод включен или выключен.

В функции настройки мы сначала устанавливаем красный светодиод в качестве выхода, чтобы мы могли включать и выключать его.

Затем мы вызываем функцию serial.begin со значением параметра 9600. Значение, которое мы устанавливаем, известно как скорость передачи в битах в секунду ( бод ).

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

Далее ждем инициализации последовательного интерфейса и подключения к компьютеру. Затем мы вызываем функцию Serial.println(). Эта функция позволяет нам печатать строку в последовательный монитор Arduino. Вы заметите, что это напечатает текст, а затем начнется с новой строки для следующего ввода или вывода.

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

Внутри функции цикла у нас есть оператор if, который проверяет, есть ли данные, ожидающие в последовательном буфере; Серийный.доступный “. Проще говоря, мы проверяем, отправили ли мы ему команду. Если есть данные, мы вводим оператор if.

Затем мы создаем переменную с именем « ch » и вызываем « Serial.read() », которая получит данные, ожидающие в данный момент в последовательном буфере. Имейте в виду, что эта функция получит только первый байт данных, поступающих на Arduino. Если вы хотите получить всю строку, вам нужно будет использовать что-то вроде «Серийный.readString «.

Если байт данных равен y или n , мы вводим соответствующий оператор if. Здесь вы заметите, что мы меняем выход светодиодного контакта на высокий или низкий уровень. Затем мы распечатываем серию утверждений.

Здесь следует обратить внимание на две вещи. « Serial.println » распечатает данные и перейдет на новую строку, а « Serial.print » распечатает данные, но останется на той же строке при выводе.

Вы также заметите, что можете печатать переменные, такие как count пример в коде ниже. Это позволит вам отлаживать значения, когда дело доходит до обработки данных.

Наконец, я задерживаю на секунду и добавляю 1 к счету. Этот код просто показывает вам пример добавления данных в переменную, а затем их печати через последовательный вывод.

Когда вы закончите, вы сможете развернуть код на Arduino. В следующей части я покажу вам, как подключать, получать и отправлять данные в Arduino.

Подключение, получение и отправка данных в Arduino

Теперь, когда код загружен в Arduino, нам нужно открыть последовательный монитор Arduino. Это довольно просто, и есть только несколько вариантов, которые мне нужно будет объяснить.

Чтобы открыть последовательный монитор, перейдите к инструментам и выберите последовательный монитор. В качестве альтернативы, CTRL + SHIFT + M также вызовет то же окно. Убедитесь, что вы подключены к Arduino, иначе окно не откроется.

Теперь у вас должно открыться окно, похожее на показанное ниже.

В верхней части этого экрана должна быть область ввода. Здесь вы можете ввести и отправить текст в Arduino. Чтобы отправить текст, который вы набрали, просто нажмите кнопку отправки.

Ниже находится окно вывода, здесь будут отображаться все данные, которые нам присылают. Если вы используете приведенный выше пример кода, вы сможете увидеть текст, который находится в функциях « Serial.println ».

В нижней части экрана у нас есть три разных варианта .

  • Первый не требует пояснений, автоматическая прокрутка отключает и включает автоматическую прокрутку поля вывода.
  • Во-вторых, у нас есть опция окончания строки. Вы можете настроить монитор на автоматическое добавление строки, заканчивающейся после того, что вы вводите/отправляете в Arduino.
  • В-третьих, у нас есть скорость передачи данных, о которой я говорил выше. Убедитесь, что это соответствует тому, что вы установили в коде. Если он отличается от выходного текста, он будет выглядеть как тарабарщина. Если вы получаете ерунду, то это, вероятно, причина этого.

Это в основном все, что вам нужно знать, чтобы понять основы последовательного монитора. Есть еще несколько вещей, о которых вы можете узнать, таких как использование строк через последовательный интерфейс и многое другое, но это, вероятно, все, что вам нужно знать на данный момент.

Я надеюсь, что теперь вы понимаете, как правильно использовать монитор последовательного порта Arduino, и он поможет вам в будущих проектах Arduino. Если вы хотите что-то добавить к этому уроку, обязательно оставьте комментарий ниже.

Использование последовательного монитора — Arduino to Go

Использование последовательного монитора

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

Когда мы открываем последовательный монитор, мы видим окно, в котором отображаются ответы от Arduino. и раскрывающееся меню, которое управляет скоростью передачи данных или скоростью передачи данных между нашим компьютером и Arduino. Как мы уже говорили, скорость передачи — это скорость связи, которую компьютер и Arduino используют для общения друг с другом. По умолчанию скорость передачи вашего последовательного монитора будет установлена ​​на 9600, что соответствует значению, которое мы установили в функции serial.begin() в нашем коде настройки, поэтому вам не нужно вносить какие-либо коррективы.

Arduino и компьютер должны использовать одинаковую скорость передачи данных: значение, установленное в Serial.begin()

Вот как выглядит окно последовательного монитора при запуске этого скетча:

Теперь, когда мы понимаем где найти наш последовательный монитор, мы можем говорить о нашем использовании серийного номера в коде цикла.

Глядя на серийный код

Библиотека Serial имеет 2 функции для отправки информации на наш компьютер: Serial.print() и Serial.println() . Наш скетч использует обе эти функции для форматирования информации на экране компьютера. Серийный код в нашем цикле включает в себя следующие четыре строки:

Все четыре из этих строк кода вместе печатают одну строку в последовательном мониторе, которая включает слова «датчик =», значение нашего датчика, вкладку, текст «output =» и отображаемое значение. Вот пример строки вывода, которую этот код будет отображать в последовательном мониторе.

Отправка слов на последовательный монитор: Строки

Если мы посмотрим на первую строку serial.print, мы увидим слова и кавычки вокруг них. Чтобы отправить слова на наш последовательный монитор, мы используем так называемую строку .

Строка — это представление текста в языке программирования. Любые буквы, цифры или другие буквенно-цифровые символы (включая пробелы и знаки препинания) в нашем коде представлены строками.

Зачем нужны строки? Компьютеры обычно работают только со значением чисел. Иногда вам нужно использовать текст в своем коде, чтобы передавать текстовую информацию или придавать контекст другим данным. Мы увидим, как это работает, когда более внимательно рассмотрим наш код на следующих нескольких страницах.

Как мы используем строки в нашем коде? Мы помещаем кавычек вокруг строки, чтобы идентифицировать ее. Кавычки заключают в себя полную группу символов, включая все буквы, пробелы и знаки препинания.

В нашем коде текст представлен строками. Любой буквенно-цифровой символ, включая пробелы и знаки препинания, представлен строками.

Вывод на последовательный монитор

Теперь более подробно рассмотрим, как каждая строка кода выводится на последовательный монитор. Мы знаем, что любой текст внутри кавычек является строкой и будет представлен как текст. Мы также видим ссылки на наши переменные в коде. Давайте посмотрим, как они работают вместе с Serial.print() 9.0003

Все, что заключено в кавычки, будет напечатано на последовательном мониторе, включая пробелы и знаки пунктуации. вторая строка serial.print() выведет числовое значение переменной sensorValue . Без кавычек Arduino выведет числовое значение, хранящееся в переменной, а не имя переменная

В третьей строке кода последовательного цикла снова используются кавычки, поэтому мы знаем, что собираемся напечатать строку . Однако у нас также есть новый символ: что означает это « \t »? \t сообщает монитору последовательного порта Arduino включить в распечатываемый вывод табуляцию, набор пробелов.

Четвертая строка выводит значение нашей переменной outputValue . Но вместо Serial.print() мы используем Serial.println() , который напечатает разрыв строки. Мы рассмотрим это более подробно на следующей странице.

Помните, что значения для sensorValue и outputValue, которые вы видите на мониторе последовательного порта, будут выглядеть иначе, чем на этом снимке экрана, и будут меняться при повороте потенциометра.

Мы видели, что наша последняя строка последовательного кода использует Serial.println(), а не Serial.print(). Мы узнали, что Serial.println() автоматически добавляет разрыв строки; как это влияет на то, как наш код отображается в мониторе Serial?

Разрыв строки означает, что в следующий раз, когда мы будем печатать что-либо в мониторе последовательного порта (включая следующий раз через код цикла), напечатанная информация о последовательном порте появится на новой строке.

Единственная разница между Serial. print() и Serial.println() заключается в разрыве строки, который упрощает чтение информации в последовательном мониторе.

Serial.println() содержит разрыв строки, что облегчает чтение информации о серийном номере потенциометр.

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

Что означают эти значения и как они соотносятся с шкалами чисел, которые мы рассматривали ранее? Датчик — это значение, полученное путем считывания напряжения (0-5) на контакте A0 и установки его в диапазоне от 0 до 1023 с помощью функции AnalogRead(). output — это значение датчика, преобразованное функцией map() в диапазон от 0 до 255 для использования на выводе 9.

последняя строка кода цикла: delay()

Вот последний шаг в нашем скетче:
5. Подождите некоторое время (2 миллисекунды) перед нашим следующим чтением

Это достигается с помощью одной строки кода, включая функцию delay(), которую мы видели в предыдущих главах.

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

Резюме ATG6_AnalogSerial

Как мы видели, наш код контура считывает аналоговое значение с аналогового входа, масштабирует это значение до меньшего числа, записывает аналоговое значение на вывод PWM и распечатывает результаты со всех этих шагов на наш последовательный монитор, чтобы мы могли видеть, как изменяется значение.

Значение аналогового выхода — любое число от 0 В (выкл.) до 5 В (полностью вкл.) — изменяет яркость нашего светодиода. В промежуточной точке, такой как 3,5 В, светодиод будет менее ярким, чем при 5 В. Что еще мы можем модулировать таким образом? Затем мы подключим динамик и изменим ноты, которые будут звучать более динамично, чем в главе 5.

Вопросы?

В: Существуют ли в библиотеке Serial другие функции, кроме Serial.begin(), Serial.print() и Serial.println()?

A: Да, их довольно много, включая Serial.write() и Serial.read(), которые также используются для связи с нашим компьютером. Мы увидим, как они работают позже.

В: Зачем нам использовать специальный символ «\t» для создания вкладки? Есть ли другие специальные символы, которые мне нужно знать?

A: Использование «\t» значительно упрощает чтение вывода в нашем последовательном мониторе, это единственная причина, по которой мы его используем. Есть много специальных символов: иногда может пригодиться «\n», который создает новую строку. Это форматирует текст аналогично использованию Serial.println(), добавляет разрыв строки

В: Я уже слышал о строках, это способ описания текста в других языках программирования, верно?

A: Да, буквенно-цифровые символы, включая пробелы и знаки пунктуации, во многих языках программирования называются строками.

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

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