Разные устройства на разных пинах
- Войдите на сайт для отправки комментариев
Пт, 27/12/2019 - 13:26
Доброго дня. Ребята подскажите. Есть Arduino Mega 2560, есть блютуз, если цепляю его порты RXD - на TX любой и соответственно TXD - на RD любой, не работает, если даже назначать через SoftwareSerial. но если указать и вставить пины 50 и 51 ардуинки, все работает. Подскажите как мне задать другие пины для устройства? Чтобы блютуз работал например 40,41 пинах. Спасибо.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(50, 51);
int val; // освобождаем память в контроллере для переменой
void setup() {
Serial.begin(9600); // подключаем последовательный порт
mySerial.begin(9600);
pinMode(13, OUTPUT); // объявляем пин 13 как выход
digitalWrite(13, HIGH);
}
void loop() {
if (mySerial.available()) {
char c = mySerial.read(); // читаем из software-порта
Serial.print(c); // пишем в hardware-порт
}
if (Serial.available()) {
char c = Serial.read(); // читаем из hardware-порта
mySerial.write(c); // пишем в software-порт
}
}
TXD - на RХ любой
А зачем использовать ненадежный Software Serial если у меги есть еще 3 свободных аппаратных UART-а?
Смотри здесь https://www.arduino.cc/en/Reference/softwareSerial раздел Limitations
Но собственно да, а почему не аппаратный?
Нельзя к любым подключать Tx Rx . Надо к конкретным. Из здешнего справочника : Последовательная шина: 0 (RX) и 1 (TX); Последовательная шина 1: 19 (RX) и 18 (TX); Последовательная шина 2: 17 (RX) и 16 (TX); Последовательная шина 3: 15 (RX) и 14 (TX). Выводы используются для получения (RX) и передачи (TX) данных TTL. Выводы 0 и 1 подключены к соответствующим выводам микросхемы последовательной шины ATmega8U2.
Использовать можно хардверные serial2 17 (RX) и 16 (TX); и serial3 15 (RX) и 14 (TX). Про софверные не подскажу.
А зачем использовать ненадежный Software Serial если у меги есть еще 3 свободных аппаратных UART-а?
Хочу понять как это можно сделать?
Какие еще 3?
Нельзя к любым подключать Tx Rx . Надо к конкретным. Из здешнего справочника : Последовательная шина: 0 (RX) и 1 (TX); Последовательная шина 1: 19 (RX) и 18 (TX); Последовательная шина 2: 17 (RX) и 16 (TX); Последовательная шина 3: 15 (RX) и 14 (TX). Выводы используются для получения (RX) и передачи (TX) данных TTL. Выводы 0 и 1 подключены к соответствующим выводам микросхемы последовательной шины ATmega8U2.
Использовать можно хардверные serial2 17 (RX) и 16 (TX); и serial3 15 (RX) и 14 (TX). Про софверные не подскажу.
и на 16,17,18,19 пробовал, не работает.
и на 16,17,18,19 пробовал, не работает.
Код какой был? Такой же как и в начальном посте?
А зачем использовать ненадежный Software Serial если у меги есть еще 3 свободных аппаратных UART-а?
Хочу понять как это можно сделать?
Какие еще 3?
Serial1, Serial2, Serial3
и на 16,17,18,19 пробовал, не работает.
Код какой был? Такой же как и в начальном посте?
да, только менял номера пинов.
Для аппаратных сериал на меге надо использовать
Serial1.begin(38400); Serial2.begin(19200); Serial3.begin(4800); Serial1.println("Hello Serial 1"); Serial2.println("Hello Serial 2"); Serial3.println("Hello Serial 3");Для аппаратных сериал на меге надо использовать
Serial1.begin(38400); Serial2.begin(19200); Serial3.begin(4800); Serial1.println("Hello Serial 1"); Serial2.println("Hello Serial 2"); Serial3.println("Hello Serial 3");Уважаемый что за Serial1, на плате куда цеплять то?
Serial1 куда цеплять
Чото движок форума ссылки с русскими буквами обрабатывает через пень-колоду.
Уважаемый что за Serial1, на плате куда цеплять то?
Так почитай что выше писали -то.
Плата Arduino Mega имеет три дополнительных последовательных порта: Serial1 на портах 19 (RX) и 18 (TX), Serial2 на портах на портах 17 (RX) и 16 (TX), Serial3 на портах на портах 15 (RX) и 14 (TX).
Уважаемый что за Serial1, на плате куда цеплять то?
Так почитай что выше писали -то.
Плата Arduino Mega имеет три дополнительных последовательных порта: Serial1 на портах 19 (RX) и 18 (TX), Serial2 на портах на портах 17 (RX) и 16 (TX), Serial3 на портах на портах 15 (RX) и 14 (TX).
Уважаемый, я пишу, цеплял на эти все пины, не работает, только на 50 и 51 пашет.
Mega
0(RX), 1(TX)
19(RX), 18(TX)
17(RX), 16(TX)
15(RX), 14(TX)
Или к ним нужно обращаться именно так: Serial1, Serial2?
Да, прцепил на пины 18,19 обращаться serial1. И.т.д.
Спасибо всем, вроде помогло.