Управление маломощными двигателями

Хочу представить вам свою скромную работу. Вообще устройство задумывалось для управления двигателями моторизированного объектива посредством подачи команд с компьютера в формате Pelco-d. Кроме удаленного управления по USB/RS-485 есть возможность управления с помощью кнопок на плате. Так же на плате присутствует датчик температуры DS 18B20, который выдает температуру по команде.

В схеме используются драйверы моторов DRV8848. Они могут работать в широком диапозоне напряжений от 4 до 18 вольт и могут выдавать до двух ампер при 12 вольт питания. Само управление построено на Atmega8.

Принципиальная схема

Вот полная схема устройства. Так же будут приведены файлы в pdf и файлы Altium Designer.

Плата со стороны BOT.

Со стороны TOP.

Вот практически готовое устройство. На фото не хватает датчика температуры. Потом  я, конечно, его поставил, но фото забыл сделать.

Вместо микросхемы SN65HVD11DR можно использовать MAX485 или любой аналог, учитывая напряжение питания. У меня оно 3,3 вольта. 

На плате присутствуют 4 резистора с нулевым сопротивлением. Они нужны для выбора источника управления платой. R4/R5 для управления по RS485 — му интерфейсу, а R10/R11 по USB — интерфейсу.

Управление двигателями происходит следующим путем: при поступлении определенной команды, микроконтроллер сначала выдает единицу на один из выходов ENABLE. Это выводит соответствующий драйвер двигателя из спящего состояния. Затем на линии AIN1, AIN2, BIN1, BIN2 выдается команда для вращения в ту или иную стороны обмоток двигателя.

Подробная инструкция изложена отдельным файлом, там все расписано какие команды подавать и для чего.

Плата разведена на четырех слоях, поэтому вручную повторить не выйдет. Но в архиве с файлами есть и готовые гербера для заказа на производство.

Честно говоря с микроконтроллерами раньше я никогда не работал, поэтому сама программа некоторым может показаться весьма корявой.Основную часть логики я писал сам, некоторые куски программы, в частности обработку ds 18b20 были взяты с просторов интернета. 

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U1 ИС RS-422/RS-485 интерфейсов SN65HVD11 1
U2 МК AVR 8-бит ATmega8 1
U3 Датчик температуры DS18B20 1
U4 ИС USB интерфейса FT232BM 1
U5 Линейный регулятор TPS79601 1
U6 Линейный регулятор UA78M33 1
U7-U9 Драйвер моторов DRV8848 3
D1 Выпрямительный диод 1N4002 1
R1, R7 Резистор 560 Ом 2
R3 Резистор 120 Ом 1
R4, R5, R10, R11 Резистор 0 4
C1, C3, C4, C7, C8, C9, C10, C11, C13, C15, C16, C18 Конденсатор 0.1 мкФ 12
C2 Конденсатор 22мкФ 100В 1
C5, C6, C14 Конденсатор 18 пФ 3
C12 Конденсатор 10 нФ 1
C17 Конденсатор 2.2 мкФ 1
C19 Конденсатор 0.33 мкФ 1
R8, R9, R13, R14, R15, R16, R17, R19, R20, R22, R23, R24 Резистор 10 кОм 12
R12 Резистор 4.7 кОм 1
R18 Резистор 51 кОм 1
R21 Резистор 30.1 кОм 1
S1, S2, S3, S4, S5, S6 Кнопка SW-PB 6
SW1 Кнопка INT-1100E 1
Y1 Кварцевый резонатор 9.216 МГц 1