Управление шаговым двигателем uln2003

Управление шаговым двигателем с помощью платы Arduino.

В этой и нескольких следующих статьях я планирую продемонстрировать, как управлять различными видами моторов.
Начнём мы своё изучение с шагового двигателя Step motor 28BYJ-48 (5V).

Управление шаговым двигателем uln2003
Управление шаговым двигателем uln2003

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

Управление шаговым двигателем uln2003

Шаговый двигатель — это двигатель, который может точно перемещаться на минимально возможный угол, называемый шагом. Этот угол обусловлен устройством каждого конкретного мотора.
Преимуществом шаговых двигателей является возможность его неприрывного вращения, подобно двигателю постоянного тока, тогда как сервоприводы, обычно, ограничены углом поворота в диапазоне от 0 до 180°.
Недостатком шаговых двигателей является более сложное управление, чем в случаях с другими типами моторов.
Двигатель данного мотора имеет четыре обмотки, которые запитываются последовательно, чтобы повернуть вал с магнитом.

Управление шаговым двигателем uln2003

Получается 4 фазы, поэтому такой электромагнитный прибор называют шаговый 4-х фазный двигатель. Каждый из контактов четырех фаз соединен с красным проводом. Двигатель является к униполярным (однополярным) благодаря схеме соединения фаз. К красному проводу подключается питание. Перемещение вала на шаг происходит под действием импульса тока.
28BYJ-48-5V содержит пластмассовый понижающий редуктор с передаточным числом 64:1.

Основные характеристики мотора:

Тип моторауниполярный шаговый двигатель
Число фаз4
Рабочее напряжение5 вольт
Угол шага двигателя без учета редукторапри 4-ступенчатой последовательности (шаговый режим) 11,25 ° (32 шага на оборот),

при 8-ступенчатой последовательности (полушаговый режим — рекоммендован) 5,625 ° (64 шага на оборот)

Передаточное отношение редуктора64:1Количество шагов вала мотора за один оборотв 4-ступенчатой последовательности 32 x 64 = 2048

в 8-ступенчатой последовательности 64 x 64 = 4096.

Cкорость вращенияноминальная 15 об/мин,

максимальная 25 об/мин

Подключение5-выводов (к контроллеру двигателя)Частота100 ГцСопротивление по постоянному току50 Ом ± 7%(25°C)Частота под нагрузкой> 600 ГцЧастота на холостом ходу> 1000 ГКрутящий момент> 34.3 мН*м (120 Гц)Момент самопозиционирования> 34.3 мН*мСтопорящий момент600-1200 г*смТяга300 г*смСопротивление изоляции> 10 МОм (500 В)Класс изоляцииAШум/*Программа для шагового двигателя 28BYJ-48 (5V). Двигатель делает полный оборот в одну сторону, затем в другую*/

/*У данного мотора 4 провода (син., розов., жёлт., оранж.), которые мы подключаем к контактам ардуино. Номера контактов
указываем в массиве MotorPins, в порядке, соответствующем перечислению цветов, в нашем случае с D9 по D12*/

/*Целочисленная константа, показывающая количество фаз подачи сигналов для одного шага мотора. Для полушагового режима — 8
Для шагового — 4*/
const int OneTurnPhasesCount = 8;

/*Целочисленная константа, показывающая задержку в миллисекундах между фазами подачи сигналов мотору. Для полушагового режима — 2,
для шагового — 3*/
const int TurnPhasesDelay = 2;

/*Целочисленная константа, показывающая задержку в миллисекундах между переходами к вращению в другую сторону*/
const int Turn360Delay = 100;

/*Целочисленная константа, показывающая количество шагов, которые должен выполнить двигатель за полный оборот на 360 град.
Внутренний вал мотора совершает 64 шага за полный оборот, с учётом передаточного числа редуктора 64:1, то мотор должен совершать 64×64=4096 шагов*/
const int CountStepsOneDirection = 4096;

/*Целочисленная переменная, показывающая количество шагов, которые выполнил двигатель в одном направлении*/
int CurrentStepOneDirection = 0;

/*Целочисленная переменная, показывающая номер текущей фазы*/
int CurrentPhase = 0;

/*Целочисленная переменная, показывающая направление вращения мотора: 1 — по часовой стрелке, -1 — против*/
int TurnDirection = 1;

// Для полушагового режима

/*Массив, в котором указано какие сигналы подавать на контакты мотора в той или иной фазе. [фаза][контакт]. Контакты даются в порядке, перечисленном в массиве MotorPins — оранж., жёлт., розов., син. 0 — нет сигнала, 1 — есть сигнал*/
bool MotorTurnPhases[8][4] = <
< 1, 0, 0, 0>,
< 1, 1, 0, 0>,
< 0, 1, 0, 0>,
< 0, 1, 1, 0>,
< 0, 0, 1, 0>,
< 0, 0, 1, 1>,
< 0, 0, 0, 1>,
< 1, 0, 0, 1>>;

/*Функция CheckLastPhase проверяет не вышел ли номер текущей фазы за пределы размера массива MotorTurnPhases, который определяется переменной OneTurnPhasesCount и не пора ли поменять направление вращения*/
void CheckLastPhase()
<
if (CurrentPhase >= OneTurnPhasesCount)
<
CurrentPhase = 0;
>
if (CurrentPhase //Увеличиваем шаг на 1
CurrentStepOneDirection++;

//проверяем не совершил ли мотор полный оборот
if(CurrentStepOneDirection == CountStepsOneDirection)
<
CurrentStepOneDirection = 0;
TurnDirection *= -1;
delay(Turn360Delay);
>
>

/*Функция, в которой происходит инициализация всех переменных программы*/
void setup()
<
/*перебираем в цикле все контакты массива MotorPins и присваиваем им значение выходных, то есть дающих напряжение в 5В*/
for (int i = 0; i /*Функция-цикл в которой задаётся поведение программы*/
void loop()
<
//проверяем индекс текущей фазы
CheckLastPhase();

/*подаём напряжения на контакты мотора соответственно фазе, заданной в массиве MotorTurnPhases*/
for (int i = 0; i //переходим к другой фазе
CurrentPhase += TurnDirection;

// Пауза между фазами
delay(TurnPhasesDelay);
>

Если мы имеем дело с другими, моторами, требующими напряжение более 5В, то нужен дополнительный драйвер. Обычно, вместе с мотором 28BYJ-48 поставляется модуль SBT0811, содержащий микросхему ULN2003.

Управление шаговым двигателем uln2003

Он позволяет управлять мощными нагрузками с током до 500 мА и напряжением до 12 В на канал с помощью слабого тока микроконтроллера, такого как Arduino.
Плата содержит 4 контакта IN1-IN4, которые следует соединить проводами с контактами платы Arduino. От них будут поступать управляющие сигналы с микроконтроллера.
Белый разъём на плате — для подключения мотора.
Два контакта: «- + 5-12V» — это выводы для подключения внешнего источника питания от 5 до 12В. В нашем случае, источником питания будет сама плата Arduino NANO, так как наш мотор питается от 5V. Поэтому эти два контакта драйвера мы подключаем к 5V и GND разъёмам на плате Arduino.
Четыре светодиода на плате — это индикаторы шага, показывают на какой из четырёх проводов мотора подаётся напряжение.

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

Схема соединения такая.

Управление шаговым двигателем uln2003

Для того, чтобы её собрать воспользуемся такими, заблаговременно подготовленными проводочками, у которых на одном конце разъём, на другом штырёк.

Управление шаговым двигателем uln2003

Для удобства их присоединения к плате Arduino UNO, воспользуемся пластиковым элементом, напечатанным на 3D принтере, к которому приклеены два ряда контактов попарно спаянные с обратной стороны. В один ряд втыкается плата Arduino, в другой провода.

Управление шаговым двигателем uln2003

Вот так выглядит наша схема в сборке.

Управление шаговым двигателем uln2003

Управление шаговым двигателем uln2003

Управление шаговым двигателем uln2003

Подключаем питание к плате Arduino с предыдущей залитой программой. Устройство должно работать точно таким же образом, как и в предыдущем примере, с прямым подключением мотора к Arduino.
Если мы имеем дело с, скажем, 9ти вольтовым мотором, то у нас появляется в схеме блок питания на 9V. Тогда, «+» контакт на драйвере, для внешнего источника питания мы соединяем не с платой Arduino, а с проводом питания от блока, по такой схеме:

Управление шаговым двигателем uln2003

Добавляем кнопку и потенциометр (переменный резистор) в схему.

Теперь усложним схему и внесём в неё кнопку, которая будет задавать направление вращения мотора и потенциометр, задающий скорость вращения.

Управление шаговым двигателем uln2003

Мы к ним припаяли провода со штырьками.
Для подключения их к плате Arduino, нам понадобятся еще вот такие провода и два резистора на 10 КОМ.

Управление шаговым двигателем uln2003

Управление шаговым двигателем uln2003

Всё подключаем согласно схеме.

Управление шаговым двигателем uln2003

Вот что получилось.

Управление шаговым двигателем uln2003

Управление шаговым двигателем uln2003

Пишем код программы.

/*Программа для шагового двигателя 28BYJ-48 (5V). В схеме есть кнопка и потенциометр. В зависимости от положения кнопки (пол. 1, пол. 2, выключено) мотор вращается либо в одну сторону, либо в другую, либо стоит на месте, а потенциометр влияет на скорость вращения.*/

/*У данного мотора 4 провода (оранж., жёлт., розов., син.), которые мы подключаем к контактам ардуино. Номера контактов указываем в массиве MotorPins, в порядке, соответствующем перечислению цветов, в нашем случае с D12 по D9*/
int MotorPins[4] = <9, 10, 11, 12>;

/*Контакты от двух положений кнопки — цифровые*/
const int ButtonOn1 = 5;
const int ButtonOn2 = 4;

/*Контакт регистрирующий значение потенциометра — аналоговый*/
const int PotenciomData = 3;

/*Целочисленная константа, показывающая количество фаз подачи сигналов для одного шага мотора. Для полушагового режима — 8
Для шагового — 4*/
const int OneTurnPhasesCount = 8;

/*Целочисленная переменная, показывающая задержку в миллисекундах между фазами подачи сигналов мотору. Для полушагового режима — 2,
для шагового — 3*/
int TurnPhasesDelay = 2;

/*Целочисленная переменная, показывающая номер текущей фазы*/
int CurrentPhase = 0;

//состояние кнопки включено-выключено
int ButtonState = 0;

/*Целочисленная переменная, показывающая направление вращения мотора: 1 — по часовой стрелке, 0 — против*/
int TurnDirection = 1;

/*целочисленная константа, показывающая временную задержку между считыванием состояния кнопки и потенциометра*/
const int CheckButtonDelay = 15;

/*Целочисленная переменная показывающая, сколько прошло времени и не пора ли считывать состояние кнопки*/
int CurrentButtonDelay = 0;

//Для полушагового режима

/*Массив, в котором указано какие сигналы подавать на контакты мотора в той или иной фазе. [фаза][контакт]. Контакты даются в порядке, перечисленном в массиве MotorPins — оранж., жёлт., розов., син. 0 — нет сигнала, 1 — есть сигнал*/
bool MotorTurnPhases[8][4] = <
< 1, 1, 0, 0>,
< 0, 1, 0, 0>,
< 0, 1, 1, 0>,
< 0, 0, 1, 0>,
< 0, 0, 1, 1>,
< 0, 0, 0, 1>,
< 1, 0, 0, 1>,
< 1, 0, 0, 0>>;

/*Функция, в которой происходит инициализация всех переменных программы*/
void setup()
<
/*перебираем в цикле все контакты массива MotorPins и присваиваем им значение выходных, то есть дающих напряжение в 5В*/
for (int i = 0; i /*Функция-цикл в которой задаётся поведение программы*/
void loop()
<
if(CurrentButtonDelay >= CheckButtonDelay)
<
CheckButtonState();
CurrentButtonDelay = 0;
>

if(ButtonState != 0)
<
//проверяем индекс текущей фазы
CheckLastPhase();

/*подаём напряжения на контакты мотора соответственно фазе, заданной в массиве MotorTurnPhases*/
for (int i = 0; i //переходим к другой фазе
CurrentPhase += TurnDirection;

// Пауза между фазами
delay(TurnPhasesDelay);
>

/*Функция CheckLastPhase проверяет не вышел ли номер текущей фазы за пределы размера массива MotorTurnPhases, который определяется переменной OneTurnPhasesCount*/
void CheckLastPhase()
<
if (CurrentPhase >= OneTurnPhasesCount)
<
CurrentPhase = 0;
>
if (CurrentPhase /*функция, в которой проверяется текущее состояние кнопки*/
void CheckButtonState()
<
int CurrentButtonState = 0, CurrentButtonDirection = 0, CurrentTurnPhasesDelay = 0;

//считываем данные с положения кнопки I
bool readbuttonparam = digitalRead(ButtonOn1);

if(readbuttonparam)
<
CurrentButtonState = 1;
CurrentButtonDirection = 1;
>

//считываем данные с положения кнопки II
readbuttonparam = digitalRead(ButtonOn2);

if(readbuttonparam)
<
CurrentButtonState = 1;
CurrentButtonDirection = -1;
>

/*Проверяем, изменилось ли состояние кнопки по сравнению с предыдущим, и если изменилось, то записываем изменения в глобальные переменные*/
if(ButtonState != CurrentButtonState)
<
ButtonState = CurrentButtonState;
>

if(TurnDirection != CurrentButtonDirection)
<
TurnDirection = CurrentButtonDirection;
>

CurrentTurnPhasesDelay = map(analogRead(PotenciomData), 0, 1023, 2, CheckButtonDelay);

if(TurnPhasesDelay != CurrentTurnPhasesDelay)
<
TurnPhasesDelay = CurrentTurnPhasesDelay;
>
>

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

Управление шаговым двигателем uln2003

Управление шаговым двигателем uln2003

Затем подсоединяем плату Arduino, драйвер мотора, сам мотор, кнопку и потенциометр на свои места. Проверяем так ли работает наш прибор, как и в предыдущем случае и радуемся, смотря на чудеса современной техники.

Автор: Сергей · Опубликовано 29.08.2017 · Обновлено 09.07.2019

Сегодня расскажу о 4-х фазном шаговом двигателе 28BYJ-48, работающим от постоянного напряжения 5В (существует модификация на 12В). Так как двигатель потребляет значительный ток, мы не можем подключить его напрямую к выводам Arduino UNO, для этого воспользуемся так называемый «Драйвером двигателя» основанном на микросхеме ULN2003.

Управление шаговым двигателем uln2003

Технические параметры 28BYJ-48

► Модель: 28BYJ-48
► Тип шагового двигателя: Униполярный
► Напряжение питания: 5 В, DC
► Количество фазы: 4
► Частота: 100 Гц
► Сопротивление постоянного тока: 50Ω ± 7% (25 ℃)

Читать также:  Какими свойствами обладает медь

Общие сведения

Немного теории, четырех фазный шаговый двигатель (28BYJ-48) — это бесколлекторный двигатель, вращение вала осуществляется шагами (дискретное перемещение). На роторе (валу), расположен магнит, а вокруг него расположены катушки, если поочередно подавать ток на эти катушки, создается магнитное поле, которое отталкивает или притягивает магнитный вал, тем самым заставляя двигатель вращаться. Такая конструкция позволяет с большой точностью управлять валом, относительно катушек. Принципиальная схема четырехфазного шагового двигателя 28BYJ-48 приведена ниже.

Управление шаговым двигателем uln2003

Из принципиальной схемы видно, что в двигателе содержится две обмотки, которые в свою очередь разделены на четыре, из-за этого и название 4-х фазный. Центральные отводы катушек подключены вместе и служат для питания двигателя, так-как каждая обмотка подключена к питанию, такие двигатели называют униполярный. На валу 28BYJ-48 расположено 8 магнитов, с чередующими полюсами (то есть, четыре магнита с двумя полюсами).

Управление шаговым двигателем uln2003

Из рисунка видно, что внутри расположен редуктор, с примерным передаточным числом в 1:64, если быть точнее 1:63,68395. Это означает, что двигатель за один оборот осуществляет 4075.7728395 шага. Данный двигатель поддерживает полушаговый режим и за один полный оборот может совершать 4076 шага, а точнее за 1° делает примерно 11,32 шага. (4076 / 360 = 11,32).

Режим работы:
Чаще всего, при использовании шагового двигателя 28BYJ 48, используют два режима подключения.
Полношаговый режим — за 1 такт, ротор делает 1 шаг.
Полушаговый режим — за 1 такт, ротор делает ½ шага.
Ниже переставлена таблица последовательности тактов:

Управление шаговым двигателем uln2003

Управление шаговым двигателем uln2003

Модуль шагового двигателя ULN2003:
Цифровой вывод микроконтроллера может выдать ток

40 мА, а одна обмотка 28BYJ-48 в пике потребляем

320 мА, следовательно если подключить двигатель напрямую, микроконтроллер сгорит. Для защиты был разработан «Модуль шагового двигателя ULN2003″, в котором используется микросхема ULN2003A (по сути, состоящая из 7 ключей), позволяющая управлять нагрузкой до 500 мА (один ключ). Данный модуль может работать с 5В и 12В двигателем 28BYJ-48, для переключения необходимо установить или убрать перемычку (по умолчанию перемычка установлена, питание 5В).

Принципиальную схему модуля ULN2003 можно посмотреть на рисунке ниже

Управление шаговым двигателем uln2003

Назначение X1
IN1 . . . IN7: Вход 1 … 7 Назначение X2
► 1 — GND: «-» питание модуля
► 2 — Vcc: «+» питание модуля (5В или 12В)
► 3 — Vcc: «+» питание модуля (перемычка, только при 5В)
► 4 — Vcc: «+» питание модуля (перемычка, только при 5В)

Назначение X3
► A . . . G: Выход 1 … 7

Назначение X3
► 1 — Питание
► 2 — A
► 3 — B
► 4 — C
► 5 — D

Подключение шагового двигателя 28BYJ-48

Необходимые детали:
Arduino UNO R3 x 1 шт.
Модуль драйвера шагового двигателя ULN2003 x 1 шт.
Шаговый двигатель 28BYJ-48-5V (5В) x 1 шт.
Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
Кабель USB 2.0 A-B x 1 шт.

Подключение:
В данном примере буду использовать модуль ULN2003, Arduino UNO R3 и двигатель 28BYJ-48-5V. Схема не сложная, необходимо всего шесть провода, сначала подключаем интерфейсные провода, IN1 (ULN2003) в 11 (Arduino UNO), IN2 (ULN2003) в 10 (Arduino UNO), IN3 (ULN2003) в 9 (Arduino UNO) и IN4 (ULN2003) в 8 (Arduino UNO), осталось подключить питание GND к GND и VCC к VIN (не для постоянного использовании), подключаем разъем двигателя в модуль ULN2003. Схема собрана, теперь надо подготовить программную часть.

Управление шаговым двигателем uln2003

Управление шаговым двигателем uln2003

Для вращения двигателя по часовой и против часовой стрелки, используем библиотеку «CustomStepper«. Данная библиотека не входит в стандартную среду разработки Arduino IDE, так что скачиваем и добавляем ее. Далее, запускаем среду разработки IDE и копируем скетч (для удобства, добавлю файл для скачивания), если все правильно сделали, двигатель начнет вращаться.

Скачать скетч

Давайте разберемся как реализована работа с двигателем. Изначально библиотеке назначаются какие либо инструкции, которые должен выполнить двигатель (например, сделать два оборота двигателем), после этого обработкой этих инструкций осуществляется командой stepper.run();, после того как все инструкции выполнены isDone вернет tru (истина). То есть если двигатель еще крутится вернется false (лож) или если двигатель прекратил движение вернется tru (истина).

Ссылки
Библиотека CustomStepper.zip

Купить на Aliexpress
Контроллер Arduino UNO R3
Шагового двигателя 28BYJ-48
Комплект проводов DuPont, 2,54 мм, 20 см

Купить в Самаре и области
Купить контроллер Arduino UNO R3 в г. Самаре
Купить шагового двигателя 28BYJ-48 в г. Самаре
Купить комплект проводов DuPont, 2,54 мм, 20 см в г. Самаре

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

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

Здесь видно соединение по привычной нам схеме усилителя эмиттерного повторителя. Из числа компонентов наблюдаются:

  • транзистор Дарлингтона;
  • 3 резистора, задающих напряжение и ток смещения;
  • обратный диод, позволяющий подключать индуктивные нагрузки без опасения для ключей;
  • диод в качестве температурной стабилизации, подключенный к базе и эмиттеру.

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

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

Управление шаговым двигателем uln2003Как показывает практика использования представленной микросхемы, она является достаточно мощной, потому что судя по datasheet uln2003ag технические характеристики позволяют коммутировать достаточно большой ток до 500 мА. Но не стоит давать работать ей на пределе, потому что выходной транзистор хоть и защищен обратным диодом, он может пострадать из-за банального перегрева.

Читать также:  Хочу поменять счетчик электроэнергии что делать

Чтобы этого не происходило, правильно подходите к расчету потребляемой и рассеиваемой мощности. В данном случае при максимальном напряжении на CE равном 50 В максимальная мощность выходного транзистора составит не более 25 Вт, при этом он будет очень сильно греться. Поэтому номинальный коммутационный ток лучше поддерживать не более 300-400 мА. В таком режиме микросхема будет работать долго и стабильно.

Структурная схема микросхемы до боли проста и состоит всего из 7 ячеек стандартной ТТЛ-логики И-НЕ с подключенным обратным диодом на общий вывод питания COM . С топологией устройства также все просто, каждый вход расположен напротив выхода, что не даст спутать выводы при проектировании каких-либо устройств. Главное запомнить, что первый вывод является прямым входом.

Что касается характеристик, то они представлены для микросхем с ТТЛ-логикой, при котором управляющий сигнал не превышает 5 В. Но также выпускаются аналоги КМОП, которые могут работать от более низкого порога около 2 В до 9 В.

Аналоги микросхемы uln 2003

Как и любая друга, микросхема uln 2003 аналоги имеет как среди импортных, так и отечественных производителей. Например, самым популярным из них является ключ К1109КТ22, ITT 656, L 203, M 2003 P , NE 5603 N и другие. Выбирая аналог к этой микросхеме, необходимо обращать внимание на топологию. Если этот ТТЛ-логика, то и входное напряжение должно быть не более 5 В. Все представленные аналоги этого устройства имеют то же техническое исполнение и конструктив, поэтому могут быть заменены без внесения каких-либо изменений в схему.

Схема подключения

Управление шаговым двигателем uln2003На uln 2003 схема подключения до боли проста и не включает никаких компонентов. Главное, не перепутать вход с выходом и общий вывод, в остальном все и так ясно. Но все же для наглядности стоит повторить схему на примере с шаговым двигателем с питанием от 12 до 24 В. Общий провод от +24В подключается на 9 вывод и к центральному отводу обмоток двигателя, все остальные оп порядку согласно полюсам. Управление двигателем осуществляется по аналогичным линиям, только со входа МС.

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

Зависимость входного напряжения и тока в нагрузке

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

  • В ТТЛ-логике при входном напряжении 2,4 В ток коммутации составляет не более 200 мА.
  • При U вх.=2,7В, выходной ток не превышает 250 мА.
  • При величине входного напряжения не более 3 В, ток коллектора выходного транзистора составляет 300 мА.

Также в устройстве присутствует паразитная емкость, которая может достигать 25 pF в зависимости от частоты управляющего напряжения или создаваемых помех в непосредственной близости от нее. При этом минимальный порог паразитной емкости находиться на уровне 15 пФ. Что касается времени включения выходных транзисторов, то они являются достаточно быстрыми. Время перехода из одного состояния в другое лежит в пределах от 0,25 до 1 мкс, что говорит о возможности работы на достаточно высоких частотах.

Исходя из описания на микросхему, максимальный ток составляет 0,5 А, но в таком режиме она существенно нагревается до 70 и более градусов, что может быть критичным. Ведь максимальная температура, при которой микросхема еще нормально работает, составляет порядка 85 градусов. Также следует отметить, что максимальный входной ток управления при напряжении 3,85 В не должен превышать 1,35 мА. А это немаловажный факт, потому что именно по входу у многих схемотехников она выходит из строя.

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

Практическое применение

Управление шаговым двигателем uln2003Сфера применения микросхемы uln 2003 достаточно широкая и охватывает как промышленность, так и детские игрушки с целью развлечения. Например, ее можно применить в устройстве переключения бегущих огней, собранных на мощных светодиодах или даже лампочках с общим питание не более 50 В. U ln2003 биполярный шаговый двигатель может вращать, потому что у нее достаточно выводов, чтобы выполнить целый оборот с позиционированием. Как пример, можно организовать управление вентиляторным шаговым двигателем посредством параллельного порта, собрав небольшую схему с подключением к цифровым выходам интерфейса из линии DATA .

А если использовать в составе с микроконтроллером, то можно организовать полноценное управление релейной схемой с током потребления по каждому из каналов не более 300 мА.

Как проверить микросхему?

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

Прозвонить мультиметром. С его помощью можно выяснить пробит ли диод или сам транзистор. Если что-то пробито (звонится на КЗ или около), то в любом случае эта ячейка неисправна. Базу прозвонить таким способом не удастся, потому что на входе имеется резистор сопротивлением 2,7 кОм. Лучше попробовать включить открыть транзистор, подав на вход напряжение величиной не более 3,85 В.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *