Намотувальний станок на Arduino

Іноді в радіолюбительській практиці виникає необхідність намотки великої кількості витків проводу для створення трансформаторів, дроселів, котушок та подібних моточних виробів. Якщо йдеться про сотню витків, особливих проблем немає, намотується за допомогою простих механічних пристроїв. Але коли потрібно намотати кілька тисяч витків, та ще й виток до витка, то тут задумуєшся про автоматизацію цього вельми втомливого процесу. 

Пристрій, про який піде мова, являє собою автоматичний намотувальний станок з укладчиком витків та індикацією процесу на символічному ЖК екрані. 
Інтелектуальним ядром пристрою є знайомий багатьом мікроконтролер ATmega328P, розташований на китайському варіанті плати Arduino UNO. Контролер через CNC Shield (плата розширення ЧПУ) управляє силовою частиною пристрою, що складається з двох драйверів крокових двигунів (КД) на базі мікросхеми DRV8825 та двох КД 17HS3401 і 17HS4401 (повний оберт 200 кроків). Людсько-машинний інтерфейс складається з модуля поворотного енкодера KY-040 та символічного дисплея 16x2 з контролером HD44780 та модулем зв’язку по шині I2C на розширювачі портів PCF8574A. Живлення схема отримує від імпульсного БП 220AC-12DC 60W. 

Arduino UNO

Мікроконтролер задіює драйвера «Z» та «A», при цьому на CNC Shield-е для з'єднання драйвера «A» з пинами 12 і 13 ардуіно необхідно встановити перемички D12-A.STP та D13-A.DIR. Режим роботи DRV8825 вибираємо з мікрошагом 1/16, встановивши перемички M2 на платі, це означає що на один крок КД (1,8°) необхідно подати 16 фронтів сигналу STP. Установку модулів DRV8825 необхідно виконати так, як показано нижче.

Після установки драйверів КД необхідно обов'язково виставити обмеження по току. При підключеній напрузі 12В до плати CNC Shield, але без електродвигунів, необхідно, обертаючи підстроювальний резистор, виставити значення обмежень. Поточне значення контролюємо мультиметром і, обертаючи викруткою підстроювальник, досягаємо значень напруги для драйвера «Z» 0,68В та 0,52В для драйвера «A». Ці значення прямо пов'язані з номінальним током КД. Для 17HS4401 In = 1,7А, а для 17HS3401 In = 1,3А. Значення напруги в щадному для КД режимі обчислюємо за формулою Vref = 0,8*(In / 2).

Підключення I2C 1602 LCD виконуємо до відповідних виводів SCL, SDA, 5V, GND плати розширення. На модулі енкодера допаиваем подтягуючий резистор R1 10k якщо його там немає. Для усунення дребезгу контактів необхідно зібрати схему апаратного подавлення, її можна оформити у вигляді модуля, що доповнює модуль KY-040, як показано нижче. Фільтри низьких частот на R4-6 та C1-3 усувають дребезг, а тригери Шміта МС 74НС14N відновлюють фронт та спад сигналу.


Для підключення енкодера до ардуіно з'єднуємо пини X.STEP та CLK, Y.STEP та SW, X.DIR та DT а також GND та +5V з відповідними виводами плати.


Механічна частина намотувального станка - це шість стійок, прикручених до оргсклу. Стійки надруковані пластиком на 3D принтері, але за наявності належної вправності можуть бути виготовлені іншими способами та з інших матеріалів. Основний вал (шпилька М6) приводиться в рух КД 4401, і на ньому розташовується каркас для намотки. Далі дві стійки укладчика з валом діаметром 6мм та шпилькою М4 (крок різьби 0,7мм) на валу КД 3401. Обертання двигуна призводить до лінійного переміщення укладчика, при цьому один крок КД дає переміщення L = крок різьби / кроків на оберт = 0,7/200 = 0,0035мм. Останні дві стійки тримають подаючу котушку. Притиском гумової шайби до підшипника забезпечується натяг проводу при намотці. 

Програма для ATmega328P написана в середовищі розробки Arduino IDE на мові C++. Для успішної компіляції коду необхідно мати встановлену бібліотеку LiquidCrystal_I2C.

З основного меню можна потрапити в підменю управління позицією крокових двигунів POS CONTROL, це необхідно для встановлення початкової позиції основного вала та укладчика. Підменю AUTOWINDING призначено для введення значень автоматичної намотки. Робота з кнопкою енкодера, а також з самим енкодером і драйверами КД здійснюється через переривання.

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

Результати випробувань показали, що при правильному початковому позиціюванні, станок забезпечує точну автоматичну намотку шарів емальованого проводу діаметром від 0,06 до 0,5 мм. Варіюючи значеннями кількості витків (TURNS) та кроку (STEP) можна досягти режимів «виток до витка» та «рівномірне заповнення вікна».
На цьому в мене все, прошу висловлювати свою думку в коментарях.

Список радіоелементів

Обозначення Тип Номінал Кількість Примітка
Плата Arduino
Arduino Uno
1
Плата розширення Arduino CNC Shield DRV8825 1
Кроковий двигун 17HS4401S 1
Кроковий двигун 17HS3401S 1
Модуль поворотного енкодера KY-040 1
LCD-дисплей 1602 HD44780 1
Розширювач портів I2C модуль на PCF8574A для LCD 1
D1 ІС буфера, драйвера
SN74HC14
1
R1, R4-R6 Резистор
10 кОм
4
C1-C3 Конденсатор 100 нФ 3

Прикріплені файли:

Top