Бібліотека отримала ім'я 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-файл, приклад програми - завантажити