Разные устройства на разных пинах
- Войдите на сайт для отправки комментариев
Пт, 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, на плате куда цеплять то?
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. И.т.д.
Спасибо всем, вроде помогло.