Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Статья относится к принтерам:

Был я как-то в гостях у Ивана Plastmaska. Болтали обо всём и зашёл разговор о концевиках. И тут Иван хвастается вот смотри какие есть, модные на Датчике Холла основаны, бери, потом расскажешь. Собственно выполняю обещание, рассказываю о применение на оси Z в Бультике, он же большой Ультик.

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

И так по порядку. Текста будет мало, фоток много. Фотки сделаны на «тапок», извиняйте.

Я прекрасно понимаю, что современный 3d принтер это не Plug and Play, но мне этот принцип очень нравится, и я считаю, что именно к этому надо стремиться производителям как самих устройств, так и запасных частей к ним.

Лирическое отступление закончилось, теперь к делу.

Была дана плата, в пакетике. Внешний вид. Со стороны датчика:

Пайка аккуратная, но ручная. Внешне ни чем не примечательное устройство на белом текстолите.

Габариты 44 х 17 мм. Подключение 4х контактный разъём по типу XH2,54. И тут всплывает первый косяк – залёт. В комплекте положили 3х контакный разъём, ладно спишем на невнимательность. Вообще же кроме самой платы в комплекте был разъём xh2.54 (3pin), 4 пластиковых болтика для крепления и магнит на который срабатывает плата.

Про магнит отдельно. Очень важно каким полюсом магнит подъезжает к датчику, так как последний реагирует на смену полюсов (не все сенсоры работают по такому принципу). Собственно от этого и такая высокая заявленная точность – 2 микрона. Для облегчения конечного пользователя, нужную сторону (север) производитель покрасил чёрной краской, т.о. магнит подъезжает к концевику покрашенной стороной. В моём случае краска почти стёрлась и я в начале думал, что это просто грязь. А инструкцию я начинаю читать после того как оно не заработало с первого раза. Признавайтесь, мы ведь все такие.

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

Подключал в итоге по простой схеме ничего лишнего покупать и паять как оказалось не надо. На MKS GEN 1.4 заработало таким образом:

Для подключения сделал кабель, собирал всё в кучу и поставил на место. У меня на фото чёрный и красный это питание +5V . Жёлтый это земля, она везде общая, синий это сигнал, (+сигнала не равно плюс питания).

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

Кстати виден мой вариант крепежа самого магнитика и платы.

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

Опрашиваем командой М119 концевики, проверяем туда ли едет при команде парковка. Настраиваем уровень стола, радуемся всё работает.

В общем и целом скажу так, мне данная плата понравилась, повторяемость срабатываний отличная. После установки и настройки без проблем смог уменьшить толщину 1го слоя с 0,3, до 0,15. До этого был механический концевик и такой фокус не удавался.

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

1. Сделать подключение стандартным – 3х пиновым. Это технически не так сложно.

2. Добавить в комплект провод, как минимум обжатый со стороны платы. Клещи для обжима есть не у всех. Для простоты подключения к разным «матерям» обратную сторону можно сделать дюпоном

3. Укомплектовать нормальным крепежом, 4 пластиковых болтика это хорошо, но они ни к селу ни к городу. Добавить пару пластиковых стоек, гаек. Это всё стоит копейки, а удобство монтажа возрастёт.

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

Пост на ресурсе первый, здоровая критика приветствуется.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

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

  • Статья первая: принцип работы квадратурного декодера + код для ардуино.
  • Статья вторая: квадратурный декодер на stm32.

Задача: есть обычный китайский бесколлекторник, нужно его подключить к контроллеру Copley Controls 503. В отличие от копеечных коптерных контроллеров, 503й хочет сигнал с датчиков холла, которых на движке нет. Давайте разбираться, для чего нужны датчики и как их ставить.

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

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

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

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

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

Угол поворота ротораUVW
n.c.+

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

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

Угол поворота ротораUVW
8.57°+n.c.

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

Угол поворота ротораUVW
17.14°+n.c.

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

Угол поворота ротораUVW
25.71°n.c.+

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

Угол поворота ротораUVW
34.29°n.c.+

Угол поворота ротораUVW
42.85°+n.c.

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

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

Угол поворота ротораUVW
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°.

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

Update: красивая анимация от Arastas:

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

Как сделать таходатчик.

Регулятор оборотов, с поддержанием мощности, о котором я рассказывал ранее, работает не только с коллекторными двигателями от стиральных машин. Но и с любым другим коллекторным двигателем рассчитанным на 220Вольт. Если двигатель рассчитан на постоянный ток, то потребуется небольшая доработка.
Для того, чтоб эта схема работала, нужно установить на двигатель датчик оборотов (таходатчик). Он будет отслеживать обороты вала двигателя и посылать сигналы на микросхему, которая в свою очередь будет управлять двигателем. Данная схема может работать с разными датчиками, и импульсными, и датчиком постоянного тока. Таходатчик постоянного тока — это может быть обычный микромоторчик из игрушек. Если вал двигателя и моторчика соединить, то при вращении двигателя моторчик будет вырабатывать электричество, чем быстрей вращать, тем больше напряжение. Вот по этому напряжению микросхема и будет следить за оборотами и регулировать двигатель. Подключается такой датчик к разъёму Х3.
Импульсных таходатчиков я знаю несколько. Это оптопара и датчик холла или обычная катушка на сердечнике в паре с магнитом. Оптопара — это на валу двигателя стоит диск с окошками (или окошком), с одной стороны диска источник света, с другой фотоэлемент. При вращении якоря фотоэлемент реагирует на "окошко" и посылает импульс на микросхему. Чем быстрее вращение, тем больше импульсов. Для датчика холла или катушки на якорь болгарки устанавливаем кольцевой магнит небольшого диаметра. Только ВНИМАНИЕ! с диаметральным намагничиванием, аксиальное намагничивание не подойдёт!

Полюсов может быть не обязательно 2, а 4, 6, и т. д.
теперь при вращении якоря полюса будут меняться и если поставить датчик холла то он будет посылать импульсы на микросхему в зависимости от полярности. Так-же можно поставить катушку (любую) или головку магнитофона и они тоже будут реагировать на смену полярности и посылать импульсы. Такие магниты и встречаются в комп. технике Например в куллерах, дисководах флоппидисков, сидиромах, жёстких дисках и др. Кстати, в них-же имеются и датчики холла.
Такие датчики подключаются к разъёму Х2.