- Модуляція ширини імпульсу (ШІМ)
- Програмування ATtiny13 за допомогою Arduino
- Потрібні компоненти
- Принципова схема та робота
Сервомотор працює за принципом широтно-імпульсної модуляції (ШІМ), і його кут повороту регулюється тривалістю імпульсу, поданого на його керуючий штифт. У цьому посібнику ми будемо керувати сервомотором за допомогою мікроконтролера ATtiny13, використовуючи ШІМ-техніку. Тож перед тим, як іти далі, ми спочатку дізнаємося про ШІМ, сервомотор і про те, як програмувати ATtiny13 за допомогою Arduino Board.
Модуляція ширини імпульсу (ШІМ)
Широтно-імпульсна модуляція (ШІМ) визначається як метод генерації аналогового сигналу за допомогою цифрового джерела. ШІМ-сигнал складається з двох основних компонентів - робочого циклу та частоти. Ці компоненти визначають його поведінку. Черговий цикл описує кількість часу, коли сигнал знаходиться у високому стані. Він позначається як відсоток від загального часу, необхідного для завершення одного циклу.
Цикл роботи = час включення / (час включення + час вимкнення)
Частота визначає, наскільки швидко ШІМ завершує цикл і як швидко сигнал перемикається між високим і низьким станами. Частота 100 Гц означає 100 циклів в секунду. Швидко вмикаючи та вимикаючи цифровий сигнал із певним робочим циклом, вихід буде виглядати як аналоговий сигнал з постійною напругою. Однією з потужних переваг ШІМ є те, що втрати потужності дуже мінімальні.
Усі серводвигуни працюють безпосередньо з напругою + 5 В, але ми повинні бути обережними щодо величини струму, який споживає двигун. Якщо ми використовуємо більше двох сервомоторів, слід розробити відповідний сервощит.
Перш ніж підключати сервопривід до Attiny13, ви можете протестувати свій сервопривід за допомогою цієї схеми тестера сервомотора. Тут ми з'єднали сервомотор з багатьма мікроконтролерами:
- Зв'язок сервомотора з ARM7-LPC2148
- Зв'язок сервомотора з MSP430G2
- Керування кількома серводвигунами за допомогою Arduino
- Взаємозв'язок серводвигуна з мікроконтролером PIC за допомогою MPLAB та XC8
- Серводвигун з Raspberry Pi
- Управління сервомотором з Arduino Due
- Взаємозв'язок серводвигуна з мікроконтролером AVR Atmega16
Програмування ATtiny13 за допомогою Arduino
Attiny13 можна запрограмувати за допомогою Arduino Uno або будь-якої іншої плати Arduino. Підключіть Attiny13 до Arduino Uno, як показано на малюнку нижче.
- Arduino 5V - ATtiny13 контакт 8
- Arduino GND - ATtiny13 контакт 4
- Arduino pin 13 - ATtiny13 pin 7
- Arduino pin 12 - ATtiny13 pin 6
- Arduino pin 11 - ATtiny13 pin 5
- Arduino pin 10 - ATtiny13 pin 1
Arduino призначений програмістом для програмування ATtiny13. Це робиться шляхом завантаження ескізу ArduinoISP в Arduino. Цей ескіз Arduino доступний у прикладах в IDE Arduino. Відкрийте IDE Arduino і перейдіть до Файли> Приклади> ArduinoISP .
Тепер програма для ArduinoISP з’явиться. Завантажте програму в Arduino Uno.
Тепер Arduino Uno готовий програмувати Attiny13. Але ми повинні налаштувати Attiny, встановивши його основні файли. Для цього перейдіть у меню Файл >> Налаштування в IDE Arduino
Потім з’явиться нове вікно. А в “ Додаткові URL-адреси менеджера дошки ” додайте посилання нижче та натисніть “OK”.
“Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json”
Тепер у вашій IDE Arduino перейдіть до Інструменти >> Дошка >> Диспетчер дошок
Потім з’явиться інше вікно, де у вікні пошуку введіть «Attiny», тоді ви отримаєте «DIY ATtiny», потім натисніть кнопку «встановити» (я вже встановив, тому кнопка встановлення сірого кольору)
Щоб розпочати програмування ATtiny 13, ми повинні записати на нього завантажувач. Для цього перейдіть до Інструменти> Дошка> ATtiny13.
Тепер перейдіть до Інструменти> Версія процесора та перевірте, чи вибрана правильна версія ATtiny. Виберіть ATtiny13 або ATtiny13a залежно від вашої мікросхеми.
Потім натисніть кнопку Записати завантажувач внизу меню Інструменти.
Після записування завантажувача ATtiny тепер готовий до програмування. Тепер ви можете завантажити свою програму.
Потрібні компоненти
- Мікроконтролер ATtiny13
- Серводвигун
- Потенціометр
- + 5 В акумулятор
- IDE Arduino
- Підключення проводів
Принципова схема та робота
Схема керування сервомотором за допомогою каструлі з ATtiny13 наведена нижче.
Нижче наведені зв’язки
- Підключіть штифт управління серводвигуном до штифта 5 ATtiny13
- Підключіть землю сервомотора до контакту 4 ATtiny13
- Підключіть VCC сервомотора до контакту 8 ATtiny13
- Підключіть середній штифт потенціометра до штифта 7 ATtiny13
- Підключіть перший і третій висновки потенціометра до VCC і GND.
- Підключіть плюсик акумулятора + 5 В до виводу 8 ATtiny13
- Підключіть мінус акумулятора + 5 В до виводу 4 ATtiny13
Потенціометр підключений до висновку 7 (PB2) ATtiny13, а провід управління серводвигуна - до виводу 5 (PB0).
Тут зчитується значення потенціометра, і воно перетворюється на значення від 0 до 180. Потім це значення кута перетворюється в мікросекунди, і імпульс подається на керуючу цапфу сервомотора з розрахунковою мікросекундною затримкою. Тепер сервомотор буде обертатися відповідно до значення потенціометра, як показано у відео, поданому нижче.