Arduino:Примеры/MultiSerialMega: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">»)
 
Нет описания правки
 
(не показаны 2 промежуточные версии 1 участника)
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


== Работа с несколькими последовательными портами на Arduino Mega <ref>[http://www.arduino.cc/en/Tutorial/MultiSerialMega Arduino - MultiSerialMega]</ref>==
= Работа с несколькими последовательными портами на Arduino Mega <ref>[http://www.arduino.cc/en/Tutorial/MultiSerialMega Arduino - MultiSerialMega]</ref>=


Иногда одного последовательного порта бывает просто недостаточно. Поэтому, если вы работаете сразу с несколькими устройствами, попутно передавая информацию обратно на '''Serial Monitor''', то пара дополнительных '''RX/TX портов''' может прийтись весьма кстати. В данном примере мы воспользуемся одним из трех вспомогательных последовательных портов платы '''Arduino''', перенаправляя все входящие данные сразу к главной '''TX-линии''', а затем и на '''Serial Monitor'''.
Иногда одного последовательного порта бывает просто недостаточно. Поэтому, если вы работаете сразу с несколькими устройствами, попутно передавая информацию обратно на '''Serial Monitor''', то пара дополнительных '''RX/TX портов''' может прийтись весьма кстати. В данном примере мы воспользуемся одним из трех вспомогательных последовательных портов платы '''Arduino''', перенаправляя все входящие данные сразу к главной '''TX-линии''', а затем и на '''Serial Monitor'''.
Строка 25: Строка 25:
==Код==
==Код==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
/*
/*
   Работа с несколькими последовательными портами на Arduino Mega  
   Работа с несколькими последовательными портами на Arduino Mega  
Строка 65: Строка 65:
</syntaxhighlight>
</syntaxhighlight>


== См.также==
= См.также=


# serial.begin()
# serial.begin()
Строка 78: Строка 78:
# If Statement
# If Statement


==Внешние ссылки==
=Внешние ссылки=


<references />
<references />
{{Навигационная таблица/Портал/Arduino}}
[[Категория:Пример]]
[[Категория:Пример]]
[[Категория:Примеры]]
[[Категория:Примеры]]
[[Категория:Пример программирования Arduino]]
[[Категория:Пример программирования Arduino]]
[[Категория:Примеры программирования Arduino]]
[[Категория:Примеры программирования Arduino]]

Текущая версия от 12:33, 20 мая 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Работа с несколькими последовательными портами на Arduino Mega [1]

Иногда одного последовательного порта бывает просто недостаточно. Поэтому, если вы работаете сразу с несколькими устройствами, попутно передавая информацию обратно на Serial Monitor, то пара дополнительных RX/TX портов может прийтись весьма кстати. В данном примере мы воспользуемся одним из трех вспомогательных последовательных портов платы Arduino, перенаправляя все входящие данные сразу к главной TX-линии, а затем и на Serial Monitor.

Необходимое оборудование

  • Плата Arduino Mega;
  • Одно устройство, умеющее работать с последовательной передачей данных (подойдет Xbee Radio, модуль Bluetooth, RFID-ридер или еще одна Arduino);

Цепь

Для начала ознакомьтесь с техническими данными устройства, которым вы решили воспользоваться в этом примере. Затем убедитесь, что оно правильно подключено и запитано. RX и TX контакты устройства подсоедините к RX и TX контактам Arduino, как показано на схеме ниже. Также убедитесь, что Mega через USB подключена к компьютеру – чтобы можно было запустить последовательную передачу данных.

Схема

Код

/*
  Работа с несколькими последовательными портами на Arduino Mega 
 
 Получает данные от главного последовательного порта, а затем отправляет их к другим. Получает данные от 1-ого последовательного порта, а затем отправляет их на главный (Serial 0) последовательный порт.
 Этот пример работает только с Arduino Mega
 Цепь: 
 * любое устройство, умеющее работать с последовательной передачей данных и подсоединенное к 1-ому последовательному порту
 * окно Serial Monitor открыто на 0-ом последовательном порте
 
 Создан 30 декабря 2008 года,
 модифицирован 20 мая 2012 
 Томом Иго (Tom Igoe) и Джедом Роучем (Jed Roach).
 
 Этот код не защищен авторским правом.
 
 */


void setup() {
  // инициализируем последовательную передачу данных на обоих последовательных портах:
  Serial.begin(9600);
  Serial1.begin(9600);
}

void loop() {
  // считываем данные на 1-ом порте, пересылаем на 0-ой порт:
  if (Serial1.available()) {
    int inByte = Serial1.read();
    Serial.write(inByte); 
  }
  
  // считываем на 0-ом порте, пересылаем на 1-ый порт:
  if (Serial.available()) {
    int inByte = Serial.read();
    Serial1.write(inByte); 
  }
}

См.также

  1. serial.begin()
  2. serial.read()
  3. serial.available()
  4. if()
  5. The Arduino Serial Library
  6. DigitalReadSerial
  7. AnalogReadSerial
  8. Serial Call Response
  9. Serial Call and Response ASCII
  10. If Statement

Внешние ссылки