Arduino uno terminal

Содержание

Serial

Description

Used for communication between the Arduino board and a computer or other devices. All Arduino boards have at least one serial port (also known as a UART or USART), and some have several.

Leonardo, Micro, YГєn

Connected to USB

Connected to NINA

SerialUSB (Native USB Port only)

Connected to Programming Port

SerialUSB (Native USB Port only)

On Uno, Nano, Mini, and Mega, pins 0 and 1 are used for communication with the computer. Connecting anything to these pins can interfere with that communication, including causing failed uploads to the board.

You can use the Arduino environment’s built-in serial monitor to communicate with an Arduino board. Click the serial monitor button in the toolbar and select the same baud rate used in the call to begin() .

Serial communication on pins TX/RX uses TTL logic levels (5V or 3.3V depending on the board). Don’t connect these pins directly to an RS232 serial port; they operate at +/- 12V and can damage your Arduino board.

To use these extra serial ports to communicate with your personal computer, you will need an additional USB-to-serial adaptor, as they are not connected to the Mega’s USB-to-serial adaptor. To use them to communicate with an external TTL serial device, connect the TX pin to your device’s RX pin, the RX to your device’s TX pin, and the ground of your Mega to your device’s ground.

Источник

wmarkow/arduino-terminal

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Connect to Arduino from your favourit terminal application and start talking to your embedded application. It has a lot of limitations but it is good enough for a good start.

Follow the below instructions to see how it works:

  • upload your Arduino with an examples/Terminal/Terminal.ino sketch
  • connect to Arduino with your terminal application (minicom or Arduino IDE Serial Port Monitor or whatever)
    • set the following serial communication parameters: 9600 bps, 8N1
    • enable local echo in your terminal application
    • enable adding CR character at the end of every line sent from terminal application
  • after hiting the enter on the keyboard arduino will display a default command prompt arduino$
  • type help and hit enter to get list of available commands (only uptime command is available by default)
  • type uptime and hit enter to see your Arduino’s uptime time in milliseconds
  • type uptime -f and hit enter to print your Arduino’s uptime every second
    • notice that the terminal seems to be locked when uptime command is executed
    • while terminal is locked only current command is being executed
    • to cancel current command type break in the terminal (while uptime result is still being printed to your terminal) and hit enter
  • type asd wich is an unknown command to the terminal: Arduino will display an asd: unknown command warning message

Arduino terminal library is easily to extend. You can implement your own commands just take a look at:

  • src/UptimeCommand.h which give the the clue how the command is declared
  • src/UptimeCommand.cpp which give the the clue how the command is implemented
  • examples/Terminal/Terminal.ino which give the clue how tu construct a terminal class and how to hook the command to it

Remark: this library depends on the arduino-array library.

Источник

Arduino – Serial – последовательный порт

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

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

Arduino UNO имеет один аппаратный последовательный порт, подключенный к порту USB. Arduino MEGA имеет три дополнительных последовательных порта, которые можно использовать для своих целей.

Мы ссылаемся на отдельные последовательные порты через последовательные объекты. Во всех системах Arduino реализован объект Serial, который отвечает за передачу данных через первый доступный последовательный порт. В Arduino MEGA дополнительно реализован Serial1, Serial2, Serial3. Все приведенные ниже примеры для Serial также относятся и к Serial1, Serial2 и Serial3.

Функция Serial.begin()

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

Чтобы установить параметры передачи, мы используем функцию Serial.begin(), которая принимает один или два параметра. Первым параметром является скорость передачи данных, второй параметр – параметр порта. Ниже приведен пример использования метода Serial.begin():
[slh lang=»php»] void setup()
<
Serial.begin(9600);
Serial2.begin(9600); // Только для версии Arduino MEGA
Serial.begin(1440,SERIAL_8N1);
>
[/slh] Как вы можете видеть в приведенном выше примере, мы можем инициализировать последовательный порт, используя один или два аргумента. Если второй аргумент не задан, то система по умолчанию устанавливает значение 8N1 (8 бит данных, без четности, 1 стоповый бит).

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

  • SERIAL_5N1
  • SERIAL_6N1
  • SERIAL_7N1
  • SERIAL_8N1 (по умолчанию)
  • SERIAL_5N2
  • SERIAL_6N2
  • SERIAL_7N2
  • SERIAL_8N2
  • SERIAL_5E1
  • SERIAL_6E1
  • SERIAL_7E1
  • SERIAL_8E1
  • SERIAL_5E2
  • SERIAL_6E2
  • SERIAL_7E2
  • SERIAL_8E2
  • SERIAL_5O1
  • SERIAL_6O1
  • SERIAL_7O1
  • SERIAL_8O1
  • SERIAL_5O2
  • SERIAL_6O2
  • SERIAL_7O2
  • SERIAL_8O2

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

Насколько важно определить параметры и скорость последовательного порта, мы рассмотрим на следующем примере:
[slh lang=»php»] void setup()
<
Serial.begin(9600,SERIAL_7O1);
>
void loop()
<
delay(500);
Serial.println(«test»);
>
[/slh] При запуске терминала Arduino IDE мы увидим, что вместо передаваемого текста «test» мы получим непонятный набор символов. Теперь давайте немного изменим программу:
[slh lang=»php»] void setup()
<
Serial.begin(9600,SERIAL_8N1);
>
void loop()
<
delay(500);
Serial.println(«test»);
>
[/slh] При загрузке исправленного варианта программы в терминале должно отображаться два раза в секунду ожидаемое слово «test».

Теперь измените в терминале скорость передачи данных с 9600 на 19200 бит/с (в правом нижнем углу). Опять же, мы увидим непонятный набор символов вместо «test». Как вы можете видеть, для правильной работы необходима установка идентичных параметров передачи данных.

Функции Serial.print() и Serial.println()

Функция Serial.print() позволяет отправлять информацию через последовательный порт. Можно отправлять как текстовые, так и переменные значения или непосредственно числа. Данные отправляются в кодировке ASCII. Это означает, что число, например, 12, будет отправлено как два символа 1 и 2. Вот типичный синтаксис Serial.print():
[slh lang=»php»] Serial.print(78); // число 78
Serial.print(1.23456); // количество 1.23
Serial.print(‘N’); // символ: N
Serial.print(«Hello world.»); // текст: Hello world.
Serial.print(78, BIN); // двоичное число: 1001110
Serial.print(78, OCT); // исходное восьмеричное число: 116
Serial.print(78, DEC); // десятичное число: 78
Serial.print(78, HEX); // шестнадцатеричное число: 4E
Serial.println(1.23456, 0); // первая цифра: 1
Serial.println(1.23456, 2); // три первые цифры: 1.23
[/slh] Мы отправляем отдельные символы, заключая их в апострофы. Тексты размещаем в двойных кавычках. Числа без кавычек. Можно преобразовать числа в соответствующий формат — по умолчанию установлен десятичный формат.

Вариантом Serial.print() является функция Serial.println(), который отличается добавлением символа конца строки в конце сообщения. В следующем примере показаны различия в использовании этих двух функций:
[slh lang=»php»] Serial.print(‘A’);
Serial.print(‘B’);
Serial.println(‘C’); // ABC
Serial.print(‘D’); // DE
Serial.println(‘E’); // F
Serial.println(‘F’); // G
Serial.print(‘G’);
[/slh]

Функция Serial.write()

В отличие от Serial.print() и Serial.println(), функция Serial.write() позволяет отправлять один байт информации (число). Ниже приведен синтаксис Serial.write():
[slh lang=»php»] Serial.write (число);
Serial.write («текст»);
Serial.write (массив, длина);
[/slh] Примеры использования Serial.write():
[slh lang=»php»] byte a[]=<65,66,67,68,69>;
void setup()
<
Serial.begin(9600);
>
void loop()
<
Serial.print(65); // отправляет в терминал два символа 6 и 5
Serial.write(65); // отправляет в терминал код 65 (буква A в кодировке ASCII)
Serial.write(a,3); // отправляет в терминал коды 65, 66, 67 (A, B, C)
delay(800);
>
[/slh] Как вы можете видеть в данном примере, при отправке числа 65 с помощью Serial.print() в терминале получим два символа 6 и 5, а отправка числа 65 с использованием Serial.write() в терминале будет интерпретироваться как код ASCII 65, т.е «А».

Функция Serial.available()

Функция Serial.available() позволяет проверить, можно ли прочитать данные из последовательного порта. Arduino имеет 64-байтовый буфер последовательного порта. Функция вызывается без параметров, возвращает количество доступных для чтения байт. Serial.available() позволяет исполнить часть программы, которая считывает данные из последовательного порта только при их появлении. Примеры использования Serial.available():
[slh lang=»php»] if(Serial.available())
<
//выполнить, если имеются данные
>
———————————————————
while(!Serial.available()); // ждать данные с последовательного порта
[/slh] В первом примере показано использование условия (if) для проверки доступных данных, и если данные прочитаны, выполняется фрагмент кода. Этот синтаксис, помещенный в функцию loop(), не блокирует его выполнение.

Во втором примере программа будет остановлена ​​до тех пор, пока в буфере не появляться данные, прочитанные из последовательного порта. Ниже приведено практическое использование Serial.available():
[slh lang=»php»] void setup()
<
Serial.begin(9600);
>
void loop()
<
if(Serial.available())
<
int x=Serial.available();
Serial.println(x);
>
delay(80);
>
[/slh] Программа проверяет, поступили ли данные из последовательного порта. Если в буфере содержится информация, то программа проверяет, сколько байтов поступило и отправляет эту информацию на терминал.

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

Функция serialEvent()

Функция serialEvent() — это специальная функция, такая же, как loop() или setup(), которая вызывается в тот момент, когда в буфер последовательного порта попадет информация. Она позволяет выполнять действия независимо от текущего выполнения кода. Как правило, эта функция содержит инструкции для чтения данных из последовательного порта. Пример использования serialEvent() приведен ниже:
[slh lang=»php»] void setup()
<
// предварительные настройки
>
void loop()
<
// код программы
>
void serialEvent()
<
// код для выполнения во время приема данных
>
[/slh]

ВНИМАНИЕ. В соответствии с документацией Arduino данная функция не поддерживается в системах Esplora, Leonardo и Micro.

Источник

Arduino библиотека Serial

Библиотека Serial — это стандартная библиотека, которая подключается в скетчи автоматически. Она используется для передачи данных через последовательный порт Arduino. В большинстве плат ардуино доступен 1 интерфейс Serial. Последовательный порт работает с двумя цифровыми пинами Ардуино 0-ой (RX) и 1-ый (TX). В Arduino Mega таких интерфейсов 3. Для доступа к интерфейсу связи необходимо использовать ключевой слово Serial (Serial1 и Serial2 для Arduino Mega).

Теперь рассмотрим доступные функции библиотеки Serial:

if(Serial)

Условие с проверкой готовности порта к работе. Используется такая конструкция довольно редко, потому что обычно интерфейс доступен.

available()

Проверяет число байтов доступных для считывания. Данная функция показывает какое количество данных уже пришло и хранится в буфере обмена. Размер буфера последовательного порта 64 байта.

Синтаксис

Параметры

Возвращаемые значения

Число байт доступных для чтения

availableForWrite()

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

Синтаксис

Параметры

Возвращаемые значения

Число байт доступных для записи

begin()

Данная функция устанавливает соединение на определенной скорости.

Синтаксис

Параметры

speed — Обязательный параметр. Скорость бит в секунду (бод). Доступные значения: 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 или 115200

config — Необязательный параметр. Задает биты данных, биты четности и стоп-биты. Доступные значения: SERIAL_5N1, SERIAL_6N1, SERIAL_7N1, SERIAL_8N1 (это значение задано по умолчанию), SERIAL_5N2, SERIAL_6N2, SERIAL_7N2, SERIAL_8N2, SERIAL_5E1, SERIAL_6E1, SERIAL_7E1, SERIAL_8E1, SERIAL_5E2, SERIAL_6E2, SERIAL_7E2, SERIAL_8E2, SERIAL_5O1, SERIAL_6O1, SERIAL_7O1, SERIAL_8O1, SERIAL_5O2, SERIAL_6O2, SERIAL_7O2, SERIAL_8O2

Возвращаемые значения

Отключает соединение через последовательный порт и освобождает пины RX и TX.

Синтаксис

Параметры

Возвращаемые значения

Считывает данные из буфера обмена до тех пор пока не найдет заданную строку.

Синтаксис

Параметры

needle — Обязательный параметр. Строка которую нужно найти

Возвращаемые значения

true — Если строка найдена.

false — Если строка не найдена.

findUntil()

Считывает данные из буфера обмена до тех пор пока не найдет заданную строку или терминальную строку.

Синтаксис

Параметры

needle — Обязательный параметр. Строка которую нужно найти

terminal — Обязательный параметр. Терминальная строка которую нужно найти

Возвращаемые значения

true — Если строка найдена.

false — Если строка не найдена.

flush()

Очищает буфер обмена последовательного порта

Синтаксис

Параметры

Возвращаемые значения

parseFloat()

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

Синтаксис

Параметры

Возвращаемые значения

Число с плавающей точкой (float)

parseInt()

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

Синтаксис

Параметры

skipChar — необязательный параметр. Символ который будет пропускаться при поиске

Возвращаемые значения

Целое число (long) или 0, если не найдено цифр.

Возвращает первый байт данных из буфера.

Синтаксис

Параметры

Возвращаемые значения

Первый байт входящих последовательных данных (int). Если данных нет то вернет «-1»

print()

Функция отправляет данные в последовательный порт в виде ASCII-текста.

Синтаксис

Параметры

val — обязательный параметр. Данные, которые необходимо отправить.

format — Необязательный параметр. Форматирует отправляемые данные. Может принимать следующие значения: BIN — Двоичный формат. OCT — Восьмеричный формат. DEC — Десятичный формат HEX — Шестнадцатиричный формат. 0 — Округление числа до целых. 2 — Округление число до сотых.

Возвращаемые значения

Количество записанных байтов (long)

println()

Отправляет данные в виде ASCII-текста в последовательный порт с символом конца строки (\r) и символом новой строки (\n)

Синтаксис

Параметры

val — обязательный параметр. Данные, которые необходимо отправить.

format — Необязательный параметр. Форматирует отправляемые данные. Может принимать следующие значения: BIN — Двоичный формат. OCT — Восьмеричный формат. DEC — Десятичный формат HEX — Шестнадцатиричный формат. 0 — Округление числа до целых. 2 — Округление число до сотых.

Возвращаемые значения

Количество записанных байтов (long)

Считывает данные из последовательного порта.

Синтаксис

Параметры

Возвращаемые значения

Первый доступный байт (int).

readBytes()

Считывает символы из последовательного порта в буфер. Завершает свою работу, если сосчитает данные заданной длины или если выйдет время. Время указывается при помощи функции serial.setTimeout().

Возвращаемое значение — количество символов, помещенных в буфер. Если функция вернет значение «0», это значит, что нужных данных найдено не было.

Синтаксис

Параметры

buffer — буфер, в который будут сохраняться входящие байты (char[] или byte[])

length — количество считанных байтов (int)

Возвращаемые значения

readBytesUntil()

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

Синтаксис

Параметры

character — символ, который нужно найти (char)

buffer — буфер, в который будут сохранены входящие байты (char[] или byte[])

length — количество байтов, которые нужно сосчитать (int)

Возвращаемые значения

readString()

Считывает данные из буфера последовательного порта в строку. Завершает свою работу, если выйдет время. Время указывается в функции Serial.setTimeout().

Синтаксис

Параметры

Возвращаемые значения

Строка с данными, считанными из буфера последовательного порта.

readStringUntil()

Считывает символы из буфера последовательного порта в строку. Завершает свою работу, если наткнется на терминальный символ или если выйдет время. Время указывается в функции Serial.setTimeout().

Синтаксис

Параметры

terminalChar— искомый символ (char)

Возвращаемые значения

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

setTimeout()

Устанавливает время (в миллисекундах), в течение которого функции Serial.readBytesUntil(), Serial.readBytes(), Serial.parseInt() и Serial.parseFloat() должны будут ждать данных, входящих через последовательный порт.

Синтаксис

Параметры

time — время ожидания в миллисекундах (long).

Возвращаемые значения

write()

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

Синтаксис

Параметры

val — значение, строка или буфер для отправки.

len — размер буфера

Возвращаемые значения

Байт или количество отправленных байтов

serialEvent

Автоматически вызывается, когда есть доступные данные. Для захвата этих данных нужно воспользоваться функцией Serial.read().

Синтаксис

Параметры

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

Железо

Это расширенный стартовый набор. В комплект входит Arduino Mega R3, макетные платы, множество датчиков, управляемые механизмы и необходимые радиоэлектронные компоненты. Полный список.

Arduino Uno — плата на базе микроконтроллера ATmega328P с частотой 16 МГц. На плате есть все необходимое для удобной и быстрой работы.

Макетная плата на 830 точек и ничего лишнего.

Источник

Adblock
detector
Board USB CDC name Serial pins Serial1 pins Serial2 pins Serial3 pins