Програмна бібліотека управління п'ятьма сервоприводами на мікроконтролері attiny45

Програмна бібліотека управління п'ятьма сервоприводами на мікроконтролері attiny45

Бібліотека отримала ім'я Servo8Bit. вона підтримує роботу з 5 сервоприводами на мікроконтролері ATtiny45 і ATtiny85, з ресурсів мікроконтролера використовує тільки 8-розрядний таймер. З її допомогою можна генерувати імпульси управління серво тривалістю від 512 до 2560 мкс з 8-бітовим дозволом (256 значень) і, найголовніше, дана бібліотека дуже проста у використанні.

ATtiny85 це 8-вивідних не дорогий мікроконтролер з багатою периферією. В мережі Інтернет є кілька рішень для управління сервоприводами, проте деякі мають недостатнє дозвіл, інші розраховані на мікроконтролери з великою кількістю висновків і використовують у своїй роботі 16-бітний таймер.

Бібліотека написана за зразком бібліотеки Arduino для управління сервоприводом і має ідентичний інтерфейс. Для компіляції використовується WinAVR.

Ось короткий приклад програми, що демонструє, як використовувати бібліотеку Servo8Bit.

В даному прикладі опущено визначення функції delay (). яка необхідна, тому що використовуються тимчасові затримки в тексті програми. У секції завантажень є сама бібліотека і повна програма-приклад для управління серводвигуном.

Бібліотека містить кілька функцій. Розглянемо їх призначення.

  • функція attach () - функція, призначає змінної Servo висновок мікроконтролера для керування сервоприводом. Наприклад, myServo.attach (1) - порт мікроконтролера PB1 використовується для управління сервоприводом;
  • функція write () - запис значення в градусах в сервопривід, відповідно управління виконавчим механізмом сервоприводу, тобто поворот штока сервоприводу на задану величину;
  • функція writeMicroseconds () - запис значення в мікросекундах в сервопривід, відповідно управління валом сервоприводу;
  • функція read () - функція призначена для отримання інформації про поточний стан вала сервоприводу (це значення функція отримує з останнього виклику функції write ());
  • функція attached () - перевіряється призначений чи змінної Servo висновок мікроконтролера;
  • функція detach () - відключення змінної Servo від виведення мікроконтролера.

Коли призначається висновок мікроконтролера для керування сервоприводом - функція attach (). на цьому висновку мікроконтролера починається генерація керуючого ШІМ сигналу. Функція detach () зупиняє генерацію ШІМ сигналу, тобто після виконання даної фуннкці вказаний в функції порт мікроконтролера не використовуватиметься для управління сервоприводом. Для повторного включення потрібно виклик функції attach ().

Керуючий сигнал - це імпульсний сигнал з ШІМ (широтно-імпульсною модуляцією), що представляє собою послідовність прямокутних імпульсів з амплітудою 3 В - 5 В і тривалістю від 0.9 до 2.1 мс. Власне тривалість імпульсу в ШІМ сигнал і визначає положення виконавчого механізму. Мінімальне значення - означає розворот в крайнє ліве положення, середнє - центральне положення штока, а максимальне значення - крайнє праве положення. Однак існують деякі відмінності керуючих параметрів, в залежності від моделі сервоприводу.

За замовчуванням, це команда сервоприводу для переміщення в середнє положення. Користувач управляє сервоприводом за допомогою функції write () з числом в діапазоні від 0 до 180. Це число - положення штока сервоприводу в градусах. Мікроконтролер формує відповідно до цього значенням потрібний ШІМ сигнал.

Так як випускаються різні моделі сервоприводів і параметри у них різні, то обов'язково потрібно конфігурація - зміна тривалості імпульсів ШІМ сигналу. З цією метою дозволяється використовувати функцію write () з декількома аргументами: write (pin, min, max), де, pin - висновок мікроконтролера, призначений для управління сервоприводом, min - мінімальне значення тривалості імпульсу для генерації команди установки штока в положення 0 градусів, max - максимальне значення тривалості імпульсу для генерації команди установки штока в положення 180 градусів. Значення за замовчуванням - 544 мкс і 2400 мкс. Крім того, дозволяється використовувати функцію writeMicroseconds () для ручної установки тривалості імпульсу.

Обмеження поточної версії бібліотеки:

  • підтримка різних тактових частот;
  • підтримка конфігурації таймера для використання драйвером сервоприводу.

завантаження
Програмна бібліотека Servo8bit, make-файл, приклад програми - завантажити

Схожі статті