Детальну теоретичну інформацію про крокових двигунах можна знайти на просторах інтернету, а тут займаємося практичним рішенням. Уніполярний двигун має одну обмотку в кожній фазі, від середини обмотки зроблений відвід. Це дозволяє змінювати напрямок магнітного поля, що створюється обмоткою, простим перемиканням половинок обмотки. При цьому істотно спрощується схема драйвера. Драйвер повинен мати тільки 4 простих ключа. Середні висновки обмоток можуть бути об'єднані всередині двигуна, тому такий двигун може мати 5 або 6 висновків. Іноді уніполярні двигуни мають роздільні 4 обмотки, з цієї причини їх помилково називають 4-х фазними двигунами. Кожна обмотка має окремі висновки, тому все висновків 8. Через простоту підключення і управління униполярного двигуна в цій статті розглянемо саме цей тип крокової двигуна.
Керуючий контролер Atmega8, тактується від внутрішнього генератора частотою 8МГц. У програмі використовуємо два зовнішніх переривання і переривання по переповнення таймера Т0. Всі переривання визначаємо і налаштовуємо в головній функції, також налаштовуємо порти введення / виводу мікроконтролера.
Для запуску двигуна в ту чи іншу сторону необхідно подати на його обмотки послідовність імпульсів зсунутих по фазі. Ці послідовності імпульсів визначимо в масивах cw_dir [] і ccw_dir []. відповідно за годинниковою стрілкою і проти годинникової стрілки. Покажчик напрямку обертання status змінює свій стан з лог.0 на лог.1 і навпаки при натисканні на одну з кнопок SB1 і SB2. Якщо status == 1 двигун обертається проти годинникової, якщо status == 0 двигун обертається за годинниковою стрілкою. Мінлива status змінює своє значення при настанні зовнішніх переривань на входах INT0 і INT1. Щоб відбувалося зовнішнє переривання підтягуємо входи INT0 і INT1 через резистори до плюса харчування.
Обговорення статті на форумі
Я так зрозумів що сигнал буде слідувати кожну секунду?
Ні, імпульс слід кожну хвилину. Щоб було зрозуміліше, я кілька заглиблюючись в подробиці. Годинники баштові. До цього часу пересування годинникового механізму було від маятникової системи, яка була дуже ненадійна. Кожне хвилинне переміщення маятника повертало зубчасте колесо на певний кут. Зараз маятник замінений на кроковий двигун і в загальному розрахунку передавального числа зубчастого механізму. двигун повинен робити 8 кроків кожну хвилину зі швидкістю 1 оборот в секунду. Хвилинний імпульс управління приходить з первинних електронних годинників. У режимі очікування, споживання струму кроковими двигунами бути не повинно. У схемі можна застосувати і менш потужний мікроконтролер. В даний час ця схема управління виконана у мене на апаратному рівні і працює вже 5 років, але мені хочеться виконати це на більш сучасному рівні, але ось досвіду і знань по программіровані ю немає. Тому прошу допомогти. Як електронник досить сильний.
Код виклав в форумі, якщо треба HEX пишіть