Мс uln2003: схема подключения и управление шаговым двигателем

Содержание

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

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

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

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

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

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

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

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

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

Измененный код для Arduino

Окончательная версия скетча для шагового двигателя:

/* Скетч для шагового двигателя BYJ48

Схема подключения: IN1 >> D8 IN2 >> D9 IN3 >> D10 IN4 >> D11 VCC … 5V.

Лучше использовать внешний источник питания Gnd

Автор кода: Mohannad Rawashdeh

Детали на русском языке: /arduino-shagovii-motor-28-BYJ48-draiver-ULN2003

Англоязычный вариант: http://www.instructables.com/member/Mohannad+Rawashdeh/ 28/9/2013 */

#define IN1 8

#define IN2 9

#define IN3 10

#define IN4 11

int Steps = 0;

boolean Direction = true;

unsigned long last_time;

unsigned long currentMillis ;

int steps_left=4095;

long time;

void setup()

{

Serial.begin(115200);

pinMode(IN1, OUTPUT);

pinMode(IN2, OUTPUT);

pinMode(IN3, OUTPUT);

pinMode(IN4, OUTPUT);

// delay(1000);

}

void loop()

{

while(steps_left>0){

currentMillis = micros();

if(currentMillis-last_time>=1000){

stepper(1);

time=time+micros()-last_time;

last_time=micros();

steps_left—;

}

}

Serial.println(time);

Serial.println(«Wait…!»);

delay(2000);

Direction=!Direction;

steps_left=4095;

}

void stepper(int xw){

for (int x=0;x&ltxw;x++){

switch(Steps){

case 0:

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, HIGH);

break;

case 1:

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, HIGH);

digitalWrite(IN4, HIGH);

break;

case 2:

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, HIGH);

digitalWrite(IN4, LOW);

break;

case 3:

digitalWrite(IN1, LOW);

digitalWrite(IN2, HIGH);

digitalWrite(IN3, HIGH);

digitalWrite(IN4, LOW);

break;

case 4:

digitalWrite(IN1, LOW);

digitalWrite(IN2, HIGH);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

break;

case 5:

digitalWrite(IN1, HIGH);

digitalWrite(IN2, HIGH);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

break;

case 6:

digitalWrite(IN1, HIGH);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

break;

case 7:

digitalWrite(IN1, HIGH);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, HIGH);

break;

default:

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

break;

}

SetDirection();

}

}

void SetDirection(){

if(Direction==1){ Steps++;}

if(Direction==0){ Steps—; }

if(Steps>7){Steps=0;}

if(Steps

}

Видео работающего мотора приведено ниже:

Но есть и более интересный вариант — написать собственную библиотеку для шагового двигателя

Arduino, шаговый двигатель 28-BYJ48 и драйвер ULN2003

Шаговый двигатель — это мотор, который управляется несколькими электромагнитными катушками.

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

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

В данной статье мы рассмотрим работу униполярного шагового двигателя 28-BYJ48 с драйвером ULN2003.

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

Аналоги ULN2003

Разные зарубежные производители выпускают свои аналоги ULN2003: L203, MC1413, SG2003, TD62003. Так же есть и отечественный аналог: К1109КТ22.

8-ми канальный драйвер нагрузки ULN2803A, ULN2804A

Для работы с микроконтроллерами может быть более удобнымы 8-ми канальные драйверы. И у семиканальных ULN2003, ULN2004 есть их восьмиканальные братья ULN2803, ULN2804.

Точно также как и ULN2003 — ULN2803 рассчитан на управление от ТТЛ-логики и низковольной К-МОП, а ULN2804 от К-МОП питающейся в диапазоне 6 .. 15 В. Отличия ULN280X от ULN200X только в дополнительном канале и 18-выводном корпусе. У ULN2803А есть отечественный аналог: К1109КТ63.

Драйверы нагрузки ULN2023A, ULN2024A

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

, в остальном параметры и схемотехника этих сборок повторяют своих собратьев.

Выходной драйвер ULN2003 для микроконтроллеров. Описание, подключение, datasheet на русском

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

Каждый драйвер состоит из двух транзисторов подключенных в конфигурации Дарлингтона. Пара Дарлингтона, разработанная Сидни Дарлингтоном в 1953 году, состоит в каскадом соединении двух биполярных транзисторов, в результате чего получается очень высокий коэффициент усиления, равный произведению коэффициента усиления каждого из двух транзисторов. Благодаря этому мы можем управлять нагрузками определенной мощности с очень малыми входными токами.

Пара Дарлингтона не свободна от некоторых недостатков, которые мы рассмотрим далее. Транзистор NPN универсального назначения открывается, когда мы подаем на его базу напряжение около 0,6 В. Если мы используем небольшой ток, мы можем довести его до насыщения с очень низким напряжением коллектор-эмиттер (VCE), например, в случае BC337, это между 0,2 В и 0,5 В.

В паре Дарлингтона входное напряжение будет в два раза больше, чем 0,6 В, потому что базовые напряжения обоих транзисторов складываются, как мы это можем видеть на рисунке. Также падение напряжения на выходном транзисторе будет больше, потому что это будет сумма напряжения насыщения первого транзистора + напряжение база-эмиттер выходного транзистора.

В любом случае, эти недостатки не являются существенными, поскольку в целом выходы микроконтроллера составляют 3,3 В или 5 В, что значительно превышает порог срабатывания ULN2003.

На предыдущем рисунке мы видим внутреннюю схему одного из каналов драйвера ULN2003. Здесь мы видим входной резистор на 2,7кОм, и еще два дополнительных резистора которые улучшают характеристики драйвера. Входное сопротивление каждого канала освобождает нас от установки внешних резисторов при подключении ULN2003 к микроконтроллеру.

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

Коэффициент усиления каждого драйвера больше 500, поэтому для получения максимального выходного тока достаточно на вход подать ток менее 1 мА.

На рисунке мы видим ULN2003, подключенный к микроконтроллеру (это могут быть PIC, Atmel, Arduino, Raspberry PI) и с различными нагрузками (двигатели постоянного тока, светодиодная лента, реле и т. д.).

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

Микросхема ULN2003 является частью семейства подобных драйверов: ULN2001, ULN2002, ULN2003, ULN2004, которые очень похожи. Различие в первую очередь в значении входного сопротивления для согласования с различной логикой.

В настоящее время микросхема ULN2003 является наиболее популярной, поскольку она хорошо работает с управляющими напряжениями 5 В (TTL) и 3,3 В (LTTL). Существует вариант с 8 каналами вместо 7 – это ULN2803. Из-за восьмого канала корпус имеет 18 выводов. В остальном он подобен ULN2003.

(167,0 KiB, скачано: 354)

источник

Тестер транзисторов / ESR-метр / генератор

Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…

Подробнее

Описание библиотеки для работы с шаговым двигателем

В среде разработки Ардуино IDE существует стандартная библиотека Strepper.h для написания программ шаговых двигателей. Основные функции в этой библиотеке:

  • Stepper(количество шагов, номера контактов). Эта функция создает объект Stepper, которая соответствует подключенному к плате Ардуино двигателю. Аргумент – контакты на плате, к которым подключается двигатель, и количество шагов, которые совершаются для полного оборота вокруг своей оси. Информацию о количестве шагов можно посмотреть в документации к мотору. Вместо количества шагов может быть указан угол, который составляет один шаг. Для определения числа шагов, нужно разделить 360 градусов на это число.
  • Set Speed(long rpms) – функция, в которой указывается скорость вращения. Аргументом является положительное целое число, в котором указано количество оборотов в минуту. Задается после функции Step().
  • Step(Steps) –поворот на указанное количество шагов. Аргументом может быть либо положительное число – поворот двигателя по часовой стрелке, либо отрицательное – против часовой стрелки.

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

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

Читать также: Ту 3178 004 87879481 2010

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

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

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

Измененный код для Arduino

Окончательная версия скетча для шагового двигателя:

/* Скетч для шагового двигателя BYJ48

Схема подключения: IN1 >> D8 IN2 >> D9 IN3 >> D10 IN4 >> D11 VCC . 5V.

Лучше использовать внешний источник питания Gnd

Автор кода: Mohannad Rawashdeh

Детали на русском языке: /arduino-shagovii-motor-28-BYJ48-draiver-ULN2003

Англоязычный вариант: http://www.instructables.com/member/Mohannad+Rawashdeh/ 28/9/2013 */

boolean Direction = true;

unsigned long last_time;

unsigned long currentMillis ;

void stepper(int xw)

StepperMotor::StepperMotor(int In1, int In2, int In3, int In4)

// Записываем номера пинов в массив inputPins

// Проходим в цикле по массиву inputPins, устанавливая каждый из них в режим Output

for (int inputCount = 0; inputCount inputPins, OUTPUT);

void StepperMotor::setStepDuration(int duration)

void StepperMotor::step(int noOfSteps)

* в данном 2D массиве хранится последовательность, которая

* используется для поворота. В строках хранится шаг,

* а в столбцах — текущий input пин

int factor = abs(noOfSteps) / noOfSteps; // Если noOfSteps со знаком +, factor = 1. Если noOfSteps со знаком -, factor = -1

noOfSteps = abs(noOfSteps); // Если noOfSteps был отрицательным, делаем его позитивным для дальнейших операций

* В цикле ниже обрабатываем массив sequence

* указанное количество раз

for(int sequenceNum = 0; sequenceNum inputPins, sequence);

Давайте посмотрим на конструктор на строчке 4. Мы начинаем с того, что добавляем выбранные пользователем пины в массив inputinputPins в строчках 6-9. В результате мы получаем простой и интуитивно понятный доступ к номерам пинов в дальнейшем коде.

В 12 строке мы пробегаемся по массиву inputinputPins и устанавливаем для каждого режим OUTPUT.

В 15 строке мы устанавливаем длительность шага по-умолчанию равной 15 мс.

В 18 строчке у нас функция-сеттер для установки длительности шага.

Теперь давайте рассмотрим метод step. Этот метод дает возможность шаговому двигателю делать переданное методу количество шагов.

В 28 строчке мы объявляем частоту вращения с использованием 2-х мерного массива. Строки представляют шаг, столбцы — выходящие пины.

В 37 строчке рассчитывается значение переменной factor, которое равно +1 или -1 в зависимости от знака, который мы передали при указании шагов. Это значение используется для определения направления перебора массива, то есть, в результате, для изменения направления вращения.

В 38 строчке мы присваем noOfSteps переменной позитивное значение.

В 44 строке мы запускаем цикл, который будет отрабатывать для каждой последовательности оборотов, то есть в начале каждого 8-го щага.

В 45 строке мы запускаем второй цикл, который пробегается по строкам в нашем массиве.

В 46 строчке мы устанавливаем задержку в соответствии со спецификацией.

В 47 строке мы пробегаемся по номерам пинов.

В 48 строке мы передаем цифровой сигнал на текущий номер пина.

Если переменная factor отрицательная, в 48-й строчке кода строки массива обрабатываются в противоположном порядке, то есть с низу вверх.

Доступ к библиотеке для шагового двигателя из Arduino IDE

Нам осталось добавить созданные файлы в папку библиотек Arduino IDE и мы сможем импортировать ее в любой наш проект.

Перейдите в папку:

C:\Program Files (x86)\Arduino\libraries

И создайте папку под названием StepperMotor.

Переместите созданные файлы .h и .cpp в созданную папку.

Теперь вы можете импортировать библиотеку в IDE (sketch > import library. > StepperMotor) с помощью директивы

Маленькая хитрость микросхемы TDA2003 (К174УН14)

Во многих устройствах применяется микросхема УМЗЧ TDA2003 (К174ун14), обычно это только устройства, питаемые от осветительной или автомобильной сети. Применение интегральной микросхемы TDA2003 (К174ун14) в портативной технике ограничено её большим током покоя.

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

В результате при напряжении питания 9 вольт получается лишний ток 0,023 Ампера. Кардинально решить проблему можно, если разрезать по постоянному току отрицательную обратную связь от выхода, так как это показано на рисунке. При этом работа микросхемы никак не нарушится, а ток покоя значительно снижается.

Последние сообщения

  • Как выбрать графитовые, меднографитовые и угольные щетки для электродвигателя, генератора, преобразователя и других электрических машин.18.05.2020
  • Как установить натяжной потолок17.05.2020
  • Сварочный агрегат: виды, классификации17.05.2020

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

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

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

Управление ULN2003

Входная часть сборок ULN2003A, ULN2003AI, ULQ2003A спроектирована так чтобы работать совместно с ТТЛ и 3,3 В и 5 В К-МОП логикой.

ULN2002A создана для p-МОП логики. Во входных цепях ULN2002A добавлен стабилитрон на 7 В и увеличено сопротивление базового резистора до 10,5 кОм, благодаря этому сборка может работать с входными напряжениями от 14 до 25 В.

Сборка ULN2004A, ULQ2004A предназначена для К-МОП логики с уровнем напряжений от 6 до 15В. По сравнению с ULN2003, у ULN2004 просто увеличено сопротивление базового резистора до 10,5 кОм.

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

ULN2003 выпускается как для объемного монтажа: PDIP, так и для поверхностного: SOIC, SOP и TSSOP.

Корпуса микросхем LM383 (TDA2003)

Т0220 с пятью выводами. Обе ИС специально разработаны для автомобильной звуковой аппаратуры, где при нормальном рабочем напряжении 14,4 Вольт они имеют выходную мощность 5,5 Ватт на нагрузке 4 Ом или 8,6 Вт на нагрузке 2 Ом. ИС LM383 может отдавать в нагрузку ток до 3,5 А, обе ИС имеют функцию ограничения тока нагрузки и термозащиту выходного каскада.

Интегральная схема LM383 (или TDA2003) проста в применении. На рисунке показана практическая схема (с цепочкой, увеличивающей высокочастотную стабильность), предназначенная для простого звукового автомобильного усилителя мощностью 5.5 Ватт. В этой схеме усиление определяется отношением резисторов цепочки отрицательной обратной связи 220 Ом/2,2 Ом и составляет 100;

ИС работает в не инвертирующем режиме, входной сигнал подастся на вывод 1 через электролитический конденсатор емкостью 10 мкФ. На рисунке представлена схема усилителя для автомобиля, в которой для получения выходной мощности 16 Вт используется пара ИС LM383 или унч на TDA2003. Подстроенный резистор RV1 необходим в этой схеме для регулировки баланса выходных напряжений покоя обеих ИС и тем самым обеспечивает минимальный ток покоя схемы.

16-ваттный мостовой усилитель на ИС LM383 (TDA2003) для автомобиля.

TDA2003 является монофоническим усилителем мощности низкой частоты (отечественный аналог К174УН14). Микросхема развивает мощность 10Вт при сопротивлении нагрузки 2Ом. Усилитель обладает широким диапазоном воспроизводимых частот от 30Гц до 30КГц. Маломощный усилитель не оснащен защитой от переполюсовки, обязательно при подключении к источнику питания стоит соблюдать полярность.

TDA2003 устанавливается на теплоотвод (радиатор) площадью не менее 100кв². Ток покоя микросхемы составляет 44мА. Напряжение питания от 8В до 18В. На вход микросхемы не рекомендуется подавать сигнал с амплитудой более 1Вольт.

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

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

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

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

Спецификация и драйвер шагового двигателя

Существуют разные модели драйверов (контроллеров) шаговых двигателей. Среди них можно выделить самые популярные в DIY разработках на базе Arduino: L293, ULN2003, A3967SLB.

Как правило, шаговый двигатель 28-BYJ48 используют в паре с драйвером ULN2003.

Спецификацию шагового двигателя 28-BYJ48 на английском языке вы можете скачать здесь. Краткие выдержки основных технических характеристик приведены ниже:

  • Напряжение питания: 5 В (постоянный ток);
  • Количество фаз: 4;
  • Количество шагов: 64;
  • Угол поврота на один шаг: 5.625 градуса
  • Частота: 100 Герц;
  • Частота холостого хода по часовой стрелке: > 600 Герц;
  • Частота холостого хода против часовой стрелки: > 1000 Герц;
  • Крутящий момент > 34.3 миллиньютон на метр;
  • Сопротивление вращению: 600-1200 грамм на сантиметр;
  • Класс элетробезопасности: A;

Внешний вид и схемы подключения ULN2003 приведены на изображениях ниже

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