Помогите пожалуйста разобраться с проектом. Осваиваю передачу данных по RS485, ни как не могу победить их. Имеется следующая схема (во вложении) Уно является передатчиком, Нано приемником. Какие-то данные передаются, но не те что нужно, какая-то белиберда. Подскажите пожалуйста куда дальше рыть, что я сделал не так? Скетч для Уно: Код (C++): #include <SoftwareSerial.h> SoftwareSerial RS485 (7, 6); #define DIR 13 void setup(){ Serial.begin (9600); RS485.begin (4800); pinMode (DIR, OUTPUT); digitalWrite (DIR, LOW); } void loop(){ digitalWrite(DIR, HIGH); RS485.println(millis()); digitalWrite(DIR, LOW); delay (1000); } Скетч для Нано: Код (C++): #define DIR 8 void setup(){ Serial.begin (4800); pinMode (DIR, OUTPUT); digitalWrite (DIR, LOW); } void loop(){ if (Serial.available()) { Serial.write(Serial.read()); } }
почитайте про rs485. rs485 в вашей системе полудуплексный, т.е. в один момент происходит или только передача или только приём. В rs485 передача происходит сразу по 2ум проводам. + на нано вы не управляете выводом приема/отправки. Как я понял, вы сделали эхо. Уно отправляет, нано принимает, потом на оборот и в конце уно отправляет на пк. должно быть: 1. уно передача - нано прием (пин Dir) 2. уно передаёт - нано ждёт последний символ 3. уно закончило - нано приняло последний символ 4. уно приём - нано передача (пин Dir) 5. уно ждёт последний символ - нано передаёт 6. уно приняло последний символ - нано закончило 7. уно передаёт на пк - нано ждёт 8. goto п.1 "последний символ" это специальный символ, заранее известный, а не с бухты барахты, для человека понятный, последний символ) пункты с 5 по 7 можно изменить, чтобы по приёму уно, уно сразу же отправляло символ на пк. тут, похожая проблема, сегодня же) там я показал как принимать данные. И учтите, что кто-то должен быть slave, а кто-то master, чтобы не было одновременной передачи туда-сюда. Схему не смотрел, только код.
Да хз… Из всех коментов помощи, я не смог понять, что мне нужно сделать, что бы Нано начало принимать корректные значения.
В комментах вам отвечают не то, что вам нужно, потому что вы не правильно задаёте вопрос. См. ссылку в моей подписи. А то с таким отношением и желание отвечать пропадает.
Рано, значит, взялся. НЕ понимаешь ты ничего в интерфейсах. Отладь программу сперва на UART интерфейсе, а уже потом перелезай на RS ...