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 обоих устройств, решило проблему. Причем не важно было китайские дуньки или оригинальные..