Модуль управления 12 сервомашинками + 4 дискретных выхода et

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

Модератор: immortal

Ответить
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 27 раз

Модуль управления 12 сервомашинками + 4 дискретных выхода et

Сообщение Geban » Вт окт 20, 2015 11:21 am

Исходник для железяки 12 PWM (заточено под модельные сервомашинки) + 4 дискретных выхода. В свое время было достаточно лениво разводить плату, и изобретать modbus tcp под winavr да и нормального TCP/IP стека не найти, а использовать огрызки у которых нет и половины нормального функционала и которые способны переварить один пакет за раз я не хотел.. поэтому выбор пал на платформу Arduino. Да,знаю. гадость... этот птичий язык сводит с ума, но у меня была задача сделать быстро и не сильно напрягаясь. Как макетная плата ардуина вполне себе ничего. вобщем вытащил из ящика Arduino Mega 2560 и Ethernet Shield W5100 и на основе этого за вечер сделал то что мне нужно.
Такой большой проц взял потому что планировал в дальнейшем расширять функционал, в той прошивке что во вложении реализовано следующее: 12 PWM + 4 дискретных выхода + 6 каналов ADC.
Работает на Modbus TCP, при желании можно переделать на rtu что б работало по rs485. Теперь о управлении... никакой всеми любимой вэб морды нет, IP задается в коде, можно использовать DHCP в принципе но это может повлечь за собою определенные трудности. Сервомашинки висят на регистрах 0..11 в режиме х4 (Holding Register). На регистрах 12..17 висят 6 каналов ADC. Дискретные выходы живут в регистрах 0..3 в режиме х15 (Write multiply Coils). В приложенном архиве есть заготовка для Modbus Poll что бы можно было контролить с компа, собственно скеч и все необходимые библиотеки. Каналы ADC с 0 по 5. Сервы подключаются к нижнему ряду нижнего коннектора ардуины (контакты 23, 25, 27, 29, 31, 33. 35, 37, 39. 41, 45), дискретные выходы на контактах 22, 24, 26, 28. Диаппазон значений для серв 0 - 255. 128 - среднее положение вала. Дискретные выходы принимают значения 0 - выкл / 1 - вкл.
P.S
Сервы питать от отдельного стабилизатора 5в.
И надо бы дописать функцию сохранения значений в EEPROM и их загрузки при подаче питания или перезагрузки контроллера.
В данном варианте устройство работает уже больше 2х лет с буферной батареей через диодную вилку. Управляется с ОВЕН ПЛК-150. С МДМ тоже должно работать через модуль modbus
Вложения
12d.rar
(4.67 КБ) 196 скачиваний
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Модуль управления 12 сервомашинками + 4 дискретных выход

Сообщение shemnik69 » Вт окт 20, 2015 7:46 pm

Интересный вариант. По сути Modbus при всей аскетичности может управлять всем или почти всем..
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 27 раз

Re: Модуль управления 12 сервомашинками + 4 дискретных выход

Сообщение Geban » Вт окт 20, 2015 8:06 pm

Ну не зря же он до сих пор применяется в промавтоматике )
Ответить