Підручники для Arduino; Переглянути тему - L293D та контролер двигуна Arduino
L293D та контролер двигуна Arduino
L293D та контролер двигуна Arduino
від tip Top »Пн 25 листопада 2013 21:03
Підручник з використання екрану контролера двигуна L293D з Arduino

Використані компоненти
- 1 дошка Arduino Uno
- 1 Контролер щитового двигуна L293D
- 2 сервомотори, наприклад:
- 1 Сервомотор MR90S 2кг.см
- 1 Міні-сервомотор SG90 9g
- Сервомотор з металевим редуктором
- 2 двигун постійного струму
- 1 біполярний кроковий двигун
- Проводка проводів
- 1 джерело живлення 9 В 1 А (трансформатор 220/9 В)
Принцип роботи
Екран L293D встановлюється безпосередньо на плату Arduino (Uno, мега.) І додає функції управління постійним струмом та кроковим двигуном: регулювання швидкості (з кроком 0,5%) та напрямку обертання двигунів.
Він може керувати одночасно завдяки 4 H-мостам:
- 4 двигуни постійного струму постійного струму або 2 крокові двигуни (однополюсні або біполярні) в одній котушці, подвійній котушці, напівкроковому або мікрокроковому режимі.
- Він одночасно управляє 2 модельними сервомоторами (стандарт 5 В).
Бібліотека використовується для управління прискоренням та гальмуванням крокових двигунів.
ШІМ також може керувати соленоїдом, інтенсивністю освітлення, реле. з 8 напівмостами.
Технічні характеристики
- Двигуни можуть харчуватися від 4,5 В до 36 В.
- Є 4 канали високої напруги, сильний струм з 0,6 А на міст (піковий струм 1,2 А) з тепловим захистом.
- Кнопка скидання.
- Витягніть резистори, деактивуючи двигуни під час включення живлення.
- 2 інтерфейси живлення для відділення логічної частини від силової частини (двигуни)
Щит включає 2 мікросхеми L293D, драйвери двигуна та регістр перемикання 74HC595. Це розширює 3 висновки Arduino до 8 висновків для управління напрямком водіїв двигуна.
Вихідні пристрої L293D безпосередньо підключені до ШІМ-виходів Arduino (широтно-імпульсна модуляція) для управління швидкістю двигунів.
Вхід 5 В дозволяє вам не використовувати 5 В плати Arduino для живлення сервомоторів і уникати нагрівання плати.
Використовувані шпильки
Цифрові штифти, що використовуються екраном, - це 3, 4, 5, 6, 7, 8, 9, 10, 11, 12.
- Регістр зсуву використовує висновки 4 7 8 12.
- Виводи 9 і 10 призначені лише для серводвигунів.
- Для послідовного посилання використовуються 0 (RX) і 1 (TX). Використовується SPI.
- ШІМ-сигнали від Arduino для управління двигунами використовують ШІМ-контакти 3 5 6 і 11
Шпильки вільні у використанні
- Аналогові штифти Arduino не використовуються: всі доступні (A0 - A5) в аналоговому або цифровому режимі.
- Також може використовуватися I2C (A4 = SDA та A5 = SCL)
- Безкоштовні цифрові шпильки: 2 (отвір на платі для проведення дроту), 13 (зі світлодіодом).
Зв'язки
Подайте карту струму. У цьому випадку окремого джерела живлення для Arduino та екрану зніміть перемичку з позначкою PWR на платі.
Зелений світлодіод позначає джерело живлення мостів.
За допомогою двопровідного двигуна постійного струму, наприклад, підключіть між M1_A та M1_B.
Змініть дроти, щоб змінити напрямок обертання, або в програмі Arduino.
Важливо забезпечити джерело живлення, достатньо потужне для роботи ваших двигунів, плата Arduino виводить лише керуючі логічні сигнали, а не сигнали живлення. Забезпечте на 1,2 В більше номінальної напруги двигунів і вищий струм, ніж їх максимальне споживання (двигуни будуть отримувати лише те, що їм потрібно).
Окремий блок живлення вирішує проблеми падіння напруги, які можуть скинути плату. Зверніть увагу на полярність
Потрібно підключити кроковий двигун з 4 проводами
- M1_A -> чорний (котушка 1)
- M1_B -> коричневий (котушка 1)
- M2_A -> помаранчевий (котушка 2)
- M2_B. -> жовтий (котушка 2)
Один або два сервомотори повинні бути підключені до серво_1 або серво_2 (3-контактний роз'єм)
- Сигнал S -> жовтий
- + Потужність -> червоний
- - Gnd -> коричневий
Програмування: для 1 двигуна постійного струму, 2 сервоприводів, 1 лампи
Бібліотека Servo.h використовується для управління сервомоторами.
Команди вперед, назад, гальмування та відпускання обертають двигун в одному напрямку, в іншому, гальмуючи та зупиняючи відповідно.
Швидкість = 0 дозволяє зупинити обертання (плаваючий вихід і відключений)
ШІМ змінюється від 0 до 255 (зупинка на повній потужності).
Щоб не поспішати з мотором, важливо зупинити його перед реверсом: встановіть затримку (500) .
Ця проста програма керує двигунами постійного струму (1-4) та сервоприводами (1-2) або лампами. Якщо двигуни видають шум (через використання ШІМ analogWrite ()), використовуйте бібліотеку Adafruit, яка краще оптимізована.
- Він обертає два сервомотори від 0 до 180 ° вперед і назад.
- Він включає світло (1 зелений світлодіод + 470 Ом послідовно) в режимі ШІМ
- Він повністю повертає двигун постійного струму вперед, зупиняє його і знову запускає з половиною швидкості у зворотному напрямку.
Код
Код: Виділити все // ============================================== = =====
// Щит L293D для Arduino
// tiptopboards.com 23 11 2013
// Адаптовано з:
// Програма Adafruit та користувач arduino.cc "Krodal". Червень 2012 р
// Відкритий код/Громадське надбання, для Arduino 1.0.1
// ==================================================== = =
// Виходи H-моста -> Двигуни постійного струму, реле, освітлення
// Немає крокового двигуна з програмою
// Два сервоприводу використовують бібліотеку Servo.h
// максимум 4 двигуни постійного струму (або 8 виходів)
// ==================================================== = ==
#include // Бібліотека для 2-х серводвигунів
// Arduino-шпильки для регістру зсуву 4 7 8 12
#define MOTORLATCH 12
#define MOTORCLK 4
#define MOTORENABLE 7
#define MOTORDATA 8
// 8-бітна шина на виході регістру зсуву 74HC595
// Використовується для встановлення напрямку мостів команд
#define MOTOR1_A 2 // це не шпильки Arduino
#define MOTOR1_B 3
#define MOTOR2_A 1
#define MOTOR2_B 4
#define MOTOR3_A 5
#define MOTOR3_B 7
#define MOTOR4_A 0
#define MOTOR4_B 6
// Виводи Arduino для ШІМ-сигналів (двигуни та сервоприводи) 3 5 6 9 10 11
#define MOTOR1_PWM 11
#define MOTOR2_PWM 3
#define MOTOR3_PWM 6
#define MOTOR4_PWM 5
#define SERVO1_PWM 10
#define SERVO2_PWM 9
// Коди моторних функцій
#define FORWARD 1 // 4 командні режими
#define BACKWARD 2 // зупинка переднього заднього гальма
#define BRAKE 3
#define ВИПУСК 4
// Деклараційні класи серво
Серво серво_1;
Серво серво_2;
// Ініціалізації
void setup ()
Serial.begin (9600);
Serial.println ("Щит двигуна L293D");
servo_1.attach (SERVO1_PWM); // Прикріпіть сервоприводи
servo_2.attach (SERVO2_PWM); // та центрування сервоприводів
>
// Основна програма
цикл void ()
// Перемістіть 2 сервоприводи від 0 до 180 градусів
servo_1.write (0); // Серво 1
затримка (1000);
servo_1.write (180);
затримка (2000);
servo_2.write (0); // Так само для сервоприводу 2
затримка (1000);
servo_2.write (180);
затримка (2000);
// Соленоїд або реле між M3_A та GND, наприклад
вихід_мотора (MOTOR3_A, HIGH, 255); //Освітлювати
затримка (2000);
вихід_мотора (MOTOR3_A, LOW, 255); //Вимкнути
// Двигун постійного струму, підключений між M1_A (+) та M1_B (-)
двигун (1, ВПЕРЕД, 255); // Поверніть повністю вперед
затримка (2000);
двигун (1, ВИПУСК, 0); // Перед зупинкою двигуна зупиніть двигун
затримка (500);
двигун (1, НАЗАД, 128); // Половина швидкості в зворотному напрямку
затримка (2000);
двигун (1, ВИПУСК, 0); // При ГАЛЬМІ та ВИПУСКУ швидкість ігнорується
>
// === Функція двигуна
// Вибираємо двигун (1-4), команду та швидкість (0-255).
// Команди: ВПЕРЕД, НАЗАД, ГАЛЬМО, ВИПУСК.
порожній двигун (int nMotor, int command, int speed)
int motorA, motorB;
if (nMotor> = 1 && nMotor = 0 && швидкість
Технічні поради
Мікросхема L293D дозволяє паралельно працювати, ви можете припаяти через цю інтегральну схему одну або дві інші однакові мікросхеми для збільшення струму (зворотного зв'язку), а також встановити радіатор охолодження на мікросхему.
Гальмування L293D не є ідеальним, оскільки ця інтегральна схема використовує транзистори, а не мод-транзистори. Ви можете загальмувати двигун, подаючи зворотну напругу. Тут ми ставимо два виходи до маси.
Більшість «дивних поломок» з двигунами спричинені недостатньою потужністю.
Програмування для крокових (крокові двигуни)
Використовується 4-провідний біполярний двигун, який можна розташувати під точним кутом: ідеально підходить для робототехніки, проектів з ЧПУ.
бібліотека однаково працює для однополярних та біполярних двигунів.
Встановіть бібліотеку AFMmotor.h, яку можна завантажити тут https://github.com/adafruit/Adafruit-Mo. ld-бібліотека
Він включає ці 5 прикладів:
- AFMotor_ConstantSpeed
- AFMotor_MultiStepper
- Автомобільна партія
- Motor_Test
- Степпер_тест
Принцип програми:
Створіть об’єкт крокового двигуна за допомогою AF_Stepper (крок, кроковий номер #) для його налаштування
step - кількість кроків. Наприклад, з двигуном 7,5 градусів/крок, потрібно 360/7,5 = 48 кроків, щоб зробити повний оберт.
stepper # - це порт, який підключений.
Встановіть частоту обертання двигуна за допомогою SetSpeed (об/хв)
Для повороту використовуйте функцію кроку (#steps, direction, steptype)
#steps - це кількість кроків, які потрібно повернути
напрямок - ВПЕРЕД або НАЗАД
Стептип - ОДИНИЙ (одинарна котушка), ДВОЙНИЙ (дві котушки, активовані одночасно для максимального крутного моменту), ІНТЕРЛЕВ (півкроку, чергування одинарного та подвійного, для подвійної роздільної здатності, але половинної швидкості) або МІКРОКРОК (для плавного переміщення між сходинки, котушки в ШІМ).
Дивіться тут http://fr.wikipedia.org/wiki/Moteur_pas_%C3%A0_pas для цих різних режимів управління.
За замовчуванням двигун утримує положення зупинки, якщо ми не робимо випуск () .
Налаштування
- Якщо швидкість занадто висока, кроковий вібруватиме без повороту (це не слідує).
- Якщо ви програєте кроки, перейдіть у ДВОЙНИЙ режим, більш потужний
- Режим MICROSTEP плавніший, але струми модулюються в ШІМ і запускаються повільно, двигун має менший крутний момент на початку кроку, він також може видавати невеликий вібраційний шум.
Підключення біполярних двигунів
Визначте 2 котушки двигунів за допомогою омметра.
Степпер 1 на порту 1, 200 кроків за оборот (кут 1,8 град/крок)
- A + -> жовтий (котушка 1)
- A- -> помаранчевий (барабан 1)
- B + -> коричневий (котушка 2)
- B- -> чорний (котушка 2)
Степпер 2 на порту 2, 48 кроків на поворот (7,5 град/кут кроку)
- C + -> синій (котушка 1)
- C- -> жовтий (котушка 1)
- D + -> коричневий (котушка 2)
- D- -> червоний (котушка 2)
Ми використовуємо цей код тут
Код: Виділити все // ============================================== = ======
// 4-х дротове керування кроковим двигуном
// з екраном L293D для Arduino
// Rolland 23 11 2013 tiptopboards.com
// Крокові двигуни (наприклад, 48 або 200 кроків за оберт)
// demo_L293_stepper
// ==================================================== = ==
#include // Завантажте та встановіть цю бібліотеку
// Підключіть 2 котушки двигуна, тут на порту 2 (C і D)
// 1,8 д, напр./Крок, тобто 360/10,8 = 200 кроків за оборот
// AF_Stepper motor (200, 2); // Крок за кроком 200 кроків за оборот, на порту 2 (C і D)
// Двигун 7,5 градусів/крок, тобто 360/7,5 = 48 кроків усіма
AF_Шаповий двигун (48, 1); // Степпер з 48 кроків за оборот, на порту 1 (A і B))