Драйвер двигателя ULN2003: различия между версиями

Материал из me-robotics wiki
(внёс схему подключения драйвера к ардуино)
 
(не показано 6 промежуточных версий 1 участника)
Строка 22: Строка 22:
  
 
== Контакты драйвера ==
 
== Контакты драйвера ==
[[Файл:Схема ULN2003.jpg|мини|427x427пкс|схема выводов ULN2003]]
+
[[Файл:Схема ULN2003.jpg|мини|354x354px|схема выводов ULN2003]]
  
 
* '''1B,2B,3B,4B,5B,6B,7B''' – Входы от 1 до 7, подключенные к цепи базы составного транзистора;
 
* '''1B,2B,3B,4B,5B,6B,7B''' – Входы от 1 до 7, подключенные к цепи базы составного транзистора;
  
 
* '''1C,2C,3C,4C,5C,6C,7C''' – Выходы от 1 до 7, подключенные к коллектору составного транзистора
 
* '''1C,2C,3C,4C,5C,6C,7C''' – Выходы от 1 до 7, подключенные к коллектору составного транзистора
* '''COM''' – Общий катодный узел для диодов в цепи обратной связи(обязателен для индуктивных нагрузок);
+
* '''COM''' – Общий катодный узел для диодов в цепи обратной связи (обязателен для индуктивных нагрузок);
* '''E''' – Общий для всех ключей эмиттер (обычно подключается к земле).
+
*'''E''' – Общий для всех ключей эмиттер (обычно подключается к земле).
  
  
Строка 37: Строка 37:
  
  
== Об устройстве драйвера ==
+
==Об устройстве драйвера==
 
[[Файл:Изображение 2021-06-27 140841.png|мини|Структурная схема ULN2003]]
 
[[Файл:Изображение 2021-06-27 140841.png|мини|Структурная схема ULN2003]]
 
Краткое описание ULN2003a. Микросхема ULN2003a — это транзисторная сборка Дарлингтона с выходными ключами повышенной мощности, имеющая на выходах защитные диоды, которые предназначены для защиты управляющих электрических цепей от обратного выброса напряжения от индуктивной нагрузки.
 
Краткое описание ULN2003a. Микросхема ULN2003a — это транзисторная сборка Дарлингтона с выходными ключами повышенной мощности, имеющая на выходах защитные диоды, которые предназначены для защиты управляющих электрических цепей от обратного выброса напряжения от индуктивной нагрузки.
  
 
Каждый канал (пара Дарлингтона) в ULN2003 рассчитан на нагрузку 500 мА и выдерживает максимальный ток до 600 мА. Входы и выходы расположены в корпусе микросхемы друг напротив друга, что значительно облегчает разводку печатной платы.
 
Каждый канал (пара Дарлингтона) в ULN2003 рассчитан на нагрузку 500 мА и выдерживает максимальный ток до 600 мА. Входы и выходы расположены в корпусе микросхемы друг напротив друга, что значительно облегчает разводку печатной платы.
[[Файл:Изображение 2021-06-27 141115.png|центр|мини|503x503пкс|Принципиальная схема ULN2003]]
+
[[Файл:Изображение 2021-06-27 141115.png|центр|мини|522x522px|Принципиальная схема ULN2003]]
  
== Подключение драйвера ULN2003 к Arduino uno ==
+
==Подключение драйвера ULN2003 к Arduino uno==
[[Файл:Подключение драйвера ULN2003 к Arduino uno.jpg|мини|Подключение драйвера ULN2003 к Arduino uno]]
+
В данном примере используeтся драйвер ULN2003, Arduino UNO R3 и двигатель 28BYJ-48-5V.[[Файл:Подключение драйвера ULN2003 к Arduino uno.jpg|мини|Подключение драйвера ULN2003 к Arduino uno|334x334px|альт=|без]]
В данном примере использeтся драйвер ULN2003, Arduino UNO R3 и двигатель 28BYJ-48-5V.
+
==Программа для драйвера мотора ULN2003==
 
 
 
 
 
 
 
 
== Программа для драйвера мотора ULN2003 ==
 
 
Код для управления шаговым мотором через драйвер ULN2003
 
Код для управления шаговым мотором через драйвер ULN2003
 
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
#include <CustomStepper.h>           // Подключаем библиотеку CustomStepper
+
// подключение библиотеки
CustomStepper stepper(8, 9, 10, 11); // Указываем пины, к которым подключен драйвер шагового двигателя
+
#include <AccelStepper.h>
boolean rotate1 = false;              // Переменная для смены режимов
+
// создаем экземпляр AccelStepper
boolean rotatedeg = false;            // Переменная для смены режимов
+
#define IN1 8
boolean crotate = false;              // Переменная для смены режимов               
+
#define IN2 9
+
#define IN3 10
void setup()
+
#define IN4 11
{
+
AccelStepper s28BYJ-48(8, IN1, IN3, IN2, IN4);
   stepper.setRPM(12);                 // Устанавливаем количество оборотов в минуту
+
 
   stepper.setSPR(4075.7728395);       // Устанавливаем колочество шагов на полный оборот. Максимальное значение 4075.7728395
+
void setup(){
 +
   s28BYJ-48.setMaxSpeed(900.0);
 +
   s28BYJ-48.setAcceleration(100.0);
 +
  s28BYJ-48.setSpeed(200);
 +
  s28BYJ-48.moveTo(2000);
 
}
 
}
+
 
void loop()
+
void loop(){
{
+
   // Изменяем направление, если пройдено заданное число шагов
   if (stepper.isDone() &&  rotate1 == false) 
+
   if(s28BYJ-48.distanceToGo()==0)
  {
+
     s28BYJ-48.moveTo(-stepper1.currentPosition());
    stepper.setDirection(CCW);        // Устанавливает направление вращения (по часовой)
+
   s28BYJ-48.run();
    stepper.rotate(2);                // Устанавливает вращение на заданное количество оборотов
 
    rotate1 = true;
 
  }
 
   if (stepper.isDone() && rotate1 == true && rotatedeg == false)
 
  {
 
    stepper.setDirection(CW);        // Устанавливает направление вращения (против часовой)
 
     stepper.rotateDegrees(90);        // Поворачивает вал на заданное кол-во градусов
 
    rotatedeg = true;
 
  }
 
  if (stepper.isDone() && rotatedeg == true && crotate == false)
 
  {
 
    stepper.setDirection(CCW);        // Устанавливает направление вращения (по часовой)
 
    stepper.rotate();                // Будет вращать пока не получит команду о смене направления или STOP
 
    crotate = true;
 
   }
 
  stepper.run();                     // Этот метод обязателен в блоке loop. Он инициирует работу двигателя, когда это необходимо
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>

Текущая версия на 00:45, 12 мая 2022

ULN2003 внешний вид.


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




Характеристики драйвера ULN2003.

  • размеры платы – 32х35 мм;
  • межосевые размеры платы – 30х27 мм;
  • напряжение питания – 5-12В;
  • управляющее напряжение – 5В;
  • вес – 8 г;
  • номинальный ток коллектора каждого ключа – 0,5А;
  • наличие светодиодной индикации фаз;
  • вход адаптирован к различным видам логики.

Контакты драйвера

схема выводов ULN2003
  • 1B,2B,3B,4B,5B,6B,7B – Входы от 1 до 7, подключенные к цепи базы составного транзистора;
  • 1C,2C,3C,4C,5C,6C,7C – Выходы от 1 до 7, подключенные к коллектору составного транзистора
  • COM – Общий катодный узел для диодов в цепи обратной связи (обязателен для индуктивных нагрузок);
  • E – Общий для всех ключей эмиттер (обычно подключается к земле).





Об устройстве драйвера

Структурная схема ULN2003

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

Каждый канал (пара Дарлингтона) в ULN2003 рассчитан на нагрузку 500 мА и выдерживает максимальный ток до 600 мА. Входы и выходы расположены в корпусе микросхемы друг напротив друга, что значительно облегчает разводку печатной платы.

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

Подключение драйвера ULN2003 к Arduino uno

В данном примере используeтся драйвер ULN2003, Arduino UNO R3 и двигатель 28BYJ-48-5V.

Подключение драйвера ULN2003 к Arduino uno

Программа для драйвера мотора ULN2003

Код для управления шаговым мотором через драйвер ULN2003

// подключение библиотеки
#include <AccelStepper.h>
// создаем экземпляр AccelStepper
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
AccelStepper s28BYJ-48(8, IN1, IN3, IN2, IN4);

void setup(){
  s28BYJ-48.setMaxSpeed(900.0);
  s28BYJ-48.setAcceleration(100.0);
  s28BYJ-48.setSpeed(200);
  s28BYJ-48.moveTo(2000);
}

void loop(){
  // Изменяем направление, если пройдено заданное число шагов
  if(s28BYJ-48.distanceToGo()==0)
    s28BYJ-48.moveTo(-stepper1.currentPosition());
  s28BYJ-48.run();
}