L293d драйвера моторов скетч



ДРАЙВЕР ДВИГАТЕЛЕЙ L293D

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

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

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

L293D содержит сразу два драйвера для управления электродвигателями небольшой мощности (четыре независимых канала, объединенных в две пары). Имеет две пары входов для управляющих сигналов и две пары выходов для подключения электромоторов. Кроме того, у L293D есть два входа для включения каждого из драйверов. Эти входы используются для управления скоростью вращения электромоторов с помощью широтно модулированного сигнала (ШИМ).

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

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

К выходам OUTPUT1 и OUTPUT2 подключим электромотор MOTOR1.
На вход ENABLE1, включающий драйвер, подадим сигнал (соединим с положительным полюсом источника питания +5V). Если при этом на входы INPUT1 и INPUT2 не подаются сигналы, то мотор вращаться не будет.

Если вход INPUT1 соединить с положительным полюсом источника питания, а вход INPUT2 — с отрицательным, то мотор начнет вращаться.

Теперь попробуем соединить вход INPUT1 с отрицательным полюсом источника питания, а вход INPUT2 — с положительным. Мотор начнет вращаться в другую сторону.

Попробуем подать сигналы одного уровня сразу на оба управляющих входа INPUT1 и INPUT2 (соединить оба входа с положительным полюсом источника питания или с отрицательным) — мотор вращаться не будет.

Если мы уберем сигнал с входа ENABLE1, то при любых вариантах наличия сигналов на входах INPUT1 и INPUT2 мотор вращаться не будет.

Представить лучше принцип работы драйвера двигателя можно, рассмотрев следующую таблицу:

ENABLE1 INPUT1 INPUT2 OUTPUT1 OUTPUT2
1 0 0 0 0
1 1 0 1 0
1 0 1 0 1
1 1 1 1 1

Теперь рассмотрим назначение выводов микросхемы L293D.

  • Входы ENABLE1 и ENABLE2 отвечают за включение каждого из драйверов, входящих в состав микросхемы.
  • Входы INPUT1 и INPUT2 управляют двигателем, подключенным к выходам OUTPUT1 и OUTPUT2.
  • Входы INPUT3 и INPUT4 управляют двигателем, подключенным к выходам OUTPUT3 и OUTPUT4.
  • Контакт Vs соединяют с положительным полюсом источника электропитания двигателей или просто с положительным полюсом питания, если питание схемы и двигателей единое. Проще говоря, этот контакт отвечает за питание электродвигателей.
  • Контакт Vss соединяют с положительным полюсом источника питания. Этот контакт обеспечивает питание самой микросхемы.
  • Четыре контакта GND соединяют с «землей» (общим проводом или отрицательным полюсом источника питания). Кроме того, с помощью этих контактов обычно обеспечивают теплоотвод от микросхемы, поэтому их лучше всего распаивать на достаточно широкую контактную площадку.

Характеристики микросхемы L293D

  • напряжение питания двигателей (Vs) — 4,5. 36V
  • напряжение питания микросхемы (Vss) — 5V
  • допустимый ток нагрузки — 600mA (на каждый канал)
  • пиковый (максимальный) ток на выходе — 1,2A (на каждый канал)
  • логический «0» входного напряжения — до 1,5V
  • логическая «1» входного напряжения — 2,3. 7V
  • скорость переключений до 5 kHz.
  • защита от перегрева

Примечание:
Об особенностях L293DNE — аналога микросхемы L293D — см. врезку в статье «Как сделать простейшего робота».

Источник

Подключение Motor Shield L293D к плате Arduino и управление электромоторами

Доброго времени суток, читатели нашего сайта. Сегодня мы с вами познакомимся с очень интересным и полезным устройством, которое называется Motor Shield L293D. С помощью этого чуда вы сможете управлять электродвигателями, сервоприводами, а в перспективе сделать свой крутой проект. На мой взгляд, это один из самых нужных шилдов, которые существуют на сегодняшний день. Чтобы практически познакомиться с ним, мы будем использовать электродвигатель, а если точнее, будем управлять скоростью и направлением его движения. Ну что ж, перейдем, непосредственно, от слов к делу.

Чем эта статья может быть вам полезна

Целью статьи является научиться практически, связывая Motor Shield L293D и Arduino, научиться управлять электромоторами. В этой статье вы познакомитесь с базовыми знаниями, которые будут необходимы для создания более серьезного проекта. Также мы узнаем из каких элементов состоит Motor Shield L293D и его технические характеристики.

Технические характеристики Motor Shield L293D

Motor Shield L293D имеет следующие характеристики :

  • Максимальный продолжительный ток в каждом канале: 0,6 А;
  • Допустимый ток нагрузки 600мА на канал, пиковый ток — 1.2A
  • Питание моторов от 4.5 В до 36 В
  • 4-х канальное управление
  • Присутствует защита от перегрева
  • Присутствует контакт для дополнительного питания платы

Разберемся же, из чего состоит этот motor shield. На фотографии ниже вы можете найти цифры, на которые мы будем опираться.

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

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

3 . Под цифрой 3 обозначены клемма, к которым нужно подключать электродвигатели. Имеются 4 клемма под названиями: M1, M2, M3, M4. Следовательно, подключить к плате возможно только 4 электромотора.

4 . Здесь размещены клемма, через которые вы можете запитать ваш шилд, ведь для работы моторов необходимо большее напряжение, чем напряжение от Arduino. Хотелось бы отметить важный момент, чтобы запитывать Motor Shield L293D иным источником необходимо снять перемычку, которая находится под цифрой 5

5 . Под цифрой пять находится перемычка, отвечающая за питание шилда.

Также на motor shield L293D находится светодиод, который горит только тогда, когда подсоединенные электромоторы запитанны и могут выполнять свое предназначение. А если светодиод не проявляет признаков жизни, то ваши электромоторы работать не будут, так как источника питания не хватает на работу моторов или его совсем нет.

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

Необходимые компоненты для подключения

Для подключения нам необходимы следующие компоненты:

Все эти элементы можно приобрести по низкой цене и с высоким качеством в интернет магазине SmartElements.

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

После того, как вы подготовили все необходимые компоненты, можно перейти к подключению. Сначала рассмотрим схему подключения нашего мини-проекта.

Схема подключения Motor Shield L293D и Arduino

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

После подключения Motor Shield L293D к Arduino, нам необходимо присоединить оставшиеся компоненты. Правильное подключение показано на фотографии ниже.

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

Готовый программный код для управления Motor Shield L293D

Для работы датчика на Arduino нужно скачать и установить библиотеку AFMotor .

Скачать библиотеку можно здесь .

После того, как мы скачали нужную библиотеку, ее нужно правильно установить. Скачанные файлы нужно переместить по следующему пути :

Диск C Progtam Files Arduino Libraries

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

Мы рассмотрим два программных кода с подключением одного и нескольких электродвигателей к L293D . Рассмотрим два случая для того, чтобы вы увидели тонкости и особенности этого программного кода..

Для начала рассмотрим подключение одного мотора к Motor Shield L293D и Arduino.

Перейдем ко второму коду, для управления уже несколькими электромоторами.

Разбор програмного скетча для управления электромоторами с помощью Motor Shield L293D и Arduino

Схему соединений мы собрали. Скетч вставили и загрузили. У нас все получилось, но мне кажется, что мы что-то забыли. Мы забыли разобраться в том, как же работает наша установка! Рассматривать мы будем участки кода, которые могут вызвать у вас непонимание. Перейдем к изучению написанного кода.

В участке кода, представленном ниже, мы задаем максимальную скорость, для электромоторов. Мы указали максимальное значение скорости равное «255».

В данном участке кода мы командой «motor1. run (FORWARD);» задаем движение электродвигателям вперед, а командой «motor1. setSpeed (255);» указываем, с какой скоростью будут они работать. Если вы захотите установить максимальную скорость, то ее значение должно быть таким, которое указано в строчке «motor1. setSpeed (255);» (в нашем случае значение максимальной скорости равно 255).

Вы можете заметить строчки, в которых указана функция » delay «(Пример такого кода указан ниже). Эта функция отвечает за продолжительность действия того или иного действия. В нашем случае » delay » указывает, какое количество времени двигатель будет бездействовать.

Надеюсь у вас все получилось! Если у вас остались вопросы, можете написать нам в вконтакте или в комментариях ниже. Мы постараемся ответить на ваши вопросы в скором времени!

Источник

#33. Motor shield l293d подключение. Пример кода для Arduino

Робототехника с каждым годом становиться все популярнее. И поэтому количество электроники с помощью которой можно реализовать роботизированную модель достаточно много. А если у вас нет опыта работы с электроникой, вам отлично подойдёт Motor shield на базе драйвера l293d. Шилд устанавливается на плату Arduino UNO.

На shield выведены контакты для подключения двигателей постоянного тока, шаговых двигателей и сервоприводов. Я уже делал проект с использованием данного Motor shield. У вас, наверное, возник вопрос. Если шилд такой простой, почему у меня мало Arduino проектов с его использование? Это связанно со сложностью расширения функционала проекта при использовании Motor shield l293d. Но обо всём по порядку.

Технические параметры Motor shield l293d.

  • Напряжение питания двигателей: 5 — 36 В
  • Напряжение питания платы: 5 В
  • Допустимый ток нагрузки: 600 мА на канал
  • Максимальный (пиковый) ток нагрузки: 1,2 А на канал
  • Размер платы: 70х54х20 мм

Общие сведения о Motor shield L293D.

Motor shield построен на драйвере L293D, состоящим из двух H-мост (H-Bridge), с помощью которых можно управлять двумя постоянными двигателями или одним шаговым двигателем. Каждый канал рассчитан на 0.6 А с пиком 1.2 А. Так как на Motor shield установлено две микросхемы L293D, можно управлять сразу четырьмя двигателями постоянного тока, это позволяет использовать данный shield в разработке робот платформ. Так же, на shield установлен сдвиговый регистр 74HC595, который расширяет 4 цифровых контакта Arduino до 8 управляющих контактов двух микросхем L293D. Познакомиться подробнее со сдвиговым регистром 74HC595 можно в уроке: Урок 2 — Подключаем сдвиговый регистр 74НС595 к Arduino. «Бегущие» огни.

Питание Motor shield L293D:

  • Общий источник питания для Arduino и двигателей (максимальное напряжение 12 В) — можно использовать один источник питания, используется разъем DC на Arduino UNO или 2-х контактный разъем на Motor shield «EXT_PWR», так же необходимо установить перемычку «PWR».
  • Раздельный источник питания — рекомендуется отдельно питать Arduino и shield, для этого Arduino подключаем к USB, а двигатели подключаем к источнику постоянного тока, используя разъем «EXT_PWR». Необходимо убрать перемычку «PWR».

Внимание! Нельзя подавать питание на «EXT_PWR» выше 12 В, при установленной перемычке «PWR».

Выходные контакты двух микросхем L293D выведены по бокам shield с помощью 5-ти контактных винтовых клемм, а именно М1 , М2 , М3 и М4. К этим контактам подключается четыре двигателя постоянного тока и два шаговых двигателя.

Так же, на shield выведено два 3-х контактных разъема, к которым можно подключить два сервопривода.

Контакты, которые не используются Motor shield L293D:

Так как шилд устанавливается на Arduino UNO, есть контакты, которые не используются Motor shield и к ним можно подключить дополнительные компоненты. Это цифровые контакты D2 и D13 и аналоговые контакты A0-A5. Кроме этого на шилде можно распаять пины A0-A5 и подключаться к ним прямо на shield.

Подключение к Motor shield L293D двигателя постоянного тока.

Для этого нам понадобятся следующие комплектующие:

Схема подключения двигателя постоянного тока к Motor shield.

Устанавливаем shield сверху Arduino, далее подключаем источник питания к клеммам «EXT_PWR», в примере используется источник питания на 12 В. Теперь подключаем двигатели к клеммам M1, M2, M3 или M4. В примере подключаем 2 двигателя постоянного тока к М4, М3.

Установка библиотеки «AFMotor.h»

Для удобной работы с Motor shield L293D, необходимо установить библиотеку «AFMotor.h». Заходим в Arduino IDE, открываем вкладку «Скетч -> Подключить библиотеку -> Управлять библиотеками…»

Откроется новое окно «Менеджер библиотек», в окне поиска вводим «Adafruit Motor Shield» и устанавливаем библиотеку.

Скетч управления двигателем постоянного тока с помощью Motor shield L293D.

Скетч начинается с подключения библиотеки «AFMotor.h», затем создаем объект «AF_DCMotor motor4(4)» в котором указываем номер порта двигателя (M1, M2, M3, M4). Для подключения второго двигателя «AF_DCMotor motor3(3)» и так далее.

В блоке «setup» мы вызываем функции «setSpeed(speed)» в которой задаем скорость двигателя, от 0 до 255 и функцию «motor.run» направление вращения двигателя, где «FORWARD» — вперед, «BACKWARD» — назад, «RELEASE» — остановка.

Подключение сервопривода к Motor shield L293D.

Для этого нам понадобятся следующие комплектующие:

С помощью shield L293D можно управлять сервоприводами. На shield выведены 16-разрядные контакты Arduino 9 и 10, питание для сервоприводов подается от 5 вольтового стабилизатора Arduino, поэтому подключать дополнительное питание в разъем «EXT_PWR» не нужно.

Схема подключения сервопривода SG90S к Motor shield.

Скетч управления сервопривода SG90S.

Так как используется стандартный вывод PWM, нет смысла использовать дополнительную библиотеку, воспользуемся стандартной библиотекой Servo.

Подключение к Motor shield L293D шагового двигателя NEMO17.

Для этого нам понадобятся следующие комплектующие:

В данном примере подключим шаговый двигатель NEMA 17, который рассчитан на 12 В (и выше) и делает 200 шагов на оборот. Итак, подключите шаговый двигатель к клеммам M3 и M4. Затем подключите внешний источник питания 12 В к разъему «EXT_PWR».

Схема подключения шагового двигателя Nemo17 к Motor shield L293D.

Скетч управления шаговым двигателем Nemo17 с помощью Motor shield L293D.

Используем ту же библиотеку, что и в первом примере.

Описание кода:

Скетч начинается с подключением библиотеки «AFMotor.h». Во второй строке создаем объект «AF_Stepper motor(48, 2)» где указываем количество шагов на оборот и номер порта.

В разделе настройки, функцией «motor.setSpeed(10);» устанавливает скорость двигателя, где «10» количество оборотов в минуту.

В разделе цикла программы, мы просто вызываем две функции для управления скоростью и направлением вращения двигателя.

  • «100» — это сколько шагов, необходимо сделать.
  • «FORWARD»и «BACKWARD»— направление вращение двигателем.
  • «SINGLE» — активация одной обмотки двигателя для совершения шага.
  • «DOUBLE» — активация двух обмоток двигателя, что обеспечивает больший вращающий момент
  • «INTERLEAVE» — применение ШИМ для управления шаговым двигателем двигателем.

Вывод по использованию Motor shield L293D.

Для начинающего Ардуинщика Motor shield L293D позволит реализовать роботизированную модель. Но реализовать более серьёзные проекты не получится. Так как свободных pin для подключения остается не много. Что еще мне не нравится в данном shield это то, что пины для shield заняты всегда, даже если мы подключили 2 двигателя постоянного тока. А другая пара подключения свободна, пины Arduino все равно будут заняты, и мы не сможем их использовать. Это наглядный пример того, что использования данного шилда не является универсальным и гибким решением.

Появились вопросы или предложения, не стесняйся, пиши в комментарии!

Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

Всем Пока-Пока.

И до встречи в следующем уроке.

Понравилась статья? Поделитесь ею с друзьями:

Источник

You may also like...