Страница 1 из 1

Связка ПК-RS485-Arduino

Добавлено: Сб июн 20, 2015 12:48 pm
Zaezd2008
Всем привет. Долго искал инфу на эту тему, но толком ничего нет. Есть примеры реализации с использованием rs485, поделитесь пожалуйста.
Фото взято отсюда http://adatum.ru/podklyuchenie-konverte ... duino.html

Re: Связка ПК-RS485-Arduino

Добавлено: Пн июн 22, 2015 9:35 am
shemnik69
Вам что конкретно нужно?
RS485 это физический протокол обмена информацией по 2 проводам (витая пара). RS232 тоже протокол. Адаптер который на фото это преходник USB (сом) в физический протокол RS485. Чтобы два устройства (не важно компьютер это или 2 ардуино) начали предавать друг другу информацию должен быть определенный прорядок. Одно устройство это мастер, он предает команду и может занимать линию. Второе (или 3-4-N) линию слушаюти отвечают только на запрос. Т.е в Вашей схеме (рисунок) 3 ардуинки это слейвы они просто отвечают на запросы. Примеров кода на подобные задачи в сети масса конкртно под ВАши задачи, типа "вот хочу так" Вы может и не найдете, но сам код мастер-слейв т.е как пример обмена такого добра масса.
Поэтому нужно подробнее рсписать задачи, что нужно делать мастеру (это PC). а что должны делать слейвы (ардуино) .

Re: Связка ПК-RS485-Arduino

Добавлено: Пт июн 26, 2015 3:28 pm
akouz
При использовании RS-485 есть много подводных камней, которые не видны новичкам:

- Передатчики RS-485 довольно мощные. Как правило при коротком замыкании выхода они способны выдавать на выходе ток порядка сто-двести миллиампер. Поэтому надо озаботиться, чтобы два передатчика никогда не были включены одновременно, иначе они устроят друг другу короткое замыкание по выходу. А для того, чтобы передатчики включались в определенном порядке, нужен протокол обмена, который будет определять, кто и когда может "говорить", а кто должен "слушать и помалкивать". Один из популярных протоколов для RS-485 называется Modbus RTU.

- Приемники RS-485 довольно чувствительные. Когда линия связи свободна, т.е. все передатчики выключены, то на линию наводятся помехи, а приемники преобразуют эти помехи в ложные сигналы, которые приходят на вход UART-ов. Поэтому все узлы RS-485 должны быть готовы к тому, что к ним на вход все время приходит какой-то мусор. Они должны уметь отличать мусор от правильных сигналов. Если используется хорошо продуманный протокол обмена, такой как Modbus RTU, там это проблема решена. Если же используется какой-то самопальный протокол, который не может отличаать мусор от полезных сигналов, то необходимо ставить подтягивающие резисторы: одну линию притянуть к +5В резистором 680 Ом, другую линию притянуть к земле резистором 680 Ом. Помехоустойчивость при этом будет хуже, чем при использовании хорошего протокола обмена.

- Если обмен ведется на высокой скорости, то необходимо использовать согласованные линии связи. То есть, использовать витую пару, которая последовательно обходит все узлы. В начале и в конце витой пары надо поставить терминирующие резисторы между линиями, типично по 120 Ом, это предотвратит отражение сигналов от концов витой пары. "Высокая скорость обмена" - эта такая скорость, когда время распространения сигнала из конца в конец линии связи сопоставимо по времени с длительностью битового интервала. Если расстояние всего лишь несколько десятков метров, а бодовая скорость невысокая, десятки килобод - то можно не заморачиваться с терминирующими резисторами.

Re: Связка ПК-RS485-Arduino

Добавлено: Вс июн 28, 2015 12:31 pm
Zaezd2008
Спасибо. Понял что "не все так просто " как хотелось бы

Re: Связка ПК-RS485-Arduino

Добавлено: Вс июн 28, 2015 8:58 pm
aurodionov
Для чего хоть использовать хотели

Отправлено с моего Nexus 5

Re: Связка ПК-RS485-Arduino

Добавлено: Вт июн 30, 2015 2:28 am
akouz
Вот простой самопальный протокол обмена по RS-485 для Ардуино: http://www.gammon.com.au/forum/?id=11428

Помехоустойчивость у него средненькая, защита от помех состот в подтягивающих резисторах и в CRC. Однако для домашней автоматизации вполне подходит.