No Image

Шилд для ардуино своими руками

3 просмотров
22 января 2020

Шилд – это плата дополнения. Я предлагаю разделить шилды на полноразмерные и отдельные модули. Полноразмерные своими очертаниями повторяют форму платы Arduino, будь то UNO, Nano или MEGA. Отдельные модули – это платы произвольной формы, созданные для выполнения определенного набора функций. И те и другие могут быть как универсальными, так и для выполнения узконаправленных задач.

В магазинах можно встретить великое множество шилдов, а при определенной квалификации вы сами можете развести печатную плату, по форме и расположению выводов повторяющую ардуину и собрать свой уникальный. На картинке изображена плата Arduino UNO с набором шилдов.

Универсальная плата для удобного макетирования

Начнем с шилда, который не несёт в себе никаких особенных функций, а создан для удобства монтажа ваших проектов. Итак первый в нашем обзоре облегчит монтаж проектов с платой Arduino Nano, правда толку от малых размеров «НАНО» в таком случае ноль.

На плате расположен разъём для подключения штекера от блока пиитания, стабилизатор напряжения, а также клеммные колодки. Они подписаны и соответствуют выводам «Нанки». Кроме того присутствует кнопка «сброс» и светодиод «Питание».

Второй шилд предназначен для платы Uno. На нем расположена беспаечная макетная плата для сборки проекта и выводы, дублирующие те, что на самой ардуине – удобное решение.

Любой аналоговый датчик нуждается в питании и минусовом контакте, когда их много – перемчек становится столько, что разобраться в схеме будет очень трудно. Поэтому конструкторы придумали шилды для таких решений. В них выведены все входы и выходы, а питающие контакты продублированы и размещены рядом.

Вот пример такой платы для Ардуино версии Мега.

Проводная и беспроводная связь

С помощью этих плат можно организовать управление микроконтроллером по сети через кабель Ethernet, например, или беспроводов – через GSM-связь, вставив сим-карту.

Эта плата называется w5100 – содержит Ethernet модуль и модуль SD-кардридера. Это значит, что можно хранить данные, например лог измерений датчиков на карту памяти и управлять системой через web-интерфейс. Чтобы связать с ним ардуино пользуйтесь библиотеками:

Обратите внимание внешне он повторяет концепцию Arduino UNO R3, кроме того, он подойдет и на Mega.

Если W5100 вам кажется слишком крупным – то ENC28J60 займет меньше места. К сожалению в нем уже отсутствует SD-модуль.

Минусом является то, что он не может быть монтирован на плату, а выполнен в виде отдельного модуля.

W5500 – еще один вариант Ethernet-шилда. По своей сути – это доработанная версия W5100, оптимизированная в плане скорости и энергоэффективности.

Обратите внимание, на полноразмерных шилдах все пины дублируются клеммной колодкой. К сожалению, шилды используют порты. Конкретно этот задействует MOSI, MISO, SCK, и пин 10, для сигнала CS (выбор адресата для связи).

Если вам нужна беспроводная связь – ваш выбор это Wi-fi шилды, если есть интернет и роутер, а если этого нет – GSM-модули или GPRS Шилды.

На фото официальный шилд. На нём установлен слот под Micro SD-карту памяти, а связывается с микроконтроллером он по SPI-протоколам, через Mini-USB можно обновлять его программное обеспечение. Поддерживает 802.11b/g.

GPRS-шилд от «Амперки» вы видите выше. Вы можете заменить антенну на более мощную. Ближе к зрителю виден слот для SIM-карты, чуть дальше слот под батарейку CR1225. Батарейка на плате нужна для хота часов реального времени, а это немаловажное дополнение к возможностям GPRS-шилда. Вы можете отправлять СМС на него и с него.

С помощью этой платы можно вести контроль и давать команды своему умному дому (или любому другому проекту вашей реализации) находясь на любом удалении. Важно, чтобы вы находились в зоне приема сотовой связи.

Как хранить данные на Arduino?

В проектах не вся информация помещается в память микроконтроллера. Иногда требуется хранить некоторые объемы информации. Первое, что приходит на ум, уже сказано – это запись информации с датчиков, чтобы в дальнейшем изучать как изменяется окружающая среда с течение часов, дней, лет. Отличным примером является – домашняя метеостанция. Это полезно не только ученым-исследователям, но и любителям для общего образования и развития.

Это скорее не шилд, а модуль. Он миниатюрен и легок для повторению, кстати, вот его схема.

Есть и полноразмерный шилд хранения данных. Работает с SD-картами памяти, на борту есть модуль часов реального времени, которые питаются от батарейки CR1220 напряжением в 3 В, что является неплохим бонусом.

Управляем мощной нагрузкой с микроконтроллера

Первое что может прийти в голову – это реле. С их помощью можно коммутировать как цепи постоянного тока, так и с бытовой электросетью 220 Вольт они справятся на ура.

Конкретно тот модуль что изображен ниже может коммутировать 1 кВт 220 В нагрузки (или 5А) по каждому из каналов, для повышения мощности можно либо запараллелить несколько каналов, либо включать этим реле магнитный пускатель. В таком случае реле со шилда будут играть роль промежуточных усилителей.

Конечно вы можете коммутировать реле так, как я описал в статье «Подключение внешних устройств к Ардуино», через транзистор и подобрать нужно реле по току, но использовать готовую плату будет надежнее, удобнее и выглядит лучше.

У реле есть один недостаток – ограниченное количество срабатываний – это следствие выгорания контактов. Это бывает из-за возникновения дуги, при размыкании мощной нагрузки (особенно индуктивного характера – это двигателя и т.п.). Сделать такой шилд можно по следующей схеме:

А вот как это выглядит в сборе:

Поэму для включения нагрузки переменного тока можно использовать тиристоры и симисторы. Одна проблема – прямо к ардуине подключать их нельзя, при пробое pn- перехода управляющего электрода, 220 В могут оказаться на плате микроконтроллера и сжечь его. Выход из этой ситуации – использования оптосимистора.

Так как это задача часто становится перед изобретателями, было разработано готовое решение – симисторный shield, его полное название – ICStation 8 Channel EL Escudo Dos Shield for Arduino. Он изначально предназначался для управления свечением «гибкого неона».

У него есть 8 каналов, к которым подключается сеть переменного тока и нагрузка.

Шилды для двигателей

Управление электродвигателем не всегда легкий процесс. В некоторых ситуациях вам может не хватить пинов для реализации поставленной задачи, или алгоритм управления достаточно сложный. С такими платами вы гораздо быстрее одолеете проект своего робота.

Мотор-ШИЛД для ардуино может управлять электродвигателями постоянного тока (4 штуки) или двумя шаговыми моторчиками.

Он построен на базе двух L293. Эта микросхема представляет собой сборку из двух H мостов, это позволяет управлять с возможностью реверса двумя ДПТ, либо 1 шаговым биполярным двигателем. Схемы подключения соответсвенно:

А в левом верхнем углу платы есть две колодки под сервоприводы (плюс, минус и управляющий сигнал). Красным кругом обведено место куда устанавливается перемычка джампер. Если она стоит – то эта плата питается от базовой платы ардуино, а если нет – от внешнего источника на 5 В.

С помощью этого модуля от отечественного производителя можно управлять двумя двигателями постоянного тока, в нём тоже есть джампер объединяющий линии питания микроконтроллера или разъединающий их – для питания от отдельного источника.

Можно управлять двигателями, которые рассчитаны на диапазон напряжение от 5 до 24 Вольт. Вместо 2-х DC-моторов можно использовать 1 однофазный шаговый или запараллелить каналы и подключить 1 мощный DC мотор с током до 4А, а это не мало – 48 Вт при напряжении питания в 24 В.

Для подключения сервопривода нужно три провода – плюс, минус и сигнал, но что делать, если у вас много серв? Ваша плата превратится в месиво из перемычек. Чтобы это избежать есть Мультисерво шилд.

Читайте также:  Список команд для клавиатуры

Здесь тоже есть возможность разделения цепей питания, как это было в предыдущем варианте. Итого можно подключить 18 сервоприводов (на плате нумерация от 0 до 17).

Везде есть своя специфика, шилды для необычных задач…

В атмеге328, сердце нашей платы, есть АЦП. Главная проблема в том, что на плате ардуино уно мы видим всего лишь 6 аналоговых входов. Что делать если у нас больше аналоговых датчиков?

Можно собрать две ардуино в единую сеть. Одну использовать в качестве основной, а вторую вспомогательную для изменений и с первой отправлять на сервер сигналы измерений или выводить их на экран… Но это сложно: нужно тратить память на дополнительные строки программного кода для реализации такой системы.

А что если умножить каждый вход на 16? Итого у нас может быть до 16*6=96 аналоговых входов. Это реально с помощью мультиплексора. Он просто переключает по очереди 16 аналоговых каналов на один аналоговый выход, который вы подключаете к такому же входу любого мироконтроллера.

Распознавание голоса

Средствами микроконтроллера Атмега о-о-очень трудно релизовать функцию распознавания голоса, но ардуинщики могут не отчаиваться, есть специальное решение – EasyVR Shield 3.0.

Это готовое, но дорогое решение, на момент написания статьи он стоит почти 100 долларов в России. Сначала шилд запишет вашу команду, затем сравнит её с тем что записано в памяти, определив номер – выполнит её.

Вы можете устроить «диалог с компьютером», он может воспроизводить то, что в нём записано. Без дополнительных усилителей рекомендуется «общаться» с этой платой с расстояния не более 60 см.

Выводим изображение

LCD Keypad shield – это настоящая панель управления. На нём расположен дисплей LCD1602 (16 символов в две строки), и набор кнопок. Из-за них задействовано довольно много портов, например A0 и с D4 по D7 под клавиатуру, а порт D10 – ШИМ-регулятор яркости подсветки. D8 и D9 – сброс и включение.

На самом деле существует много дисплеев совместимых с ардуино. Вернее тех, о которых написано больше всего информации и вы легко их запустите в своей системе. Довольно популярен в кругах самодельщиков дисплей от NOKIA 5110, на выбор есть и OLED и TFT экраны , работающие по I2C. Но они не в «шилдовом» исполнении.

Автономное питание

Довольно необычный шилд в этой подборке, который выполняет обычную задачу. Power shield – это литий-ионный аккумулятор со всеми необходимыми защитами и разъёмом для зарядки. Вроде бы ничего особенного, но это обеспечит завершенный вид вашему проекту, а цепи питания не придется размещать рядом с основными платами.

Заключение

Использование шилдов для всех задач проекта позволит избежать излишнего числа перемычек и соединений, а это снизит количество ошибок и лишних перемычек. После сборки вы получите многоэтажный бутерброд из плат заводского изготовления. Такой подход иногда называют «модульная конструкция». Между прочим, это облегчит обслуживание, ремонт и наладку оборудования.

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

Шилд – это плата дополнения. Я предлагаю разделить шилды на полноразмерные и отдельные модули. Полноразмерные своими очертаниями повторяют форму платы Arduino, будь то UNO, Nano или MEGA. Отдельные модули – это платы произвольной формы, созданные для выполнения определенного набора функций. И те и другие могут быть как универсальными, так и для выполнения узконаправленных задач.

В магазинах можно встретить великое множество шилдов, а при определенной квалификации вы сами можете развести печатную плату, по форме и расположению выводов повторяющую ардуину и собрать свой уникальный. На картинке изображена плата Arduino UNO с набором шилдов.

Универсальная плата для удобного макетирования

Начнем с шилда, который не несёт в себе никаких особенных функций, а создан для удобства монтажа ваших проектов. Итак первый в нашем обзоре облегчит монтаж проектов с платой Arduino Nano, правда толку от малых размеров «НАНО» в таком случае ноль.

На плате расположен разъём для подключения штекера от блока пиитания, стабилизатор напряжения, а также клеммные колодки. Они подписаны и соответствуют выводам «Нанки». Кроме того присутствует кнопка «сброс» и светодиод «Питание».

Второй шилд предназначен для платы Uno. На нем расположена беспаечная макетная плата для сборки проекта и выводы, дублирующие те, что на самой ардуине – удобное решение.

Любой аналоговый датчик нуждается в питании и минусовом контакте, когда их много – перемчек становится столько, что разобраться в схеме будет очень трудно. Поэтому конструкторы придумали шилды для таких решений. В них выведены все входы и выходы, а питающие контакты продублированы и размещены рядом.

Вот пример такой платы для Ардуино версии Мега.

Проводная и беспроводная связь

С помощью этих плат можно организовать управление микроконтроллером по сети через кабель Ethernet, например, или беспроводов – через GSM-связь, вставив сим-карту.

Эта плата называется w5100 – содержит Ethernet модуль и модуль SD-кардридера. Это значит, что можно хранить данные, например лог измерений датчиков на карту памяти и управлять системой через web-интерфейс. Чтобы связать с ним ардуино пользуйтесь библиотеками:

Обратите внимание внешне он повторяет концепцию Arduino UNO R3, кроме того, он подойдет и на Mega.

Если W5100 вам кажется слишком крупным – то ENC28J60 займет меньше места. К сожалению в нем уже отсутствует SD-модуль.

Минусом является то, что он не может быть монтирован на плату, а выполнен в виде отдельного модуля.

W5500 – еще один вариант Ethernet-шилда. По своей сути – это доработанная версия W5100, оптимизированная в плане скорости и энергоэффективности.

Обратите внимание, на полноразмерных шилдах все пины дублируются клеммной колодкой. К сожалению, шилды используют порты. Конкретно этот задействует MOSI, MISO, SCK, и пин 10, для сигнала CS (выбор адресата для связи).

Если вам нужна беспроводная связь – ваш выбор это Wi-fi шилды, если есть интернет и роутер, а если этого нет – GSM-модули или GPRS Шилды.

На фото официальный шилд. На нём установлен слот под Micro SD-карту памяти, а связывается с микроконтроллером он по SPI-протоколам, через Mini-USB можно обновлять его программное обеспечение. Поддерживает 802.11b/g.

GPRS-шилд от «Амперки» вы видите выше. Вы можете заменить антенну на более мощную. Ближе к зрителю виден слот для SIM-карты, чуть дальше слот под батарейку CR1225. Батарейка на плате нужна для хота часов реального времени, а это немаловажное дополнение к возможностям GPRS-шилда. Вы можете отправлять СМС на него и с него.

С помощью этой платы можно вести контроль и давать команды своему умному дому (или любому другому проекту вашей реализации) находясь на любом удалении. Важно, чтобы вы находились в зоне приема сотовой связи.

Как хранить данные на Arduino?

В проектах не вся информация помещается в память микроконтроллера. Иногда требуется хранить некоторые объемы информации. Первое, что приходит на ум, уже сказано – это запись информации с датчиков, чтобы в дальнейшем изучать как изменяется окружающая среда с течение часов, дней, лет. Отличным примером является – домашняя метеостанция. Это полезно не только ученым-исследователям, но и любителям для общего образования и развития.

Это скорее не шилд, а модуль. Он миниатюрен и легок для повторению, кстати, вот его схема.

Читайте также:  Что нужно знать при установке

Есть и полноразмерный шилд хранения данных. Работает с SD-картами памяти, на борту есть модуль часов реального времени, которые питаются от батарейки CR1220 напряжением в 3 В, что является неплохим бонусом.

Управляем мощной нагрузкой с микроконтроллера

Первое что может прийти в голову – это реле. С их помощью можно коммутировать как цепи постоянного тока, так и с бытовой электросетью 220 Вольт они справятся на ура.

Конкретно тот модуль что изображен ниже может коммутировать 1 кВт 220 В нагрузки (или 5А) по каждому из каналов, для повышения мощности можно либо запараллелить несколько каналов, либо включать этим реле магнитный пускатель. В таком случае реле со шилда будут играть роль промежуточных усилителей.

Конечно вы можете коммутировать реле так, как я описал в статье «Подключение внешних устройств к Ардуино», через транзистор и подобрать нужно реле по току, но использовать готовую плату будет надежнее, удобнее и выглядит лучше.

У реле есть один недостаток – ограниченное количество срабатываний – это следствие выгорания контактов. Это бывает из-за возникновения дуги, при размыкании мощной нагрузки (особенно индуктивного характера – это двигателя и т.п.). Сделать такой шилд можно по следующей схеме:

А вот как это выглядит в сборе:

Поэму для включения нагрузки переменного тока можно использовать тиристоры и симисторы. Одна проблема – прямо к ардуине подключать их нельзя, при пробое pn- перехода управляющего электрода, 220 В могут оказаться на плате микроконтроллера и сжечь его. Выход из этой ситуации – использования оптосимистора.

Так как это задача часто становится перед изобретателями, было разработано готовое решение – симисторный shield, его полное название – ICStation 8 Channel EL Escudo Dos Shield for Arduino. Он изначально предназначался для управления свечением «гибкого неона».

У него есть 8 каналов, к которым подключается сеть переменного тока и нагрузка.

Шилды для двигателей

Управление электродвигателем не всегда легкий процесс. В некоторых ситуациях вам может не хватить пинов для реализации поставленной задачи, или алгоритм управления достаточно сложный. С такими платами вы гораздо быстрее одолеете проект своего робота.

Мотор-ШИЛД для ардуино может управлять электродвигателями постоянного тока (4 штуки) или двумя шаговыми моторчиками.

Он построен на базе двух L293. Эта микросхема представляет собой сборку из двух H мостов, это позволяет управлять с возможностью реверса двумя ДПТ, либо 1 шаговым биполярным двигателем. Схемы подключения соответсвенно:

А в левом верхнем углу платы есть две колодки под сервоприводы (плюс, минус и управляющий сигнал). Красным кругом обведено место куда устанавливается перемычка джампер. Если она стоит – то эта плата питается от базовой платы ардуино, а если нет – от внешнего источника на 5 В.

С помощью этого модуля от отечественного производителя можно управлять двумя двигателями постоянного тока, в нём тоже есть джампер объединяющий линии питания микроконтроллера или разъединающий их – для питания от отдельного источника.

Можно управлять двигателями, которые рассчитаны на диапазон напряжение от 5 до 24 Вольт. Вместо 2-х DC-моторов можно использовать 1 однофазный шаговый или запараллелить каналы и подключить 1 мощный DC мотор с током до 4А, а это не мало – 48 Вт при напряжении питания в 24 В.

Для подключения сервопривода нужно три провода – плюс, минус и сигнал, но что делать, если у вас много серв? Ваша плата превратится в месиво из перемычек. Чтобы это избежать есть Мультисерво шилд.

Здесь тоже есть возможность разделения цепей питания, как это было в предыдущем варианте. Итого можно подключить 18 сервоприводов (на плате нумерация от 0 до 17).

Везде есть своя специфика, шилды для необычных задач…

В атмеге328, сердце нашей платы, есть АЦП. Главная проблема в том, что на плате ардуино уно мы видим всего лишь 6 аналоговых входов. Что делать если у нас больше аналоговых датчиков?

Можно собрать две ардуино в единую сеть. Одну использовать в качестве основной, а вторую вспомогательную для изменений и с первой отправлять на сервер сигналы измерений или выводить их на экран… Но это сложно: нужно тратить память на дополнительные строки программного кода для реализации такой системы.

А что если умножить каждый вход на 16? Итого у нас может быть до 16*6=96 аналоговых входов. Это реально с помощью мультиплексора. Он просто переключает по очереди 16 аналоговых каналов на один аналоговый выход, который вы подключаете к такому же входу любого мироконтроллера.

Распознавание голоса

Средствами микроконтроллера Атмега о-о-очень трудно релизовать функцию распознавания голоса, но ардуинщики могут не отчаиваться, есть специальное решение – EasyVR Shield 3.0.

Это готовое, но дорогое решение, на момент написания статьи он стоит почти 100 долларов в России. Сначала шилд запишет вашу команду, затем сравнит её с тем что записано в памяти, определив номер – выполнит её.

Вы можете устроить «диалог с компьютером», он может воспроизводить то, что в нём записано. Без дополнительных усилителей рекомендуется «общаться» с этой платой с расстояния не более 60 см.

Выводим изображение

LCD Keypad shield – это настоящая панель управления. На нём расположен дисплей LCD1602 (16 символов в две строки), и набор кнопок. Из-за них задействовано довольно много портов, например A0 и с D4 по D7 под клавиатуру, а порт D10 – ШИМ-регулятор яркости подсветки. D8 и D9 – сброс и включение.

На самом деле существует много дисплеев совместимых с ардуино. Вернее тех, о которых написано больше всего информации и вы легко их запустите в своей системе. Довольно популярен в кругах самодельщиков дисплей от NOKIA 5110, на выбор есть и OLED и TFT экраны , работающие по I2C. Но они не в «шилдовом» исполнении.

Автономное питание

Довольно необычный шилд в этой подборке, который выполняет обычную задачу. Power shield – это литий-ионный аккумулятор со всеми необходимыми защитами и разъёмом для зарядки. Вроде бы ничего особенного, но это обеспечит завершенный вид вашему проекту, а цепи питания не придется размещать рядом с основными платами.

Заключение

Использование шилдов для всех задач проекта позволит избежать излишнего числа перемычек и соединений, а это снизит количество ошибок и лишних перемычек. После сборки вы получите многоэтажный бутерброд из плат заводского изготовления. Такой подход иногда называют «модульная конструкция». Между прочим, это облегчит обслуживание, ремонт и наладку оборудования.

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


Изначально, я хотел в одной статье изложить весь материал, так сказать, "от идеи до воплощения". Но по мере написания, понял, что будет слишком громоздко. И разбил статью на две части.

Итак, первая часть. Теоретически-макетная 🙂

Я назвал свой «проектик» LOW-COST Motor Shield (или LC-Motor Shield, если сокращенно)! Собирал я его из всякого гов… хлама... из того, что оказалось под руками.

Как правило, все платы управления двигателями на Ардуино так или иначе базируются на пресловутой L293 (ну, или на L298 ). Да, удобно. Минимум обвязки, куча готовых схем. Но, работают они как правило с очень слабыми двигателями (с максимальным током что-то около 0.5 Ампера, для L293). Зачастую, этого недостаточно. Плюс стоимость и доступность (у нас в г. Минске на сегодняшний день на радио рынке купить L293 — можно буквально у 1-2 продавцов и по цене порядка 5 у.е.). Да, готовое изделие на L293 можно купить у братьев-китайцев — меньше чем за 10 у.е. Но, как говорит мой приятель: «Это не наш метод. Мы сделаем сами, пусть по выходу окажется и в два раза дороже!».
Небольшая предыстория. Я уже предпринимал ранее робкие попытки построения некого подобия «motor shield»-а На рассыпухе. Но признаюсь, не совсем удачно 🙂 (Уверен на 90%, что при использовании пары n-p-n и p-n-p все было бы значительно лучше! Но сейчас не об этом). Отложил затею в долгий ящик, но надежду не потерял. И тут волею случая, после модернизации одного магазина (а именно, после замены печатающих устройств с матричных на термо) у меня на руках оказалось несколько матричных принтеров фирмы Epson, модель TM-U210.

Механика разбита в хлам, а вот электроника — оказалось вполне живучей. Вот есть у меня такая привычка, вертеть в руках платы и гуглить разные интересные радиоэлементы.

И тут натыкаюсь на очень необычный элемент STA434A, читаем даташит и… радости нет предела! До боли знакомое сочетание транзисторов. Это же то, что нужно. Ниже кусочки из даташитов на STA434A и L293D.

Читайте также:  Телевизор не открывает жесткий диск


Надеюсь, обратили внимание на некое сходство 🙂 Кстати ниже, типовая схема управления двигателем, в игрушечных машинках (картинку «позаимствовал» в инете).

А не эксклюзив ли эти сборки Дарлингтона? Оказывается, нет. ТУТ можно заказать и по вполне гуманной цене (я так, понимаю, порядка 1.5..2 $). Немного завидую в этом плане россиянам.

_______Этот кусок текста необязателен для прочтения___________
Для солидности статьи, немного теории. (Мало ли, кому-то будет полезно)
Итак. Управление двигателем постоянного тока .

Тут все просто. У коллекторного двигателя два контакта; подал на один "+", а на второй вывод "-" — закрутился моторчик в одну сторону. Поменял полярность — он радостно крутиться в другую сторону. Больше подал напряжение — крутиться быстрее, уменьшил напряжение — скорость вращения уменьшилась. Да не судите строго, за примитивное изложение основ:)
И вот умные люди придумали способ, как управлять этими параметрами: направление вращения и скорость. И называется такой способ «H-Bridge».

Вот его условная схема.

Есть четыре выключателя: S1, S2, S3, S4. Рассмотрим возможные варианты коммутации.
Вполне очевидно, что НИКОГДА. Никогда не должны быть ОДНОВРЕМЕННО включены следующие пары выключателей: S1+S3 и S2+S4, так как при этом мы накоротко соединяем питание и землю, т.е., имеем КЗ.
S1+S2 — двигатель подключается к питанию двумя контактами — мотор окажется закорочен, в этом состоянии вал двигателя интенсивно тормозится. Иными словами, двигатель будет работать в режиме генератора. Чуть-чуть иначе, при варианте S3+S4 (только в этом случае двигатель подключен к земле). Я бы назвал этот вариант — «холостой ход».

Ну и самые полезные варианты: S1+S4. При таком подключении на левый (по рисунку) контакт двигателя подается "+", на правый — "-". Допустим, при этом двигатель будет вращаться по часовой стрелке. В случае S2+S3 — против часовой стрелки. А если при одном из этих двух вариантах коммутации отключать-включать один из выключателей пары — то мы сможем управлять скоростью вращения двигателя. (Иными словами, " шимить " или подавать PWM-сигнал).
Единственное различие между этим простым H-мостом и реальным, является то, что переключатели заменены на транзисторы, для электронного управления двигателем и стыковкой с микроконтроллером.

Фу… как смог, так и преподнес теоретическую часть 🙂 Строго не судите.
_______Тут конец текста необязателеного для прочтения___________

Теперь будем выбирать схему управления. (многие вещи и решения украл… почерпнул из L-Motor Shield )
— Все же попытаемся сделать ее максимально совместимой с Atmega8 (я пользуюсь «самопальной» Ардуиной ). Дело в том, что у 8-ой Аtmeg-и только 3 пина с аппаратным ШИМ-ом.
— Нам нужно минимум два канала для коллекторных двигателей (или один для шагового)
— Постараемся не занимать важные пины
Начались поиски схемы. Достаточно быстро нагуглился один из вариантов.

Вроде как неплохо, однако прикинув детали я понял, что разместить на односторонней плате задуманные два канала, не сильно выступая за габариты Ардуинки, с минимум перемычек, при моей сноровке — вряд ли у меня получится :(.

Не знаю как у Вас, но у меня на работе обычно во время перекуров мы с друзьями обсуждаем всякие свои «поделки» не связанные с работой :). И мой приятель, выслушав мои «терзания», предложил интересный вариант: «Так, а сделай на оптопарах. ». А ведь и действительно, здОровская мысль.


Оптопара (чаще всего, встречается РС817) = светодиод + фототранзистор. Открытие фототранзистора напрямую зависит от степени его освещенности светодиодом. На светодиод нужно подавать постоянное напряжение:
вывод 1 (+ анод), вывод 2 (- катод) и ограничивать ток через него (при подключении к пинам ардуино (+5 Вольт — резистором, порядка 220..500 Ом).
Через фототранзистор ток протекает, как нарисована стрелочка в его обозначении:
от вывода 4 (+ коллектор) к выводу 3 (- эмиттер).

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

Итак, для управления одним двигателем нам нужно три пина. Два задают направление вращения (FWD и REV), а третий (Enable) мы будет использовать для задания скорости. Три вывода — 8 возможных состояний.

вариант «вращение двигателя по часовой стрелке»

Прошу заметить, что в случае подачи «1» на вывод «ENABLE» у нас будет отключаться ключ правой нижней части. И если подавать ШИМ-сигнал — то можно управлять скоростью вращения двигателя.

Аналогично, вариант «вращение двигателя против часовой стрелке»

Случай, если на выводы «FWD» и «REV» подать высокий уровень («1») — открыты ключи левой и правой нижних половинок. В этом случае двигатель находиться в состоянии «холостого хода».

Для остальных случаев, я поленился делать картинки :(, опишу словами… (к сожалению, сделать таблицу у меня не получилось.
FWD–REV–ENABLE
-1—–0——0– Открыты ключи верхней левой и правой нижней части схемы. (ВПЕРЕД!)
-1—–0——1– Отключение нижней правой части. ШИМ на ENABLE — ВПЕРЕД с регулировкой скорости.
-1—–1——0– Включены нижние ключи. Режим «холостого» хода.
-1—–1——1– Все ключи выключены.
-0—–1——0– Открыты ключи нижней левой и правой верхней части схемы. (НАЗАД!)
-0—–1——1– Отключение нижней левой части. ШИМ на ENABLE — НАЗАД с регулировкой скорости.
-0—–0——0– Все ключи выключены.
-0—–0——1– Все ключи выключены.

Самый удобный способ быстрой проверки задуманного решения — сборка на макетке (я встречал другое название этого способа, "Arduino-style" :))

вид сверху

небольшой тестовый скетч:

Убеждаемся, что все работает, так как и задумано. Что не может не радовать!
Ну, теперь ОЧЕНЬ даже реально разместить задуманное на небольшом куске текстолита. При этом, (после примерок и прикидок деталей на листочке) даже остается свободное место. А его мы заполним 5-ти вольтовым стабилизатором для двух сервоприводов. (Прямо, «копейка в копейку» взято из L-Motor Shield). Конечно, количество серв можно было бы увеличить, но мне показалось, что это уже будет лишнее…
На управление одним из двигателей отдаем три пина, два задают направление, третий — скорость. (2,4,9) — один канал, (7,8,10) — второй. Т.е., совместимость с Atmega-8 есть 🙂 Ну, а под сервы отдадим 5 и 6 пин. Тут, уже 8-ая Атмега, к сожалению, «курит в сторонке».
Итак, окончательный вариант схемы LC-Motor Shield v.1.0 ниже…

To be continued… (или по нашему) Продолжение следует.

Комментировать
3 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector