Зараз ентузіасти дуже зацікавлені в управлінні безщітковим двигуном постійного струму (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 (мінус) під’єднано
до джерела живлення та ввімкніть джерело живлення, двигун трохи покрутиться та зупиниться.
Тоді, якщо негативний провід живлення переміститься до фази C і живлення ввімкнеться, двигун повернеться далі та зупиниться.
Наступною частиною послідовності буде переміщення позитивного проводу до фази 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 Високий, IN3 низький.
Це робить фазову комбінацію-C.
У той час як у примітці до програми L6234 пропонувалося застосувати ШІМ, який використовується для керування швидкістю двигуна, до контакту IN, я вирішив зробити це на контакті EN, тому що в той час, я думаю, було б \'дивно\' по черзі вмикати верхні та нижні транзистори фази \'.
Насправді, здається, що немає нічого поганого в тому, щоб увімкнути низькі транзистори обох фаз одночасно, оскільки вони мають однаковий потенціал, тому жоден з них не проходить через електричний струм.
У разі використання високої фази поперемінно вмикається та вимикається на частоті ШІМ,
нижче наведена схема приводу двигуна. Я також додав запобіжник на 2,5
ампера між позитивним проводом батареї та ланцюгом. Щоб зменшити пульсації в регенеративному струмі,
зверніться до документації для L6234.
Майк Антон створив друковану плату для L6234, яка (на мою думку)
заощадить вам роботу по її складанню.
Перегляньте ці посилання, щоб дізнатися більше про 3.
Я опишу, як це працює
Я не інженер-електрик, і ми будемо вдячні за будь-які виправлення в моєму поясненні.
Під час руху система керування направляє струм на три фази таким чином, щоб максимізувати крутний момент.
У рекуперативному гальмуванні система керування також максимізує крутний момент, але на цей раз двигун сповільнюється
Лабораторія в Сполучених Штатах,
яка проводить багато досліджень для автомобільних двигунів.
Наведена нижче таблиця допомагає проілюструвати, як це працює (
проте, я вважаю, що пояснення, надане в цій другій статті, частково неправильне). Майте на увазі, що напруга
, посилаючи струм назад до акумулятора
BEMF коливається вгору та вниз
У цьому випадку струм може протікати з
рекуперативного гальмування, транзистори низького рівня вмикаються і вимикаються (
).
коли перемикач високого рівня вимикається;
струм тече, як показано на першому малюнку
фаза двигуна (у Вікіпедії
є хороша стаття, яка пояснює, як працює підвищувальний перетворювач).
Ця енергія вивільняється, коли транзистор нижчого рівня вимикається, але при вищій напрузі струм миттєво протікає через діод \'антизбудження\' поруч із кожним транзистором.
запобігає течії струму від батареї до двигуна
Діод
використовує
магнітне кільце, яке уповільнює двигун,
ШІМ-перемикач, а робочий цикл ШІМ контролює величину гальмування,
коли двигун перемикається з однієї комбінації на наступну, щоб підтримувати найвищий крутний момент
що двигун жорсткого диска, який
Подивіться відео на першому етапі, ви можете побачити, що рекуперативне гальмо працює добре, я думаю, що основна причина в тому,
я використовую, має дуже низький крутний момент, тому він не виробляє багато BEMF, за винятком найвищої швидкості , але
рекуперативне гальмування є дуже незначним .
Крім того, моя система працює при відносно низькій напрузі (12 В).
зменшує напругу на кілька вольт.
Я використовую звичайні випрямні діоди, і я можу отримати кращу продуктивність, якщо використовую деякі спеціальні діоди з меншим падінням напруги.
Нижче
наведено таблиці та фотографії моєї плати.
вхід -
120 K опір Gnd 5
6 2 Цифрові виходи послідовно з резистором
400 Ом
Цифрові виходи
1 Цифровий вихід послідовно з резистором 400 Ом
послідовно з резистором 400 Ом 9 Цифровий
7 3
з резистором 400 Ом 10 Цифровий
вихід EN 1 послідовно
вихід EN 2 послідовно з резистором 400 Ом Резистор 11 - цифровий вихідний
резистор 400 Ом, потенціометр 5 В і заземлення, підключені посередині.
Цей потенціометр використовується для керування швидкістю двигуна та гучністю гальмування.
, що працює за годинниковою
Ось вся програма, яку я написав для Ardjuino коментарі:/* bldc_congroller 3. 1.
1*3 від Девіда Глейзера.
Серія X — це 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-
гальмо
* 524-1023
: багато рядків для налагодження послідовного з'єднання
*/Int allstate1; int HallState3;
*
Int HallVal = 1;
/Двійкове значення всіх 3 датчиків Холла int MSPs = 0 ; /Speed level
499
:
Ця змінна використовується разом із параметром зазору дросельної заслінки (){pinMode(2,INPUT)
int = 0; /Brake level of
throttle = 0;
/
;/
Hall 2 pinMode (4,INPUT); /
L6234
pinMode (5,
ВИХІД);
/EN 2 pinMode (9600);
Якщо ви будете використовувати послідовне з’єднання, розкомментуйте цей рядок
наприкінці програми.
/* Встановіть ШІМ-частоту на контактах 9, 10/встановіть значення ШІМ на контакти 9, 10/Спочатку очистіть всі три біта попереднього розподілення:
/Створіть змінну під назвою prescalerVal двійкове число \'00000111\' TCCR1B & = ~ Prescaler /І значення в TCCR0B з
/тепер установіть відповідний біт попереднього кодування: int pre-coding bit 2 = 1;
двійковим числом \'11111000\'
/Установіть prescalerVal рівним двійковому числу \'00000001\' TCCR1B |.
ця програма використовує лише висновок 11)
= prescalerVal2; /Або значення в TCCR0B з двійковим числом \'00000001\'/встановіть значення ШІМ на 32 кГц для виводу 11 (
TCCR2B & = ~ Pre-calerval;
/Спочатку очистіть усі три біта попереднього вимірювання:
TCCR0B двійкове число \'11111000\'/
/ І значення в
тепер установіть відповідний біт попереднього кодування: TCCR2B |
2;
= біт попереднього кодування
00000001 \
/Або значення в TCCR0B з двійковим числом \ '
'
/спершу очистіть усі три попередньо закодовані біти :} Основний цикл циклу/PRGROM void
(){ /Час = millis (); println(time); /Throttle
potentiometer (0,255);
/Дросельна заслінка = карта 0,511,255
, 0); /Половина рекуперативного гальмування/
MSPs ed = 100; /Коли відповідний датчик увімкнеться
для налагодження digitalWrite (9, HallState3
); HallVal = (2*HallState3);
/Обчислити двійкові значення 3 датчиків Холла/*
серійний порт (HallState1); Serial (HallState3); println(HallVal); //Serial. print(\'\'); /
/* T1 = digitalRead (2); //T1 = ~T1; T2 = digitalRead (4);
Monitor transistor output/delay (1000) ;
//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));Serial.print(\'\');
//Двійкове число, що відповідає регістру, що використовується для зміни вихідного значення arduino/виводу, що використовується для визначення того, чи верхній транзистор/вивід EN для кожної фази керується аналогією команд Arduino, встановіть робочий цикл ШІМ (
ВИМК., 255 = ON або значення дроселя, кероване потенціометром).{перемикач (HallVal){
3: /PORTD
0
і PORTD |
= 1111xxx00 ; 7 xxx відноситься до входу
Випадок
=
нижчий транзистор
100% (
);
/PORTD = B001xxx00;
Холла
/
/PORTD = B00100000;
Analowrite (9,mSpeed); //Фаза В
увімкнена
(нижчий транзистор)(11,0);/Фаза В вимкнена
(робочий режим = 0)
випадок 5:/
Очікуваний висновок 0-7
PORTD & = B10100000;
аналоговий Запис (9,0); analogWrite(10,255); analogWrite(11,mSpeed); break;
Case 4:/PORTD = B100xxx00;
/Expected output of pin 0-
7 PORTD & = B00011111;
PORTD | = bym000;
9,255); analogWrite(10,0); analogWrite
/ Analowrite
(
(11,mSpeed); break ;
= B0001111; analogWrite (11,0);
/PORTD = B110xxx00; PORTD
Case 6:
Case 2:/PORTD = B010xxx00 0-
7 PORTD;
B0201700 PORTD |.
Analowrite (10, mSpeed); analogWrite (11,255);
рекуперативне
гальмування на виводі 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();
/If you
want to
налагодження за допомогою послідовного порту, будь ласка,
розкоментуйте} Я думаю, що робота Arduino у цьому проекті настільки проста, що здається марною тратою виконання цього завдання за допомогою мікропроцесора. Насправді в примітках щодо застосування
L6234 рекомендовано
використовувати просту програмовану вентильну матрицю (GAL16V8 із ґратчастого напівпровідника). Я не знайомий із програмуванням цього
пристрою, але вартість IC становить лише 2 долари. 39. Інші подібні інтегральні схеми також є дуже дешевими. Я придумав кілька відносно простих логічних послідовностей, які могли б керувати виходом трьох датчиків Холла, і таблиця істинності для всіх трьох етапів, 'не' двері повинні бути переключені на інший. Проблема з цим підходом полягає в тому, що на кожному етапі є майже 20 з’єднань, тому потрібно досить багато роботи, щоб зібрати його разом.
Найкраще запрограмувати його як програмований логічний вентиль.