Зараз ентузіасти дуже зацікавлені в управлінні безщітковим двигуном постійного струму (BLDC).
Порівняно з традиційним двигуном постійного струму продуктивність двигуна покращилася, енергоефективність також покращилася, але його важче використовувати. багато готових продуктів.
Для цієї мети існує
Наприклад, є багато невеликих контролерів BLDC, які дуже добре працюють для літаків RC.
Для тих, хто хоче більш глибоко вивчити управління BLDC, також існує багато різних мікроконтролерів та іншого електронного обладнання для промислових користувачів, яке зазвичай має дуже хорошу документацію.
Поки що я не знайшов вичерпного опису того, як використовувати мікроконтролер Arduino для керування BLDC.
Крім того, якщо вас цікавить рекуперативне гальмування або використання BLDC для виробництва електроенергії, я не знайшов багато продуктів, придатних для використання з невеликими двигунами, а також не дізнався, як керувати трифазним генератором.
Ця структура спочатку була в історії про
обчислення в реальному часі, я продовжую це робити після закінчення курсу.
Ідея проекту полягає в тому, щоб показати пропорційну модель гібридного автомобіля з накопичувачем енергії на маховику та рекуперативним гальмуванням.
Двигун, який використовується в проекті, - це невеликий BLDC, очищений від пошкодженого жорсткого диска комп'ютера.
У цьому посібнику описано, як використовувати мікроконтролер Arduino та
датчики положення Hall-Affects у режимах руху та рекуперативного гальмування.
Зверніть увагу, що відвідування oscillisoft є дуже корисним, якщо не необхідним, для завершення цього проекту.
Якщо ви не можете отримати доступ до області видимості, я додав кілька порад щодо того, як це зробити без області дії (крок 5).
Одна річ, яку цей проект не повинен включати в будь-який фактичний контролер двигуна, це будь-яка функція безпеки, така як захист від перевантаження по струму.
Насправді, найгірше те, що ви згорите HD мотор.
Однак реалізація захисту від перевантаження за струмом із поточним апаратним забезпеченням неважка, і, можливо, я це зроблю колись.
Якщо ви намагаєтеся керувати більшим двигуном, будь ласка, додайте захист від перевантаження по струму, щоб захистити свій двигун і свою безпеку.
Я хочу спробувати використати цей контролер із більшим двигуном, який може виконувати \'справжню\' роботу, але в мене ще немає потрібного.
Я помітив, що eBay продав автомобіль на 86 Вт приблизно за 40 доларів.
Виглядає як хороший кандидат.
Існує також веб-сайт RC під назвою \'GoBrushless\', де продаються набори, які збирають власний BLDC.
Вони не надто дорогі, і для створення такого варто досвіду.
Зверніть увагу, що на цьому веб-сайті немає датчика Холла для двигуна. Вау!
Написання цієї структури — велика робота.
Сподіваюся, він буде для вас корисним, залишайте свої коментарі та пропозиції.
Цифровий мультиметр (DMM) -
якщо ваш цифровий мультиметр має осцилограф з частотоміром (
краще мати принаймні 2 канали)
Драйвер T8 Torx (
один із них потрібен, щоб відкрити будь-який жорсткий диск).
Є хороший будівельний магазин.
Машинна майстерня та швидкий прототип (
вони дуже корисні, але я думаю, що цей проект можна виконати без них).
Матеріал магнітне кільце bldc двигуна з жорсткого диска комп’ютера (
Половина двигуна)
З іншого жорсткого диска Кілька (3-6)
Є другий невеликий двигун у сріблястому диску на жорсткому диску (постійний струм зі щіткою OK)
Гумка або (бажано)
Безщітковий двигун постійного струму з ручкою з іншим двигуном електронна пластина для хліба суцільний дріт місяць Arduino Duemilanove резистор 120 кОм лінійний резистор від шести до 400 Ом або обертовий потеніометр 100 кОмST мікросхема L6234 трифазний драйвер двигуна IC два конденсатори 100 мкФ один конденсатор 10 нФ один конденсатор 220 нФ один конденсатор 1 мкФ один конденсатор 100 мкФ три приймальні діоди Один 2.
Honeywell SS411A біполярний запобіжник Холла-5 А 1 тримач запобіжника 3
Примітка: Майк Антон розробив і продав продукт, який замінить силову електроніку та схеми датчика Холла, які я показав у цьому посібнику (
він керується за допомогою індукції зворотного потенціалу).
Технічні характеристики та інформацію про закупівлі можна знайти за цими двома посиланнями: Якщо ви збираєтеся виконувати цей проект, я пропоную вам приділити час, щоб повністю зрозуміти, як працює та контролюється BLDC.
В Інтернеті є велика кількість посилань (
див. нижче деякі пропозиції).
Проте я додаю до свого проекту деякі діаграми та таблиці, які допоможуть вам зрозуміти.
Ось перелік понять, які, на мою думку, є найважливішими для розуміння цього проекту: МОП-транзистори 3-фазний напівмост 6-3
-ступінчасте зменшення речення
Широтно-імпульсна модуляція двигуна Холла (ШІМ) Холла-
Microchip AVR443: датчики – загальний довідковий двигун постійного струму Основні принципи для цифрових датчиків положення
Керування трифазним безщітковим двигуном постійного струму на основі керування безмелевим двигуном постійного струму Управління
двигуном Phase BLDC датчика Холла Flying Star, хороше відео очищення двигуна жорсткого диска, але автор начебто запускає двигун як кроковий двигун і як кроковий двигун. Більш конкретна довідкова веб-сторінка для BLDC на IC моторного приводу l6234, включаючи таблиці даних, примітки щодо застосування та інформацію про придбання.
Безкоштовний зразок безщіткового двигуна PM для гібридних електромобілів.
Це єдиний документ, який я знайшов, який описує порядок зміни фази рекуперативного гальмування.
Ця стаття, рекуперативне гальмування в електромобілях є корисною, я запозичив з неї кілька цифр, але я думаю, що вона неправильно описує, як працює регенерація.
Я зробив цей проект із переробленим двигуном дисковода, тому що його було легко пройти, і мені подобається використовувати невеликий низьковольтний двигун, щоб дізнатися про шнур, керований BLDC, і не створювати жодних проблем із безпекою.
Крім того, магнітна конфігурація датчика Холла стає дуже простою за допомогою магнітного кільця (ротора)
від другого з цих двигунів (див. Крок 4).
Якщо ви не хочете займатися клопотами щодо встановлення та калібрування датчика Холла (кроки 5-7),
я знаю, що є принаймні деякі двигуни приводу CD/DVD, вбудовані в датчик Холла.
Щоб забезпечити деяку інерцію обертання двигуна та дати йому невелике навантаження, я поставив 5 жорстких дисків на двигун, обережно склеїв разом невеликою кількістю міцного клею та приклеїв до двигуна (
це зробив маховик у моєму оригінальному проекті).
Якщо ви збираєтеся зняти двигун із жорсткого диска, вам знадобиться привід T8 torx, щоб відкрутити корпус (
зазвичай є два гвинти, заховані за стрижнею в центральній етикетці)
і внутрішні гвинти, які утримують двигун на місці.
Вам також потрібно зняти головку Reader (
Sound Circle Executive).
Таким чином ви зможете вийняти диск пам’яті, щоб дістатися до двигуна.
Крім того, вам знадобиться другий такий самий двигун жорсткого диска, щоб зняти ротор із цього двигуна (
всередині є магніт).
Щоб розібрати двигун, я схопив ротор (зверху)
Лещата двигуна і підняв його на статор (знизу).
Дві викрутки розташовані на 180 градусів одна від одної.
Утримати мотор на досить щільній парі без деформації нелегко.
Ви можете побудувати дерев’яний v-
блок, який використовується для цієї мети.
Я просвердлив отвір у магнітному кільці на токарному верстаті, щоб воно зручно розмістилося на верхній частині двигуна.
Якщо ви не можете користуватися токарним верстатом, ви можете закріпити перевернутий ротор на двигуні міцним клеєм.
На малюнках 2 і 3 нижче показано внутрішню частину одного з моторів, які я розібрав.
У першій половині (ротор) є 8 полюсів (
магніт, загорнутий у пластик).
У другій половині (статор)
є 12 пазів (обмоток).
Кожна з трьох фаз двигуна має 4 слоти послідовно.
Деякі двигуни HD мають три контакти внизу, по одному контакту на фазу, а інший є центральним краном двигуна (
де зустрічаються три ступені).
У цьому проекті не потрібне центральне натискання, але воно може стати в нагоді в безсенсорному управлінні (
я сподіваюся одного дня випустити примітку про безсенсорне керування).
Якщо ваш двигун має чотири контакти, ви можете визначити фазу за допомогою омметра.
Опір між центральним краном і фазою становить половину опору між будь-якими двома фазами.
Більшість літератури про двигуни BLDC стосується двигунів із драбинчастою формою хвилі зворотного потенціалу, але, здається, двигун жорсткого диска має зворотний потенціал, який виглядає як синус (див. нижче).
Наскільки я знаю, керування синусоїдальним двигуном із синусоїдальним ШІМ працює добре, хоча ефективність може дещо знизитися.
Як і всі двигуни BLDC, цей складається з трифазного напівтранзисторного
мосту (
див. 2-е фото нижче).
Я використовую мікросхему виробництва ST Micro (L6234)
для моста, також відомого як драйвер двигуна.
Електричне підключення L6234 показано на кроці 8.
На третій фотографії нижче показано принципову схему драйвера двигуна та трьох фаз двигуна.
Для того, щоб двигун працював за годинниковою стрілкою, перемикач буде виконано в такому порядку (
перша літера позначає верхній транзистор, а друга літера – нижній транзистор)
: Крок 1 2 3 4 5 6 за годинниковою стрілкою: CB, AB, AC, BC, BA, CA проти годинникової стрілки: BC, BA, CA, CB, AB, AC ці 6-
Послідовність кроків вимагає \'електричної ступінь\' 360, але лише фізичний градус 90 для цих двигунів.
Тому швидкість обертання кожного двигуна відбувається чотири рази.
Дві послідовності здаються однаковими, але вони не однакові, тому що для 6-
крокової послідовності, для CW напрямок струму через фазу є одним напрямком, а для CCW напрямок струму є протилежним.
Ви можете переконатися в цьому самостійно, подавши напругу батареї або джерела живлення на одну з фаз двигуна.
Якщо подати напругу, двигун трохи посунеться в одному напрямку і зупиниться.
Якщо ви можете швидко змінити напругу на фазі в одній із наведених вище послідовностей, ви можете обертати двигун вручну.
Транзистори та мікроконтролери завершують усі ці перемикання дуже швидко, перемикаючись сотні разів на секунду, коли двигун працює на високій швидкості.
Також зверніть увагу, що якщо напруга подається на обидві фази, двигун трохи рухається, а потім зупиняється.
Це тому, що крутний момент дорівнює нулю.
Ви можете побачити це на четвертій фотографії нижче, яка показує зворотний потенціал пари фаз двигуна.
Це синусоїда.
Коли хвиля проходить через x-
вал, крутний момент, створений цією фазою, дорівнює нулю. У шестиетапній
послідовності зміни фази BLDC, яка ніколи не відбувалася.
Перш ніж крутний момент на певній фазі стане низьким, потужність перемикається на іншу комбінацію фаз.
Більші двигуни BLDC зазвичай виготовляються за допомогою датчиків Холла всередині двигуна.
Якщо у вас є такий двигун, то можете пропустити цей крок.
Крім того, я знаю, що принаймні деякі двигуни приводу CD/DVD вбудовані в датчик Холла.
Коли двигун обертається, для визначення положення використовуються три датчика Холла, тому зміна фази відбувається в потрібний момент.
Мій двигун HD працює до 9000 об/хв (150 Гц).
Оскільки на колесо відбувається 24 зміни, при 9000 об/хв машина змінюється кожні 280 мікросекунд.
Мікроконтролер Arduino працює на частоті 16 МГц, тому кожен такт становить 0,06 мікросекунди.
Я не знаю, скільки тактів потрібно для скорочення речення, але навіть якщо потрібно 100 тактів, тобто для кожного скорочення речення потрібно 5 мікросекунд.
HD двигуни не мають датчиків Холла, тому їх необхідно встановлювати зовні двигуна.
Датчик має бути зафіксований відносно обертання двигуна та підданий ряду полюсів, які відповідають обертанню двигуна.
Моє рішення полягає в тому, щоб зняти магнітне кільце з того самого двигуна та встановити його догори дном на двигуні, яким потрібно керувати.
Потім я встановив три датчики Холла над цим магнітним кільцем, на відстані 30 градусів один від одного на валу двигуна (
обертання електродвигуна на 120 градусів).
Мій тримач датчика Холла складається з простого тримача, що складається з трьох оброблених мною алюмінієвих деталей і трьох пластикових деталей, виготовлених на швидкому прототипі.
Якщо у вас немає цих інструментів, не важко буде знайти інший спосіб вказати позицію.
Створити кронштейни для датчиків Холла буде складніше.
Це можливий спосіб роботи: 1.
Знайдіть пластиковий лоток потрібного розміру, і ви можете акуратно покрити епоксидною смолою датчик Холла. 2.
На папері надруковано шаблон, який має те саме коло, що й радіус магнітного кільця, а три позначки розташовані під кутом 15 градусів 3 один від одного.
Приклейте шаблон до диска, а потім використовуйте шаблон як орієнтир, щоб акуратно розмістити епоксидну смолу датчика Холла.
Тепер, коли датчики Холла встановлено на двигуні, підключіть їх до схеми, показаної нижче, і перевірте їх за допомогою цифрового мультиметра або осцилографа, щоб переконатися, що вихідний сигнал зростає й знижується в міру обертання двигуна.
Я запускаю ці датчики під напругою 5 В, використовуючи вихід 5 В Arduino.
Датчик Холла має високий або низький вихід (1 або 0).
Це залежить від того, чи вони відчувають Антарктику чи Арктику.
Оскільки вони розташовані під кутом 15 градусів один від одного, магніти обертаються під ними та змінюють полярність кожні 45 градусів, ці три датчики ніколи не будуть високими або низькими одночасно.
Коли двигун обертається, вихідний сигнал датчика становить 6.
Схема кроків, наведена в наступній таблиці.
Датчик повинен бути узгоджений з рухом двигуна, щоб один із трьох датчиків змінювався точно в положенні зміни фази двигуна.
У цьому випадку наростаючий фронт першого датчика Холла (H1)
повинен відповідати розкриттю комбінації C (високий) і B (низький).
Це еквівалентно включенню транзисторів 3 і 5 в мостовій схемі.
Вирівнюю датчик з магнітом за допомогою осцилографа.
Щоб зробити це, я маю використовувати три канали області видимості.
Я обертаю двигун, підключаючи його до ременя другого двигуна, і вимірюю зворотний потенціал між двома комбінаціями фаз (
A і B, A і C).
Це два синуса.
Подивіться
на сигнал датчика Холла 2 на каналі 3 осцилографа.
Тримач датчика Холла повертають до тих пір, поки наростаючий край датчика Холла повністю не вирівняється з точкою, де має бути виконана зміна фази (див. нижче).
Тепер я розумію, що є лише два канали для того самого калібрування.
Якщо BEMF комбінації фаз B-
з використанням C, передній фронт H2 буде пов’язаний з кривою BC.
Причина, чому тут слід виконувати зміну фази, полягає в тому, щоб завжди підтримувати максимально можливий крутний момент двигуна.
Зворотний потенціал пропорційний крутному моменту, і ви помітите, що кожна зміна фази відбувається, коли зворотний потенціал проходить нижче кривої наступного ступеня.
Тому фактичний крутний момент складається з найвищої частини кожної комбінації фаз.
Якщо ви не можете отримати доступ до прицілу, ось моя ідея вирівнювання.
Це насправді цікава вправа для тих, хто хоче знати, як працює двигун BLDC.
Якщо фаза A двигуна (плюс) і B (мінус) підключені
до джерела живлення та ввімкніть джерело живлення, двигун трохи обертатиметься та зупиниться.
Тоді, якщо негативний провід живлення переміститься до фази С і живлення ввімкнеться, двигун повернеться далі та зупиниться.
Наступною частиною послідовності буде переміщення позитивного проводу до фази B тощо.
Коли ви це робите, двигун завжди зупиняється там, де крутний момент дорівнює нулю, що відповідає одному місці, де діаграма проходить через вісь X на діаграмі.
Зверніть увагу, що нульова точка комбінації третьої фази відповідає положенню зміни фази перших двох комбінацій.
Таким чином, положення нульового крутного моменту B-
комбінація C є місцем, де ви хочете розташувати наростаючий фронт h2.
Позначте це положення тонкими мітками або гострими лезами, а потім відрегулюйте тримач датчика Холла за допомогою цифрового мультиметра, доки вихід H2 не буде точно вище цієї позначки.
Навіть якщо ви трохи відхиляєтеся від шкільного розкладу, мотор повинен працювати добре.
Трифазний двигун отримує живлення від драйвера трифазного двигуна L6234.
Я виявив, що це хороший продукт, який витримує випробування часом.
Є багато способів випадково підсмажити ваші компоненти під час використання силової електроніки, я не інженер-електрик і не завжди знаю, що відбувається.
У моїй шкільній програмі ми зробили свій власний 3-
фазний напівмостовий вихід із 6 MOSFET транзисторів і 6 діодів.
Ми використовували це на HIP4086 іншого драйвера Intersil, але у нас багато проблем із цим налаштуванням.
Ми спалили купу транзисторів і мікросхем.
Я запускаю L6234 (
тобто двигун) на 12 В.
L6234 має незвичайний набір входів для управління полумостом з 6 транзисторів.
Не кожен транзистор має вхід, але
вхід дозволу (EN) для кожного з трьох каскадів, а потім інший вхід (IN).
Виберіть транзистор у відкритій фазі (верхній чи нижній).
Наприклад, увімкніть транзистор 1 (верхній) і 6 (нижній).
І EN1, і EN3 мають високий рівень (
EN2 низький, щоб каскад залишався закритим)
IN1 High, IN3 низький.
Це робить фазову комбінацію-C.
Хоча в примітці до програми L6234 пропонувалося застосувати ШІМ, який використовується для керування швидкістю двигуна, до контакту IN, я вирішив зробити це на контакті EN, тому що в той час, я думаю, було б \'дивно\' по черзі вмикати верхні та нижні транзистори фази \'.
Насправді, здається, що немає нічого поганого в тому, щоб увімкнути низькі транзистори обох фаз одночасно, оскільки вони мають однаковий потенціал, тому жоден з них не проходить через струм.
У разі використання високої фази поперемінно вмикається та вимикається на частоті ШІМ,
нижче наведено схему приводу двигуна. Я також додав запобіжник на 2,5
ампера між позитивним проводом акумулятора та ланцюгом, конденсатор 100 мкФ між джерелом живлення та заземленням. Щоб зменшити пульсації в регенеративному струмі,
зверніться до документації для L6234.
Майк Антон створив друковану плату для L6234, яка (на мою думку)
заощадить вам роботу по її складанню.
Перегляньте ці посилання, щоб дізнатися більше про 3.
Я опишу, як це працює
Я не інженер-електрик, і ми будемо вдячні за будь-які виправлення в моєму поясненні.
Під час руху система керування посилає струм у три фази таким чином, щоб максимізувати крутний момент.
У рекуперативному гальмуванні система керування також максимізує крутний момент, але на цей раз двигун сповільнюється, посилаючи струм назад до акумулятора
Лабораторія в Сполучених Штатах,
яка проводить багато досліджень для автомобільних двигунів.
Наведена нижче таблиця допомагає проілюструвати, як це працює ( проте,
пояснення, надане в цій другій статті, частково невірне).
я думаю, що
У
цьому випадку струм може протікати з
рекуперативного гальмування, транзистори низького рівня вмикаються і вимикаються (
).
коли перемикач високого рівня вимикається;
струм тече, як показано на першому малюнку
фаза двигуна (у
Вікіпедії є хороша стаття, яка пояснює, як працює підвищувальний перетворювач ).
Ця енергія вивільняється, коли транзистор нижчого рівня вимикається, але при вищій напрузі струм миттєво протікає через діод \'антизбудження\' поруч із кожним транзистором.
Діод запобігає протіканню струму від батареї до двигуна
відео на першому етапі
можливий крутний момент Подивіться
магнітне кільце, яке уповільнює двигун
, використовує ШІМ-перемикач, а робочий цикл двигуна регулює кількість гальмування, щоб підтримувати максимально
, за винятком найвищої швидкості ,
, ви можете побачити, що рекуперативне гальмо працює добре, я думаю, що основна причина в тому, що двигун жорсткого диска, який я використовую, має дуже низький крутний момент, тому він не виробляє багато BEMF
але рекуперативне гальмування дуже мало.
. Я використовую звичайні випрямні діоди,
при відносно низькій напрузі (12 В).
Крім того, моя система працює
зменшує напругу на кілька вольт
і я можу отримати кращу продуктивність, якщо використовувати деякі спеціальні діоди з меншим падінням напруги. Нижче
. вхід- 120 K опір Gnd 5 1 Цифровий вихід послідовно з резистором 400 Ом 6 2 Цифрові виходи послідовно з
наведено таблиці та фотографії моєї плати
EN
резистором 400 Ом 7 3 Цифрові виходи послідовно з резистором 400 Ом
9 Цифровий вихід
400
Цифровий вихід EN
1
послідовно з резистором 400 Ом 10
резистором 400 Ом Резистор 11 - Цифровий вихід
Ом, потенціометр 100 Ом, з'єднаний
2 послідовно з
Серія X — це 3-фазна мікросхема драйвера двигуна * обертання двигуна дискового приводу за годинниковою стрілкою * з рекуперативним гальмуванням *
на обох кінцях з аналоговим контактом 0. Цей потенціометр використовується для керування швидкістю двигуна та об'ємом гальмування. Ось вся програма, яку я написав для Ardjuino коментарі:/
швидкість двигуна та гальмування, керовані одним потенціометром * положення
двигуна
* bldc_congroller 3. 1.
1*3 від Девіда Глейзера.
в
трьома
датчиками Холла * Arduino отримує сигнал від 3 датчиків Холла (контакти 2,3,4) * І перетворює їхню комбінацію на 6 різних етапів зміни фази на контактах 9, 10, 11 при 32 кГц * Вихід ШІМ (відповідає EN 1,2, 3*3 DO на контактах 5,6, 7 відповідно (IN 1,2,3) * Підключіть симуляцію
0
до
потенціометра, щоб змінити робочий цикл ШІМ і змінити * між водінням і рекуперативним гальмуванням *. * 0-
499: гальмо
* 524-1023
: багато рядків для налагодження послідовного з'єднання
*/Int allstate1;
int HallState3;
Int HallVal = 1;
/Двійкове значення всіх 3 датчиків Холла int MSPs = 0;
/Speed level int = 0;
/Brake level of throttle = 0;
Ця змінна використовується разом із параметром зазору дросельної заслінки (){pinMode(2,INPUT);
/
/Hall 2
L6234 pinMode (5,ВИХІД
pinMode (4,INPUT); /
EN
); /IN 2 pinMode (9,OUTPUT);
/
2 pinMode (11,OUTPUT);
Якщо
ви будете використовувати послідовне з’єднання, розкомментуйте цей рядок
наприкінці програми.
/* Встановіть ШІМ-частоту на контактах 9, 10/спершу очистіть всі три біта попереднього дільника:
/Створіть змінну під назвою prescalerVal двійкове число \'00000111\' TCCR1B & = ~ Prescaler
/І значення в TCCR0B з двійковим числом \'11111000\'/тепер установіть відповідний біт попереднього кодування: int pre-coding bit 2 = 1;
/Установіть prescalerVal рівним двійковому числу \'00000001\' TCCR1B |. = prescalerVal2
на 32 кГц для контакту 3,11 (
ця програма використовує лише висновок 11) /Спочатку очистити всі три біта попереднього вимірювання: TCCR2B & = ~ Pre-calerval; /І значення в
;
/Або значення в TCCR0B з двійковим числом \'00000001\'/встановити ШІМ
двійкове число \'11111000\'/тепер установіть відповідний біт попереднього кодування : TCCR2B | = біт попереднього кодування
TCCR0B
/
\'
2;
Або значення в TCCR0B з двійковим
числом \'00000001
/спершу очистіть усі три попередньо закодовані біти :} Основний цикл циклу/PRGROM void (){ /Час = millis () ;
println(time); /Throttle potentiometer (0,255); /
/Половина рекуперативного гальмування/MSPs ed = 100;
Дросельна заслінка = карта 0,511,255
, 0);
/Зчитування вхідного значення з Залу 1 2 =
Зчитування вхідного значення з Залу 3 (Зчитування цифрового значення з Залу 3);
/Коли відповідний датчик увімкнеться
для налагодження цифрового запису (9, HallState2);
//digitalWrite(10
, HallState3); /Обчислити двійкові значення 3 датчиків Холла/*
серійний порт (HallState1); Serial (HallState3); println(HallVal); //Serial. print(\'\'); /Monitor transistor output/delay (1000);
(2);
/* T1 = digitalRead
//T1 = ~T1; T2 = digitalRead (4); //T2 =
~T2; T3 =
digitalRead (5); //T3 = ~T3; Serial. print(T1); Serial. print(\'\t\'); Serial. print(T2); Serial. print(\'\t\'); Serial. print(T3); Serial. print(\'\'); Serial. print(\'\'); Serial. print(digitalRead(3)); Serial. print(\'\t\'); Serial. print(digitalRead(9)); Serial. print(\'\t\'); Serial. println(digitalRead(10)) ;
;//Двійкове число, що відповідає регістру, що використовується для
255 = ON або значення дроселя, кероване
Serial.print (\'\')
транзистор/вивід EN
зміни вихідного значення arduino/виводу, що використовується для визначення того, чи
7
.,
для кожної фази керується аналогією команди Arduino, установіть робочий цикл ШІМ (0 = ВИМК
верхній
потенціометром).{перемикач (HallVal){
транзистор);
Випадок 3:/PORTD = 1111xxx00;
вхідного сигналу Холла і PORTD | 100%
xxx відноситься до
/PORTD = B001xxx00;
/PORTD = B00100000; /Analowrite (9,mSpeed)
(нижчий
; //Фаза В увімкнена (
нижчий транзистор) (11,0); analogWrite(10,255); analogWrite(11,mSpeed); break;
4:/PORTD =
Case
B100xxx00;
/
= B00011111; PORTD
Expected output of pin 0-
7 PORTD &
| = bym000;
/Analowrite (9,255); analogWrite(10,0); analogWrite(11,mSpeed); break;
Case 6:/PORTD = B110xxx00; PORTD =
,
B0001111 ;
analogWrite
(11,0);
Case 2: B010xxx00 0-
зміна
7 PORTD; B0201700 PORTD
|. Analowrite (10
mSpeed); analogWrite (11,255); регенеративна
фази/PORTD (
Виводи IN на L6234)
regen. braking. else{
/PORTD = B000xxx00;
/Expected output of pin 0-
7 PORTD & = B00011111;
PORTD | = bym0000; // switch (HallVal){
Case 3: analogy writing (9,bSpeed); //analogWrite(9,0); analogWrite(10,0); analogWrite(11,0); break;
Case 1: analogy writing (9,bSpeed); analogWrite(10,0);
analogWrite(11,0); break;
Case 5: analogy writing (9,0); analogWrite(10,0); analogWrite(11,bSpeed);
break;
Case 4: analogy writing (9,0); analogWrite(10,0); analogWrite(11,bSpeed); break; Case 6: analogy writing (9,0); analogWrite
;
(10,bSpeed); analogWrite(11,0); break; Case 2: analogy writing (9,0); analogWrite(10,bSpeed); analogWrite(11,0); break; }} /Time = millis (
)
,
Time after the printing program starts. println(time); //Serial. print(\'\'); //Serial. flush(
to налагодження за допомогою послідовного порту, будь ласка
); /If you want
розкоментуйте}
Я
операція, яку Arduino виконує в цьому проекті, настільки проста, що здається марною тратою виконання цього завдання за допомогою мікропроцесора.
думаю, що
Насправді в примітках щодо застосування L6234 рекомендовано використовувати просту програмовану вентильну матрицю (GAL16V8, виготовлену з ґратчастого напівпровідника). Я не знайомий із програмуванням цього пристрою, але
вартість IC становить лише 2 долари. 39. Інші подібні інтегральні схеми також є дуже дешевими. Я придумав кілька відносно простих логічних послідовностей, які могли б керувати виходом трьох датчиків Холла, а таблиця істинності для всіх трьох етапів повинна бути переключена на іншу. Проблема з цим підходом полягає в тому, що на кожному етапі є майже 20 з’єднань, тому потрібно досить багато роботи, щоб зібрати його разом.
Найкраще запрограмувати його як програмований логічний вентиль.