Добрый день уважаемые коллеги. Есть идея соединить 5 Arduin Nano с интерфейсом MAX 485. ----> 1 Arduino Master. -----> 2, 3, 4, Slave (Приемник). Алгоритм работы простой. Мастер опрашивает все слейвы (приемники), А приемники отправляют 4 байта информации. Но столкнулся с рядом проблем. Приемники почему то в первое время работают нормально, а потом отправляют не те байты которые мы должны были получить. Иногда приемники зависают просто не происходит тайм опрос. Расстояния между приемниками и мастером 20-30 см. Внизу есть скетчи мастера и приемника и фото используемого оборудования. Если хоть кто то сталкивался с такой проблемой то прошу помочь. Срочно!!!!!!
на таких расстояниях все должно работать как часы. Скорее всего несинхронизация в переключении 485 шлюзов, например, сразу два встают на передачу. Можете попробовать растяжку, может поможет. И еще бывает что если хоть один 485 чип ёк, то ложится вся сеть. Тут кстати кто-то жаловался - у него съедался первый байт. Подключите к пк через usb интерфейс и терминалом посмотрите, что по шине ходит.
У вас каждый раз читается весь пакет, что будет работать, но не долго. До ближайшей помехи или того, что система распознает за кусок от байта. Рекомендую использовать кольцевой буфер: байты считываются по одному и "пропихивают" друг друга по массиву длиной в ваш пакет. После приема каждого байта массив проверяется на начальный и концевой байт, если все соответствует, то середина то что вам надо. Для пущей надежности можно еще и байт с контрольной сумой приделать. А перед пакетом отправлять незначащий байт, т.к. исследования показали, что иногда он не воспринимается цельно. И еще, между приемом и ответом хорошо бы делать небольшую паузу (для скорости 9600 примерно 2-3 мс, размер 2-3 байт), это позволит дополнительно избавить пакеты от накладок. Ну и проверьте схему соединения шины данных - должна быть прямая линия, никаких перекрестий. У меня в эксперементальном режиме сейчас работает 6 модулей на сегментах метр каждый, один главный, три ведомых и два ведомых ведомых, ну вот так надо. Все хорошо даже без концевых резисторов и притяжек линии к земле и питанию.
Я вот ни как не пойму что такое кольцевой буфер??? И все таки вы не могли бы ваши скетчи мне скинуть???
У меня они довольно большие и заточенные под конкретную задачу, а именно сеть двухуровневая. Если вы с примером не разобрались, то тут еще сложнее. Все таки попробуйте еще раз вникнуть или задать вопрос более конкретный. Или уж написать в ветку "закажу проект".
Что-то я по фотографии не понял - где обвязка михросхемы, где резистор-терминатор, где все остальные резисторы? Вот рабочая схема от ардуино-шилда: