Драйвер двигателя ULN2003: различия между версиями
(вставил код) |
(внёс схему подключения драйвера к ардуино) |
||
Строка 29: | Строка 29: | ||
* '''COM''' – Общий катодный узел для диодов в цепи обратной связи(обязателен для индуктивных нагрузок); | * '''COM''' – Общий катодный узел для диодов в цепи обратной связи(обязателен для индуктивных нагрузок); | ||
* '''E''' – Общий для всех ключей эмиттер (обычно подключается к земле). | * '''E''' – Общий для всех ключей эмиттер (обычно подключается к земле). | ||
Строка 39: | Строка 38: | ||
== Об устройстве драйвера == | == Об устройстве драйвера == | ||
[[Файл:Изображение 2021-06-27 140841.png|мини|Структурная схема ULN2003]] | |||
Краткое описание ULN2003a. Микросхема ULN2003a — это транзисторная сборка Дарлингтона с выходными ключами повышенной мощности, имеющая на выходах защитные диоды, которые предназначены для защиты управляющих электрических цепей от обратного выброса напряжения от индуктивной нагрузки. | Краткое описание ULN2003a. Микросхема ULN2003a — это транзисторная сборка Дарлингтона с выходными ключами повышенной мощности, имеющая на выходах защитные диоды, которые предназначены для защиты управляющих электрических цепей от обратного выброса напряжения от индуктивной нагрузки. | ||
Каждый канал (пара Дарлингтона) в ULN2003 рассчитан на нагрузку 500 мА и выдерживает максимальный ток до 600 мА. Входы и выходы расположены в корпусе микросхемы друг напротив друга, что значительно облегчает разводку печатной платы. | Каждый канал (пара Дарлингтона) в ULN2003 рассчитан на нагрузку 500 мА и выдерживает максимальный ток до 600 мА. Входы и выходы расположены в корпусе микросхемы друг напротив друга, что значительно облегчает разводку печатной платы. | ||
[[Файл:Изображение 2021-06-27 141115.png|центр|мини|503x503пкс|Принципиальная схема ULN2003]] | |||
ULN2003 | == Подключение драйвера ULN2003 к Arduino uno == | ||
[[Файл:Подключение драйвера ULN2003 к Arduino uno.jpg|мини|Подключение драйвера ULN2003 к Arduino uno]] | |||
В данном примере использeтся драйвер ULN2003, Arduino UNO R3 и двигатель 28BYJ-48-5V. | |||
Версия от 11:20, 27 июня 2021
ULN2003 — это универсальная интегральная микросхема, состоящая из 7 идентичных и независимых драйверов, которые позволяют управлять с помощью микроконтроллера реле, небольшим двигателем постоянного тока, шаговым двигателем, низковольтными лампами или светодиодной лентой.
Характеристики драйвера ULN2003.
- размеры платы – 32х35 мм;
- межосевые размеры платы – 30х27 мм;
- напряжение питания – 5-12В;
- управляющее напряжение – 5В;
- вес – 8 г;
- номинальный ток коллектора каждого ключа – 0,5А;
- наличие светодиодной индикации фаз;
- вход адаптирован к различным видам логики.
Контакты драйвера
- 1B,2B,3B,4B,5B,6B,7B – Входы от 1 до 7, подключенные к цепи базы составного транзистора;
- 1C,2C,3C,4C,5C,6C,7C – Выходы от 1 до 7, подключенные к коллектору составного транзистора
- COM – Общий катодный узел для диодов в цепи обратной связи(обязателен для индуктивных нагрузок);
- E – Общий для всех ключей эмиттер (обычно подключается к земле).
Об устройстве драйвера
Краткое описание ULN2003a. Микросхема ULN2003a — это транзисторная сборка Дарлингтона с выходными ключами повышенной мощности, имеющая на выходах защитные диоды, которые предназначены для защиты управляющих электрических цепей от обратного выброса напряжения от индуктивной нагрузки.
Каждый канал (пара Дарлингтона) в ULN2003 рассчитан на нагрузку 500 мА и выдерживает максимальный ток до 600 мА. Входы и выходы расположены в корпусе микросхемы друг напротив друга, что значительно облегчает разводку печатной платы.
Подключение драйвера ULN2003 к Arduino uno
В данном примере использeтся драйвер ULN2003, Arduino UNO R3 и двигатель 28BYJ-48-5V.
Программа для драйвера мотора ULN2003
Код для управления шаговым мотором через драйвер ULN2003
#include <CustomStepper.h> // Подключаем библиотеку CustomStepper CustomStepper stepper(8, 9, 10, 11); // Указываем пины, к которым подключен драйвер шагового двигателя boolean rotate1 = false; // Переменная для смены режимов boolean rotatedeg = false; // Переменная для смены режимов boolean crotate = false; // Переменная для смены режимов void setup() { stepper.setRPM(12); // Устанавливаем количество оборотов в минуту stepper.setSPR(4075.7728395); // Устанавливаем колочество шагов на полный оборот. Максимальное значение 4075.7728395 } void loop() { if (stepper.isDone() && rotate1 == false) { stepper.setDirection(CCW); // Устанавливает направление вращения (по часовой) 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. Он инициирует работу двигателя, когда это необходимо }