Продовжую цикл заміток «проекти-малюки»
У цій статті буде розглянута одна з можливих реалізацій модуля управління біполярним ( «двофазним») кроковим двигуном (ШД) на базі зв'язки мікросхем L297 / 1 і L298N:
По весні зайшов до мене один мій хороший товариш. У товариша з'явилася ідея - зробити собі свердлильно / гравіювання / фрезерний верстат. Він практично все вже # x301е знайшов - і движки, і свердла / фрези, і навіть відповідну станину для верстата. Не вистачало тільки вузлів для управління ШД. Ну і, власне, прохання товариша полягала в наступному - зроби мені плати управління двигунами для мого майбутнього верстата.
Оскільки движки він знайшов біполярні (з чотирма провід # x301амі на «виході»), для управління ШД передбачалося використовувати широко розповсюджену мікросхему L298N (ну і L297 - в якості контролера). І на мій боязкий питання ( «А на хера городити щось нове, коли в Інтернеті навалом готових рішень по темі, а краще взагалі спорудити схему з МК») пішов не менше боязкий відповідь: «Хочеться зробити так, як мені треба, а шукати відповідну реалізацію - з розуму зійдеш, та й не факт, що знайдеш ». Ну а оскільки товариш дійсно хороший - вирішив-таки піти у нього на поводу і розвести плату під саме його н # x301ужди. В результаті народилася така ось схема:
Є думка, що мікросхеми L297 і L298 були розроблені саме для роботи в зв'язці. І саме цим пояснюється нехуевий такої їх комерційний успіх. Даний успіх побічно підтверджується тим, що L297 і L298 досі нормально продаються (інфа від полум'яних трудівників радіоринку), незважаючи на те, що навіть убога зв'язка ATMega48 з кнопками, транзисторами і відповідної логікою рази в два дешевше, ніж L297 + L298, а функцій в МЕГУ можна напхати на порядок більше. Судіть самі - досить з'єднати відповідно до документацією чіпи L297 і L298 - і ось драйвер для біполярного ШД готовий, без жодних прошивок. Погодьтеся, це досить ласа тема для тих, хто з цеглою справи не має, а крокові двигуни крутити хоче. Та й взагалі - багато софт для верстатів-виробів заточений саме під L297.
Суть цього зв'язки - збираємо драйвер відповідно до документації і отримуємо можливість:
- крутити біполярні движки (до 46В і 2А на фазу, що за минулими часами дуже і дуже непогано);
- встановлювати швидкість крутіння;
- встановлювати напрямок крутіння;
- встановлювати максимальний струм обмотки ШД;
- встановлювати різні режими обертання ШД.
Повторю, що для цього не треба ніяких программаторов, щоб прошити будь-якої МК - всі функції управління наглухо вмонтовані в L297. А чіп L298 - і зовсім дурний, це просто драйвер, що дозволяє перетворювати слабкострумові логічні сигнали (0В / 5В) від LM297 в сигнали / ланцюга управління безпосередньо обмотками двигуна (46В / 2А).
Як видно зі стандартної схеми, по лініях A, B, C, D, INH1 і INH2 мікросхема L297 управляє ШД, по лініях SENSE_1 і SENSE_2 - зчитує ток обмотки двигуна. На інші висновки L297 подаються харчування і керуючі TTL-сигнали. У даній реалізації задіяні такі лінії управління роботи драйвером:
- CLOCK (CLK, pin 18): по цій лінії передається тактова частота обертання ротора двигуна;
- CW / CCW (DIR, pin 17): по цій лінії задається напрямок обертання ротора ШД (умовно - при лог. "1", яка присутня на даному вході, ротор ШД буде обертатися за годинниковою стрілкою, при лог. «0» - проти годинникової стрілки. Умовно - тому, що напрямок обертання ще й безпосередньо залежить від того, як саме підключені до L298 обмотки ШД);
- Vref (pin 15): по цій лінії здійснюється управління максимальним струмом обмотки ШД. Якщо напруга на токосчітивающіх резисторах R15 і R16 перевищить напругу на вході Vref, відповідна обмотка відключається до того моменту, поки напруга на R15 / R16 не стане менше Vref;
- HALF / FULL (H / F, pin 19): по цій лінії здійснюється вибір між полношаговим і полушаговим режимами обертання ротора ШД. Якщо на цьому вході логічний нуль - обраний полношаговий режим роботи, якщо одиниця - полушаговий;
- CONTROL (CTRL, pin 11): по цій лінії можна вибрати групу сигналів управління ШД, які будуть промодулірованной ( «порізані») сигналом від внутрішніх «струмових» компараторов (це які здійснюють контроль струму обмотки). Якщо на даній лінії логічний нуль - модулюються сигнали INH1 і INH2, якщо одиниця - сигнали A, B, C, D.
Все вищесказане - речі досить стандартні, не один раз описані, і питань тут ніби як не повинно виникати. Однак, у наведеній схемі є і пара «нововведень». По-перше, сигнали тактовою частот # x301и і вибору напрямку обертання ротора ШД подаються через оптрони, а це якась ніяка, а все-таки гальваноразвязку. По-друге, в схему додані дві оптопари для підключення кінцевих вимикачів. Тобто виходить, що модуль управління двигуном взагалі не пов'язаний гальванически з керуючим контролером (ні з LM297, а з, припустимо, МК, який управляє L297). По-третє, контролер L297 харчується від вбудованого в модуль лінійного стабілізатора на + 5.0в, так що окремої лінії живлення від користувача не вимагає (правда, жере він на п'яти вольтах до 80мА на холостому ходу - про це треба пам'ятати). Ну і найголовніше, з точки зору товариша: джампер «DIVIDER» і елементи, з ним пов'язані. Тут, напевно, треба зупинитися детальніше.
Якщо замкнуті контакти 2 і 3 джампера «DIVIDER», то схема працює в «звичайному» режимі: ланцюжок R2 + VD1 відключена і максимальний струм обмотки визначається тільки тим, в якому становищі знаходиться движок підлаштування резистора R5. А ось якщо замкнути контакти 1 і 2 джампера «DIVIDER», тоді відбувається наступне. Якщо на вході CLK присутня логічна одиниця, то за рахунок діода VD1 резистор R2 виявляється відключений від R5, і максимальний струм обмотки як і раніше визначається тільки підлаштування резистором. А коли на вході CLK присутній логічний нуль, ось тоді резистор R2 виявляється через діод VD1 посадженим на «масу», а це означає, що R2 шунтує R5. Через це напруга на вході Vref зменшується (на скільки - залежить від номіналів R2, R12 і типу діода VD1, при вказаних на схемі номіналах напруга на R5 зменшиться приблизно в два рази), що тягне за собою зменшення максимального струму обмотки. Ідею цю товариш у кого-то вкрав (у кого саме - не пам'ятає), а використовувати її вирішив для автоматичного зменшення струму утримання обмотки в ті моменти часу, коли движок не крутиться.
Харчування на схему подається через точки підключення 1 і 2 ( «плюс» і «маса» відповідно). Оскільки L297 харчується від вбудованого стабілізатора L7805, то діапазон напруг живлення становить + 7,5 В ... + 30,0В. Ще раз нагадаю - L297 жере непоганий струм, тому при напрузі живлення більш + 12,0В на стабілізатор краще повісити радіатор. Кроковий двигун підключається до точок 3-6. На платі точки 1-6 розташовані таким чином, що для подачі живлення і підключення ШД можна використовувати звичайні клеммники з кроком висновків, рівним 5,0 мм.
Кінцеві вимикачі підключаються до гнізда XP2 ( «LIMIT»). Ну а роз'єм XP1 ( «CONTROL») служить для зв'язку модуля управління ШД і, наприклад, мікроконтролера. Через цей роз'єм подається тактова частота, сигнал вибору напрямку обертання ротора ШД, а також знімаються сигнали від кінцевих вимикачів.
Під зазначену схему була негайно розлучена і виготовлена друкована плата:
Як видно, плата вийшла одностороння, і розлучена під діркові елементи ([поправляє окуляри] під радіокомпоненти для установки і монтажу в отвори), бо місце дозволяло, а початківцям так буде простіше. SMD-елемент рівно один - конденсатор C12. Крім деталей, зображених на схемі, присутні також 4 дротові перемички J1-J4 (дві по 20,32мм і дві по 7,62 мм). Під оптронами по ідеї повинна бути профрезерований щілину (це там, де «маска» відсутній) для забезпечення «справжньої» гальваноразвязку. Однак, товариш розпорядився щілина не робити, оскільки величезною різниці потенціалів між модулем і контроллером у нього явно не буде.
Ну і габаритні розміри плати укупі з елементами комутації та управління:
На сьогодні все. Бажаю удачі при роботі з кроковими двигунами!
БУШД-01N.04-02.pdf - схема, плата в невідомому масштабі і габаритні розміри модуля;
БУШД-01N.04-02_ФР.lay - плата, варіант для «шаблонщіков»;
БУШД-01N.04-02_ЛУТ.lay - плата, варіант для «утюжніков».
Плати намальовані в Sprint Layout 5.0 (безкоштовна баньки).
Рекомендую ще виводити «ENABLE» для всіх моторів - дуже годиться для аварійної кнопки на контролері. Інакше буде багато поломаних фрез і свердел. Ну і так само рекомендую a4982 або схожі чіпи - все теж в одному флаконі і набагато менше деталей навколо. У мене зібрано 4 осі в розмір Вашої одне плати. Там полевекі тому там теж як би 2 ампера без проблем з радіатором для пам'яті в ПК ...
чогось не зрозумів ось цього:
2 ампера без проблем з радіатором для пам'яті в ПК ...
а в цілому - для себе я ніколи б не став збирати таке. там все чудово на МК + польовики виходить. але ось чоловік попросив саме так - тому зроблено саме так.
Я не так написав :) Я на на a4982 клею радіатори від РАМ для ПК - це такі маленькі радіаторчікі 20х10 мм