Обманка датчика холла ваз

Обновлено: 01.07.2024

Я долго думал, стоит ли писать эту статью. Настолько все выглядит очевидным и простым, даже банальным, с моей точки зрения. Но поговорив с немного с коллегами и знакомыми понял, что все таки есть люди, для которых затрагиваемые в статье вопросы интересны и выглядят вовсе не такими простыми. Поэтому все таки решил написать.

Возможно, часть статьи окажется интересной мотоциклистам, а часть электронщикам.

История вопроса

Я далек от мира мотоциклов. Но у меня есть коллеги и знакомые мотоциклисты. Сразу отмечу, что коллеги и знакомые совсем не обязательно являются специалистами в областях электроники и программирования. И вот не так давно один знакомый обратился ко мне с просьбой сделать какой-нибудь простой имитатор индуктивного датчика для системы зажигания мотоциклов.

Я удивился, что же тут сложного? Наверняка хватит самого простого генератора импульсов. Как оказалось, не все так просто. Поэтому ко мне и обратились. Но давайте обо всем по порядку.

Пациент

Имитатор был нужен для диагностики и ремонта систем зажигания мотоциклов. В идеале, самых разных мотоциклов, чем больше, тем лучше. Но для начала они хотели разобраться с одним конкретным мотоциклом - Yamaha Virago. Более точное название модели просто не знаю. Но он был довольно старым, лет 20-30, с их слов.

И у этого мотоцикла был старый же вариант системы зажигания, с одним индуктивным датчиком. В этом и была проблема. Новый блок зажигания найти было можно, но он был новой модификации, с двумя индуктивными датчиками, и не подходил для замены старой модификации.

Ситуация проясняется

Я попросил показать мне блок зажигания этого мотоцикла. Вот он, вид изнутри

Блок зажигания мотоцикла. Фото не мое, снимали знакомые. Блок зажигания мотоцикла. Фото не мое, снимали знакомые.

Видно, что блок кто то уже ремонтировал, так транзистор КТ819 (внизу справа) установлен явно не на заводе изготовителе. Кто его поставил, неизвестно. Говорят, так было сразу. Хорошо видно микроконтроллер MH63B01V1P, никакой информации по которому найти не удалось. Скорее всего это какая то заказная микросхема. Она много где упоминается в обсуждениях блоков зажигания, в том числе, автомобилей, но кроме фотографий и названия больше ничего нет. Ниже микроконтроллера виден субмодуль выполненный на керамической подложке.

Знакомые хотели сами разобраться с ремонтом блока. Но им был нужен имитатор датчика, что бы можно было работать на столе вдали от мотоцикла.

Как все это устроено

Как работают систем зажигания, думаю, известно почти всем. Однако, для мотоциклов (по крайне мере, для части из них) есть некоторые особенности в их построении. Для тех, кто раньше не сталкивался (как и я до этого случая) с подобными системами, нужно кратко пояснить, как там все устроено и работает. Для иллюстрации буду использовать тот самый Yamaha Virago. На других мотоциклах с подобной системой зажигания внешний вид и некоторые детали могут отличаться, но сам принцип останется тем же самым.

Датчик системы зажигания индуктивный. Представляет из себя катушку с магнитным сердечником. Намагничен или сам сердечник, или внутри датчика расположен постоянный магнит. На самом деле довольно стандартное исполнение подобных индуктивных датчиков. Индуктивность датчика не замерялась. Сопротивление обмотки порядка 200 Ом.

На роторе генератора, изготовленном из алюминиевого сплава, есть две накладки из железа (стали). Вот так это выглядит в реальности

Ротор генератора с накладками для датчика системы зажигания. Фото не мое, снимали знакомые Ротор генератора с накладками для датчика системы зажигания. Фото не мое, снимали знакомые

Сам ротор генератора жестко крепится на коленвале. При вращении ротора во время работы двигателя эти накладки проходят под датчиком вызывая изменение магнитного поля в его сердечнике. А это, в свою очередь, приводит к возникновению ЭДС в катушке датчика.

Схематически это можно представить так. Направление вращения я показал условно, оно не столь важно в данном случае.

Расположение датчика системы зажигания на мотоцикле. Иллюстрация моя Расположение датчика системы зажигания на мотоцикле. Иллюстрация моя

В новом варианте, который я упоминал ранее, накладка на роторе одна, но установлено два датчика разнесенных на некоторый угол.

Как все это работает

Работает все это довольно просто. На выводах датчика формируется импульс напряжения во время прохождения края накладки под сердечником. Вот так, упрощенно, выглядит сигнал с датчика при прохождении накладки

Форма сигнала с датчика системы зажигания мотоцикла. Иллюстрация моя Форма сигнала с датчика системы зажигания мотоцикла. Иллюстрация моя

Полярность импульсов напряжения зависит от полярности намагниченности сердечника датчика (или встроенного магнита) и подключения выводов датчика. Если выводы датчика поменять местами, то сменится и полярность импульсов. Но для данного мотоцикла датчик подключен так, что полярность импульсов соответствует показанной на рисунке.

А вот фотография с экрана осциллографа во время прокрутки двигателя стартером. Снимал не я.

Осциллограмма сигнала с датчика во время прокрутки двигателя стартером. Фото не мое, снимали знакомые Осциллограмма сигнала с датчика во время прокрутки двигателя стартером. Фото не мое, снимали знакомые

Амплитуда как положительных, так и отрицательных импульсов порядка 4В, в среднем. Если нарисовать упрощенную временную диаграмму, То получится примерно так

Временная диаграмма сигнала с датчика зажигания. Иллюстрация моя. Временная диаграмма сигнала с датчика зажигания. Иллюстрация моя.

Хорошо видно, что импульсы идут парами. На каждый оборот коленвала приходится по две пары импульсов, так накладки две. Интервал 4 мс соответствует небольшому расстоянию между накладками. 40 мс это время прохождения накладки через датчик. А один оборот коленвала занимает 200 мс.

Усилитель-формирователь в блоке зажигания формирует из импульсов датчика прямоугольные импульсы, которые соответствуют прохождению накладок под датчиком. Далее, импульсы поступают на микроконтроллер, который распределяет их по транзисторным ключам коммутирующим катушки зажигания

Работа усилителя-формирователя и микроконтроллера. Иллюстрация моя. Работа усилителя-формирователя и микроконтроллера. Иллюстрация моя.

Хорошо видно, что по положительному импульсу первичная обмотка катушки зажигания подключается к аккумулятору и начинается накопление энергии в ее магнитном поле. По отрицательному импульсу катушка отключается от аккумулятора и на ее вторичной обмотке формируется высоковольтный импульс.

Той самой особенностью, о которой я говорил ранее, является задание времени накопления энергии размером накладки (ее длиной). Точнее, это время зависит от времени прохождения накладки под датчиком. И оно тем меньше, чем выше обороты двигателя. Другой особенностью является то, что ротор генератора закреплен на коленвале жестко, поэтому изменением угла опережения зажигания занимается микроконтроллер и этот угол зависит только от оборотов двигателя.

Имитатор

Вот теперь можно переходить собственно к поставленной задаче - имитации работы датчика системы зажигания. Для обратившегося ко мне знакомого основную сложность представляли именно двухполярные импульсы. И их парность. Но на самом деле тут все довольно просто.

Точное соблюдение временных интервалов не столь существенно для проверки и ремонта блоков зажигания. Но примерные временные соотношения соблюдать смысл имеет.

Будем имитировать поведение максимально близкое к наблюдаемому на осциллограмме. Нет, никаких механических имитаторов не будет, хотя, со слов знакомого, такие делают. И никаких индуктивных элементов тоже не будет. Мы воспользуемся обычной дифференцирующей цепочкой из конденсатора и резистора. Это настолько банально, что даже неудобно об этом писать.

Формирование импульсов дифференцирующей RC цепью. Иллюстрация моя. Формирование импульсов дифференцирующей RC цепью. Иллюстрация моя.

Резистор 200 Ом соответствует сопротивлению обмотки датчика. На тот случай, если это будет иметь значение для блока зажигания (на тот момент схему блока зажигания я еще не разрисовывал). Емкость конденсатора 4.7 мкФ позволяет получить длительность импульса примерно соответствующую осциллограмме снятой на мотоцикле. Амплитуда прямоугольного импульса 5 В, это многовато, но это мы поправим.

У нас должно быть два прямоугольных импульса длительностью 40 мс с паузой около 4 мс между ними. Пауза между парами импульсов должна быть порядка 120 мс (200-40-4-40). Это можно сделать используя таймеры NE555 или одновибраторы, но получится громоздко. Поэтому я решил использовать простенький микроконтроллер PIC10F200. Он дешевый и в удобном корпусе SOT23-6. И эти микроконтроллеры у меня есть в большом количестве, остались от старого проекта.

Те, кто читает мои статьи уже наверняка задумались. Где то, и совсем недавно, они уже что то подобное слышали. Да, именно об этом имитаторе я упоминал в статье Ошибки допускают все. Исключений не бывает.

Схема имитатора получилась очень простой

Схема имитатора датчика зажигания мотоцикла. Схема моя. Схема имитатора датчика зажигания мотоцикла. Схема моя.

Здесь резистор R1 немного снижает амплитуду импульсов. А микросхема NC7WZ04P6X в удобном корпусе SC70-6 это просто быстрый сдвоенный инвертор с выходным током до 50 мА (не более 100 мА в целом на микросхему). Она обеспечивает развязку выхода имитатора от микроконтроллера. Конденсатор С5 использовался керамический, но можно взять и обычных электролитический (полярный). В этом случае его положительный вывод подключают к выходу микросхемы.

Микроконтроллер формирует, программно, на выводе GP2 импульсную последовательность

Генерируемый микроконтроллером сигнал Генерируемый микроконтроллером сигнал

временные параметры которой уже упоминались ранее. Микросхема DD2 инвертирует этот сигнал и на выходе имитатора получаем такой сигнал

Генерируемый имитатором сигнал. Фото с экрана осциллографа. Генерируемый имитатором сигнал. Фото с экрана осциллографа.

Извиняюсь за качество, фото делалось телефоном для отправки знакомому по WhatsApp. Сейчас имитатор уже не у меня, поэтому сохранить качественную копию экрана в файл уже не могу.

Да, форма импульсов отличается, но это не важно, в данном случае. И, как показала проверка, усилитель-формирователь в блоке зажигания корректно формировал прямоугольные импульсы из сигнала с имитатора.

Программа для микроконтроллера, без какой либо оптимизации, состоит всего из 40 команд, память данных не используется. Причем примерно половина программы занимается предварительной настройкой микроконтроллера. Программа настолько проста, что я не привожу ее текст. Но если в комментариях будут просить, то текст выложу.

У микроконтроллера остается неиспользуемыми 3 вывода, что позволяет реализовать 8 различных последовательностей импульсов, для разных систем зажигания разных мотоциклов. Свободной памяти команд для этого достаточно. Если же использовать другой микроконтроллер, то количество вариантов можно значительно увеличить. А микроконтроллер можно использовать практически любой.

А если нет такой микросхемы сдвоенного инвертора?

Не беда. Можно использовать почти любые микросхемы инверторов. Необходимая амплитуда тока выходного каскада составляет всего 25 мА. Но лучше не использовать микросхемы ТТЛ логики.

Можно заменить эту микросхему и парой транзисторов, например, BC847/BC857 или даже КТ315/КТ361 включив их по всем известной схеме выходного каскада УНЧ. При этом резистор 33 Ом ставить не нужно. Только нужно учесть, что такой выходной каскад не будет инвертировать сигнал с выхода микроконтроллера. Поэтому нужно сделать это изменив программу. Схема получится такой

Схема имитатора без микросхемы инверторов Схема имитатора без микросхемы инверторов

Как видите, ни в схеме имитатора, ни в его программе нет абсолютно ничего сложного.

Временные параметры импульсов можно программно задавать любыми. Если нужны просто двухполярные импульсы, а не пара импульсов, то можно отказаться и от микроконтроллера, заменив его генератором с раздельной регулировкой частоты и скажности импульсов.

Заключение

Как я и говорил в начале статьи, все настолько просто, очевидно и известно.

Имитатор не предназначен для разработки блоков зажигания мотоциклов. Только для их быстрой проверки и ремонта. Имитируется сигнал с датчика при прокрутке двигателя стартером. Поэтому частота импульсов не регулируется. Хотя сделать это возможно, просто задачи такой не стояло. Некоторые ограничения накладывает то, что длительность импульсов формируется RC цепочкой. Но это цена простоты конструкции. Да и эта длительность будет, в большинстве случаев, примерно такой же.

Ни схема, ни программа, ни печатная плата не являются секретными. Если кому то нужно, выложу и текст программы (и HEX файл прошивки), и Gerber файлы для изготовления печатной платы.

Имитатор был собран в единственном экземпляре, иного и не предполагалось. Хоть я и сильно сомневаюсь, но если кого то этот имитатор очень заинтересует, то могу выслать уже собранную плату с запрограммированным микроконтроллером. Даже с параметрами импульсов, которые вам нужны. Или запрограммированный микроконтроллер.

А что с тем мотоциклом то?

Да, забыл сказать. Микроконтроллеру, тому самому, заказному, не повезло. У него выгорел порт управляющий выходными ключами работающими на катушки зажигания. Так что блок не восстановить.

Есть пара идей, что можно сделать. Но пока никаких подробностей нет. Одну из идей знакомый обещал проверить в ближайшее время (только сколько это займет. ). Если будет интерес к статье и появятся дополнительные подробности или будет найдено решение по восстановлению блока, то напишу, что и как.

Электромагнитное устройство, именуемое датчиком Холла (далее ДХ), применяется во многих приборах и механизмах. Но наибольшее применение ему нашлось в автомобилестроении. Практически во всех моделях отечественного автопрома (ВАЗ 2106, 2107, 2108 и т.д.) бесконтактная система зажигания для бензинового двигателя управляется этим датчиком. Соответственно, при его выходе из строя возникают серьезные проблемы с работой двигателя. Чтобы не ошибиться при диагностике, необходимо понимать принцип работы датчика, знать его конструкцию и методы тестирования.

Кратко о принципе работы

В основу принципа действия датчика зажигания положен эффект Холла, получивший свое название в честь американского физика, открывшего это явление в 1879 году. Подав постоянное напряжение на края прямоугольной пластины (А и В на рис. 1) и поместив ее в магнитное поле, Эдвин Холл обнаружил разность потенциалов на двух других краях (С и D).

Демонстрация эффекта Холла

Рис .1. Демонстрация эффекта Холла

В соответствии с законами электродинамики, сила Лоренца воздействует на носители заряда, что и приводит к разности потенциалов. Величина напряжения Uхолла довольно мала, в пределах от 10 мкВ до 100 мВ, она зависит как от силы тока, так и напряженности электромагнитного поля.

До середины прошлого века открытие не находило серьезного технического применения, пока не было налажено производство полупроводниковых элементов на основе кремния, сверхчистого германия, арсенида индия и т.д., обладающих необходимыми свойствами. Это открыло возможности для производства малогабаритных датчиков, позволяющих измерять как напряженность поля, так и силу тока, идущего по проводнику.

Типы и сфера применения

Несмотря на разнообразие элементов, применяющих эффект Холла, условно их можно разделить на два вида:

Датчики тока, использующие эффект Холла, могут измерять как переменный, так и постоянный ток

  • Аналоговые, использующие принцип преобразования магнитной индукции в напряжение. То есть, полярность, и величина напряжения напрямую зависят от характеристик магнитного поля. На текущий момент этот тип приборов, в основном, применяется в измерительной технике (например, в качестве, датчиков тока, вибрации, угла поворота). Датчики тока, использующие эффект Холла, могут измерять как переменный, так и постоянный ток
  • Цифровые. В отличие от предыдущего типа датчик имеет всего два устойчивых положения, сигнализирующих о наличии или отсутствии магнитного поля. То есть, срабатывание происходит в том случае, когда интенсивность магнитного поля достигла определенной величины. Именно этот тип устройств применяется в автомобильной технике в качестве датчика скорости, фазы, положения распределительного, а также коленчатого вала и т.д.

Следует отметить, что цифровой тип включает в себя следующие подвиды:

  • униполярный – срабатывание происходит при определенной силе поля, и после ее снижения датчик переходит в изначальное состояние;
  • биполярный – данный тип реагирует на полярность магнитного поля, то есть один полюс производит включение прибора, а противоположный – выключение.

Как правило, большинство датчиков представляет собой компонент с тремя выводами, на два из которых подается двух- или однополярное питание, а третий является сигнальным.

Пример использования аналогового элемента

Рассмотрим в качестве примера конструкцию датчика тока ы основе работы которого используется эффект Холла.

Упрощенная схема датчика тока

Упрощенная схема датчика тока на основе эффекта Холла

Обозначения:

  • А – проводник.
  • В – незамкнутое магнитопроводное кольцо.
  • С – аналоговый датчик Холла.
  • D – усилитель сигнала.

Назначение ДХ в системе зажигания автомобиля

Разобравшись с принципом действия элемента Холла, рассмотрим, как используется данный датчик в системе бесконтактного зажигания линейки автомобилей ВАЗ. Для этого обратимся к рисунку 5.

Принцип устройства СБЗ

Рис. 5. Принцип устройства СБЗ

Обозначения:

  • А – датчик.
  • B – магнит.
  • С – пластина из магнитопроводящего материала (количество выступов соответствует числу цилиндров).

Алгоритм работы такой схемы выгладит следующим образом:

  • При вращении вала прерывателя-распределителя (движущемуся синхронно коленвалу) один из выступов магнитопроводящей пластины занимает позицию между датчиком и магнитом.
  • В результате этого действия изменяется напряженность магнитного поля, что вызывает срабатывание ДХ. Он посылает электрический импульс коммутатору, управляющему катушкой зажигания.
  • В Катушке генерируется напряжение, необходимое для формирования искры.

Казалось бы, ничего сложного, но искра должна появиться именно в определенный момент. Если она сформируется раньше или позже, это вызовет сбой в работе двигателя, вплоть до его полной остановки.

Внешний вид датчика Холла для СБЗ ВАЗ 2110

Внешний вид датчика Холла для СБЗ ВАЗ 2110

Проявление неисправности и возможные причины

Нарушения в работе ДХ можно обнаружить по следующим косвенным признакам:

Совсем не обязательно, что перечисленные факторы вызваны выходом из строя ДП. Высока вероятность того, неисправность вызвана другими причинами, а именно:

Как проверить работоспособность датчика Холла?

Есть разные способы, позволяющие проверить исправность датчика СБЗ, кратко расскажем о них:

Обратим внимание, что для выявления искрообразования высоковольтный проводок должен находиться рядом с массой.

  1. Применение мультиметра для проверки. Это способ наиболее известный, и приводится в руководстве к автомобилю. Нужно подключить щупы прибора, как продемонстрировано на рисунке 7, и произвести замеры напряжения.

На исправном датчике напряжение будет колебаться в диапазоне от 0,4 до 11 вольт (не забудьте перевести мультиметр в режим измерения постоянного тока). Следует заметить, что проверка осциллографом будет намного эффективней. Подключается он таким же образом, как и мультиметр. Пример осциллограммы рабочего ДХ приведен ниже.

  1. Установка заведомо рабочего ДХ. Если в наличии имеется еще один однотипный датчик, или имеется возможность взять его на время, то данный вариант тоже имеет место на существование, особенно если первые два сделать затруднительно.

Ест еще один вариант проверки, по принципу напоминающий второй способ. Он может быть полезен, если под рукой нет измерительных приборов. Для тестирования понадобиться резистор номиналом 1,0 кОм, светодиод, например, из фонарика зажигалки и несколько проводков. Из всего этого набора собираем прибор в соответствии с рисунком 9.

Светоиндикаторный тестер для проверки ДХ

Рис. 9. Светоиндикаторный тестер для проверки ДХ

мужики, ладно эксперименты, но когда собирается что то основательное (надежность не хуже чем в автомобиле) никогда бы не стал применять отходы, которые притом быстро не заменить при выходе из строя

типовой коммутатор, типовая катушка что может быть проще?

так ведь временем накопления некому управлять будет, перегреется Это если применять модуль GM,то там нет схемы ограничения времени накопления.
типовой коммутатор, типовая катушка что может быть проще? Так и надо поступать.В случае ремонта никакого гемороя,снял-поставил В случае ремонта никакого гемороя,снял-поставил согласен, конечно-же лучше типовые з/ч, а потренироваться можно и на б/у деталях.:beer: всем спасибо!

Можно зарядить от Гольфа - там в одном маленьком блоке и коммутатор и катушка, от ДХ должно заработать.Цена вопроса менее 2 тыс.

Памятна история, как коллега искал причину жуткого провала на карбюраторной девятке. Оказалось - катушка. Подменил на свою катушку Бош - провал исчез. Приносят ребята нашу новую катушку из магазина - не то, провальчик присутствует. Сколько не пробовали наши катушки - только на Боше работает без провала. Так и выпросили эту катушку у коллеги за неплохие деньги.
Может и есть смысл что получше поставить, чем штатную катушку?
Вот только Бош стоит как чугунный мост.

Можно зарядить от Гольфа - там в одном маленьком блоке и коммутатор и катушка, от ДХ должно заработать.Цена вопроса менее 2 тыс.

Памятна история, как коллега искал причину жуткого провала на карбюраторной девятке. Оказалось - катушка. Подменил на свою катушку Бош - провал исчез. Приносят ребята нашу новую катушку из магазина - не то, провальчик присутствует. Сколько не пробовали наши катушки - только на Боше работает без провала. Так и выпросили эту катушку у коллеги за неплохие деньги.
Может и есть смысл что получше поставить, чем штатную катушку?
Вот только Бош стоит как чугунный мост.

Это уже третья статья, рассказывающая о квадратурных декодерах, на сей раз с применением к управлению бесколлекторными двигателями.

В качестве иллюстрации я возьму очень распространённый двигатель с двенадцатью катушками в статоре и четырнадцатью магнитами в роторе. Вариантов намотки и количества катушек/магнитов довольно много, но суть всегда остаётся одной и той же. Вот фотография моего экземпляра с двух сторон, отлично видны и катушки, и магниты в роторе:




Чтобы было ещё понятнее, я нарисовал его схему, полюса магнитов ротора обозначены цветом, красный для северного и синий для южного:


На датчики холла пока не обращайте внимания, их всё равно нет :)

Что будет, если подать плюс на вывод V, а минус на вывод W (вывод U не подключаем ни к чему)? Очевидно, будет течь ток в катушках, намотанных зелёным проводом. Катушки намотаны в разном направлении, поэтому верхние две катушки будут притягиваться к магнитам 1 и 2, а нижние две к магнитам 8 и 9. Остальные катушки и магниты в такой конфигурации роли практически не играют, поэтому я выделил именно магниты 1,2,8 и 9. При такой запитке мотора он очевидно крутиться не будет, и будет иметь семь устойчивых положений ротора, равномерно распределённых по всей окружности (левая верхняя зелёная катушка статора может притягивать магниты 1, 3, 5, 7, 9, 11, 13).

Давайте записывать наши действия вот в такую табличку:

Угол поворота ротора U V W
n.c. + -

А что будет, если теперь подать плюс на U и минус на W? Красные катушки притянут к себе магниты 3,4,10 и 11, таким образом чуть-чуть повернув ротор (я по-прежнему выделяю магниты, за которые ротор тянет):


Давайте посчитаем, на сколько повернётся ротор: между щелями магнитов 1-2 и 3-4 у нас 51.43° (=360°*2/7), а между соответствующими щелями в статоре 60° (=360°/12*2). Таким образом, ротор провернётся на 8.57°. Обновим нашу табличку:

Угол поворота ротора U V W
8.57° + n.c. -

Теперь сам бог велел подать + на U и — на V!



Угол поворота ротора U V W
17.14° + - n.c.

Теперь опять пора выровнять магниты с зелёными катушками, поэтому подаём напряжение на них, но красный и синий магниты поменялись местами, поэтому теперь нужно подать обратное напряжение:



Угол поворота ротора U V W
25.71° n.c. - +

C оставшимися двумя конфигурациями всё ровно так же:



Угол поворота ротора U V W
34.29° - n.c. +



Угол поворота ротора U V W
42.85° - + n.c.

Если мы снова повторим самый первый шаг, то наш ротор провернётся ровно на одну седьмую оборота. Итак, всего у нашего мотора три вывода, мы можем подать напряжение на два из них шестью разными способами 6 = 2*C 2 3, причём мы их все уже перебрали. Если подавать напряжение не хаотично, а в строгом порядке, который зависит от положения ротора, то двигатель будет вращаться.

Запишем ещё раз всю последовательность для нашего двигателя:

Угол поворота ротора U V W
n.c. + -
8.57° + n.c. -
17.14° + - n.c.
25.71° n.c. - +
34.29° - n.c. +
42.86° - + n.c.

Есть один нюанс: у обычного коллекторного двигателя за переключение обмоток отвечают щётки, а тут нам надо определять положение ротора самим.

Теперь давайте поставим три датчика холла в те чёрные точки, обозначенные на схеме. Давайте договоримся, что датчик выдаёт логическую единицу, когда он находится напротив красного магнита. Всего существует шесть (сюрприз!) возможных состояний трёх датчиков: 2 3 — 2. Всего возможных состояний 8, но в силу расстояния между датчиками они не могут все втроём быть в логическом нуле или в логической единице:


Обратите внимание, что они генерируют три сигнала, сдвинутые друг относительно друга на 1/3 периода. Кстати, электрики используют слово градусы, говоря про 120°, чем окончательно запутывают нубов типа меня. Если мы хотим сделать свой контроллер двигателя, то достаточно читать сигнал с датчиков, и соответственно переключать напряжение на обмотках.

Для размещения датчиков я использовал вот такую платку, дизайн которой взял тут. По ссылке лежит проект eagle, так что я просто заказал у китайцев сразу много подобных платок:


Эти платки несут на себе только три датчика холла, больше ничего. Ну, по вкусу можно поставить конденсаторы, я не стал заморачиваться. Очень удобно сделаны длинные прорези для регулировки положения датчиков относительно статора.

Постойте, но ведь это очень похоже на квадратурный сигнал с обычного инкрементального энкодера!

Ещё бы! Единственная разница, что инкрементальные энкодеры дают два сигнала, сдвинутые друг относительно друга на 90°, а у нас три сигнала, сдвинутые на 120°. Что будет, если завести любые два из них на обычный квадратурный декодер, например, той же самой синей таблетки? Мы получим возможность определять положение вала с точностью до четырёх отсчётов на одну седьмую оборота, или 28 отсчётов на оборот. Если вы не поняли, о чём я, прочтите принцип работы квадратурного декодера в первой статье.

Я долго думал, как же мне использовать все три сигнала, ведь у нас происходит шесть событий на одну седьмую оборота, мы должны иметь возможность получить 42 отсчёта на оборот. В итоге решил пойти грубой силой, так как синяя таблетка имеет кучу аппаратных квадратурных декодеров, поэтому я решил в ней завести три счётчика:


Видно, что при каждом событии у нас увеличиваются два из них, поэтому сложив три счётчика, и поделив на два, мы получим равномерно тикающий определитель положения вала, с точностью до 6*7 = 42 отсчёта на оборот!

Вот так выглядит макет подключения датчиков Холла к синей таблетке:


В некоторых приложениях (например, для коптеров) все эти заморочки не нужны. Контроллеры пытаются угадать происходящее с ротором по току в катушках. С одной стороны, это меньше заморочек, но с другой стороны, иногда приводит к проблемам с моментом старта двигателя, поэтому слабоприменимо, например, в робототехнике, где нужны околонулевые скорости. Давайте попробуем запитать наш движок от обычного китайского коптерного ESC (electronic speed controller).

Мой контроллер хочет на вход PPM сигнал: это импульс с частотой 50Гц, длина импульса задаёт обороты: 1мс — останов, 2мс — максимально возможные обороты (считается как KV двигателя * напряжение).

Вот здесь я выложил исходный код и кубовские файлы для синей таблетки. Таймер 1 генерирует PWM для ESC, таймеры 2,3,4 считают соответствующие квадратурные сигналы. Поскольку в прошлой статье я крайне подробно расписал, где и что кликать, то здесь только даю ссылку на исходный код.

На вход моему ESC я даю пилообразное задание скорости, посмотрим, как он его отработает. Вывод синей таблетки лежит тут, а код, который рисует график, тут.

Поскольку у меня двигатель имеет номинал 400KV, а питание я подал 10В, то максимальные обороты должны быть в районе 4000 об/мин = 419 рад/с. Ну а вот и график подоспел:


Видно, что реальные обороты соответствуют заданию весьма приблизительно, что терпимо для коптеров, но совершенно неприменимо во многих других ситуациях, почему, собственно, я и хочу использовать более совершенные контроллеры, которым нужны сигналы с датчиков холла. Ну и бонусом я получаю угол поворота ротора, что бывает крайне полезно.

Я провёл детство в обнимку с этой книжкой, но раскурить принципы работы бесколлекторников довелось только сейчас.


Оказывается, что шаговые моторы и вот такое коптерные моторчики — это (концептуально) одно и то же. Разница лишь в количестве фаз: шаговики (обычно, бывают исключения) управляются двумя фазами, сдвинутыми на 90°, а бесколлекторники (опять же, обычно) тремя фазами, сдвинутыми на 120°.

Разумеется, есть и другие, чисто практические отличия: шаговики рассчитаны на увеличение удерживающего момента и повторяемость шагов, в то время как коптерные движки на скорость и плавность вращения, что сказывается на количестве обмоток, подшипниках и т.п. Но в итоге обычный бесколлекторник можно использовать в шаговом режиме, а шаговик в постоянном вращении, управление у них будет одинаковым.

Читайте также: