WawGat Nano, Arduino Nano + WavShare 3485/485 некорректный прием
- Войдите на сайт для отправки комментариев
Все доброго времени суток.
Как обычно крутил-вертел но нихренашечки не выходит, может кто добрую мысль кинет?
Есть две Nano, одна WavGat, другая оригинальная Nano (так же есть и мега искра и оригинал.. но все тоже).
Соединяю их по rs485, модули тех же китайцев WavGat - WavShare 3485/485 (модули использовал с промышленным оборудованием, разбирал Modbus - все работает). Есть косяк у китайской наны - при инициализации serial - скорость порта не соответствует указанному, то есть: в скетче 115200 -> с компа присоединятся через USB (в мониторе порта или к примеру RealTerm не важно), то скорость необходимо ставить 57600. И так для всех стандартных boudrate - на "скорость ниже"
Проблема в следующем - принимающая Nano - принимает хрень, а не то что ей отправляю...
SENDER:
#include <SoftwareSerial.h>
#define PIN_RSE 3
#define PIN_DI 8
#define PIN_RO 7
SoftwareSerial RS485Serial(PIN_RO, PIN_DI);
void setup() {
// put your setup code here, to run once:
RS485Serial.begin(19200);
pinMode(PIN_RSE, OUTPUT);
digitalWrite(PIN_RSE, LOW);
Serial.begin(19200);
Serial.println("SENDER MODULE");
}
void loop() {
delay(2000);
digitalWrite(PIN_RSE, HIGH);
delay(10);
Serial.println("a");
RS485Serial.print("a");
delay(10);
digitalWrite(PIN_RSE, LOW);
}RECIVER:
#include <SoftwareSerial.h>
#define PIN_RSE 3
#define PIN_DI 8
#define PIN_RO 7
SoftwareSerial RS485Serial(PIN_RO, PIN_DI);
void setup() {
// put your setup code here, to run once:
RS485Serial.begin(19200);
pinMode(PIN_RSE, OUTPUT);
digitalWrite(PIN_RSE, LOW);
Serial.begin(9600);
Serial.println("RECIVER MODULE");
}
void loop() {
while (RS485Serial.available()){
char RX = RS485Serial.read();
Serial.println(RX);
}
}Результат на приемнике если в HEX прилетает (каждые 2 сек... как и указано на сендере) два бита:
В первую очередь убрать вавгат. Раз говорите есть еще Мега - попробуйте для начала на связке Мега- Нано, чтобы неизвестных в этом пазле было меньше.
И еще - вы там букву "а" отсылаете? - поменяйте ее на F. например, от соблазна
В первую очередь убрать вавгат. Раз говорите есть еще Мега - попробуйте для начала на связке Мега- Нано, чтобы неизвестных в этом пазле было меньше.
И еще - вы там букву "а" отсылаете? - поменяйте ее на F. например, от соблазна
Буква "a" тут так... последняя интерация... изначально вообще 1, 0 и любые до 255 числа слал... один черт прилетает не то... причем пробовал и .print() .write()
Попробую на оригиналах... но и китайцы все таки с некоторыми танцами с бубном работают..
Попробую на оригиналах... но и китайцы все таки с некоторыми танцами с бубном работают..
дело не в оригинале и китайцах, китайцы делают совершенно нормальные платы. Просто Вавгат - исключение, если ты новичок, не бери его, это не совсем ардуино, на нем половина библиотек не работает
В общем все решилось: соединил землю двух устройств, все стало прилетать корректно... Не акцентировал на это внимание, так как ранее подключаясь к устройствам аля пажарки на шине 485.. все было норм... Буду теперь знать.
В общем все решилось: соединил землю двух устройств, все стало прилетать корректно... Не акцентировал на это внимание, так как ранее подключаясь к устройствам аля пажарки на шине 485.. все было норм... Буду теперь знать.
ерунда какая-то, RS485 не требует соединять земли приемника и передатчика.
Или вы про какие-то другие земли говорите?
Или вы про какие-то другие земли говорите?
У меня была такая фигня со счётчиком, который по RS485/modbus работает. Периодически приходили битые пакеты. После соединения по земле все нормализовалось. Он мне ещё пару простых модулей 485 спалить ухитрился.
ерунда какая-то, RS485 не требует соединять земли приемника и передатчика.
Или вы про какие-то другие земли говорите?
Ну вот не ерундой оказалась. Не смогу найти и указать на статью конкретную, но общая земля на шине применяется как один из способов устранения проблем при передаче.. правда на хреновых проводах... + согласование линии резисторами (обычно на концах 120 Oм).. примеры тут https://tula-term.ru/informaciya/stati/rekomendacii-po-proektirovaniyu-montazhu-i-ekspluatacii-sistem-standarta-rs-485/ (Рис. 12б)
Глубоко не разбирался в моем конкретном случае, и поэтому сам не понял изначально почему не работает.. но сам факт соединения GND обоих устройств, решило проблему. Причем не важно было китайские дуньки или оригинальные..