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

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Ответить
Zaezd2008
Сообщения: 165
Зарегистрирован: Чт ноя 13, 2014 8:56 pm
Благодарил (а): 23 раза
Поблагодарили: 7 раз

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

Сообщение Zaezd2008 » Сб июн 20, 2015 12:48 pm

Всем привет. Долго искал инфу на эту тему, но толком ничего нет. Есть примеры реализации с использованием rs485, поделитесь пожалуйста.
Фото взято отсюда http://adatum.ru/podklyuchenie-konverte ... duino.html
Вложения
test789.jpg
test789.jpg (101.98 КБ) 8376 просмотров
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

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

Сообщение shemnik69 » Пн июн 22, 2015 9:35 am

Вам что конкретно нужно?
RS485 это физический протокол обмена информацией по 2 проводам (витая пара). RS232 тоже протокол. Адаптер который на фото это преходник USB (сом) в физический протокол RS485. Чтобы два устройства (не важно компьютер это или 2 ардуино) начали предавать друг другу информацию должен быть определенный прорядок. Одно устройство это мастер, он предает команду и может занимать линию. Второе (или 3-4-N) линию слушаюти отвечают только на запрос. Т.е в Вашей схеме (рисунок) 3 ардуинки это слейвы они просто отвечают на запросы. Примеров кода на подобные задачи в сети масса конкртно под ВАши задачи, типа "вот хочу так" Вы может и не найдете, но сам код мастер-слейв т.е как пример обмена такого добра масса.
Поэтому нужно подробнее рсписать задачи, что нужно делать мастеру (это PC). а что должны делать слейвы (ардуино) .
akouz
Сообщения: 254
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 6 раз
Поблагодарили: 41 раз

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

Сообщение akouz » Пт июн 26, 2015 3:28 pm

При использовании RS-485 есть много подводных камней, которые не видны новичкам:

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

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

- Если обмен ведется на высокой скорости, то необходимо использовать согласованные линии связи. То есть, использовать витую пару, которая последовательно обходит все узлы. В начале и в конце витой пары надо поставить терминирующие резисторы между линиями, типично по 120 Ом, это предотвратит отражение сигналов от концов витой пары. "Высокая скорость обмена" - эта такая скорость, когда время распространения сигнала из конца в конец линии связи сопоставимо по времени с длительностью битового интервала. Если расстояние всего лишь несколько десятков метров, а бодовая скорость невысокая, десятки килобод - то можно не заморачиваться с терминирующими резисторами.
Zaezd2008
Сообщения: 165
Зарегистрирован: Чт ноя 13, 2014 8:56 pm
Благодарил (а): 23 раза
Поблагодарили: 7 раз

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

Сообщение Zaezd2008 » Вс июн 28, 2015 12:31 pm

Спасибо. Понял что "не все так просто " как хотелось бы
aurodionov
Сообщения: 87
Зарегистрирован: Пн янв 27, 2014 2:50 pm
Откуда: Россия, Тюмень
Благодарил (а): 12 раз
Поблагодарили: 14 раз

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

Сообщение aurodionov » Вс июн 28, 2015 8:58 pm

Для чего хоть использовать хотели

Отправлено с моего Nexus 5
akouz
Сообщения: 254
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 6 раз
Поблагодарили: 41 раз

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

Сообщение akouz » Вт июн 30, 2015 2:28 am

Вот простой самопальный протокол обмена по RS-485 для Ардуино: http://www.gammon.com.au/forum/?id=11428

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