Регулятор оборотов микродрели на микроконтроллере ATtiny85

Регулятор оборотов микродрели на микроконтроллере ATtiny85

Здоровья всем читателям Муськи! Благодаря этому замечательному сайту обзавелся множеством полезных вещей и знаний и в ответ решил написать первый отчет о недавно разработанном устройстве. В процессе разработки устройства столкнулся с рядом проблем и успешно их разрешил. Возможно, кому-то из коллег-новичков описание некоторых решений поможет в творчестве. Для изготовления печатных плат обзавелся микродрелью и стойкой для нее, превращающей дрельку в сверлильный микростанок. Необходимость этого возникла после кучки переломанных сверл 0.5-1мм при использовании в шуруповерте и китайском дремеле. Но, как оказалось, пользоваться таким инструментом без регулятора оборотов невозможно. Регулятор решил сделать самостоятельно, попутно получив новые знания. Радиолюбительский опыт у меня небольшой. В детстве по книге Борисова собрал несколько приемников, да моргалок на мультивибраторах. Потом пошли другие увлечения и дела. А тут по случаю заметил Arduino, лихо наваял макетов метеостанций, роботов, и захотелось автоматизировать при помощи микроконтроллеров все, до чего дотянусь. Размеры контроллеров шли по убыванию размеров и облегчению встраивания – Arduino UNO, Arduino Pro Mini, потом кучка ATMega328P, и для самых мелких и простых устройств приобрел ATtiny85. Тиньки покупал более года назад и они лежали и ждали свой очереди.

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

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

Микродрель МД-3

Стойка сверлильная, средняя

Расстояние от площадки до хомута 100 мм. Диаметр хомута 40/35/30/25мм на выбор.

Дрелька нашлась в московской конторе БОРМАШ, магазин у них я так понял где-то на рынке Cадовод, куда ехать совсем не хотелось, зато интернет-магазин за недорого мог доставить в ряд пунктов самовывоза в Москве. Доехало непривычно быстро по сравнению с али-ебеем, за день или два. Упаковано было знатно — в пупырку и картонную коробку. Дрелька понравилась, патрон сидел на валу идеально ровно, на глаз биений сверла заметно не было. Только разъем питания не совсем подходящий и в шнуре красный провод = «минус». Поначалу подключил его на «+» и думал, что же оно так плохо сверлит, потом заметил, что вал крутится не в ту сторону. Стойка выглядит довольно кустарно, но работе это не мешает. Поначалу дрелька опускалась несколько туго, но консистентная смазка на направляющих помогла. Люфта не заметно, твердосплавных сверл как в этом обзоре, только диаметром 0.8мм не сломал пока ни одного. Но при попытке применения станочка, понял, что пользоваться дрелькой просто вотнув ее в заявленные 24В — нельзя. На таком, заявленном штатным, напряжении она разгонялась до таких оборотов, что например фанеру фанеру уже не сверлила, а жгла — шел дым и воняло. Опытным путем установил, что в разных режимах лучше сверлить на 9, 12, 15В. Задолбавшись подключать к дрельке разные БП, решил что ей нужен регулируемый БП в компанию.

Начал изучать регулируемые БП и наткнулся на статью о самых разнообразных регуляторах специально для дрелей: radiokot.ru/lab/hardwork/31/ Сначала хотел делать на линейном регуляторе (схема Александъра Савова), но решил что это несовременно половиной мощности атмосферу греть. Потом был вариант с ШИМом на четырех операционных усилителях по аналогии со статьей DI HALT про аналоговый реобас: forum.easyelectronics.ru/viewtopic.php?p=132956#p132956 easyelectronics.ru/analogovyj-reobas.html Еще заинтересовала статья из «Радио» №4 2013г. (А. ДЫМОВ, Блок управления микродрелью): radioelectronika.ru/?id=901&mod=cxemi&sub_mod=full_cxema Но в окончательном виде решил делать тот же ШИМ на микроконтроллере после того как изучил статью: meandr.org/archives/27856 Cхема простая и кажется, что все продумано и разъяснено. Опять же тот же двигатель, что и у меня — ДПМ-30. Но решил использовать мелкую ATtiny85 вместо избыточного ATmega8 у автора. Бонусом к полезному инструменту станет освоение железа и программирования ATtiny.

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

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

Возможные назначения выводов микроконтроллера:

Необходимые каналы ввода-вывода микроконтроллера: — ШИМ выход управления оборотами дрели, в выходную цепь также включаем красный светодиод для индикации оборотов (а заодно для возможности отладки без подключения самой дрели); — вход АЦП для обнаружения нагрузки на сверло; — вход АЦП от переменного резистора уставки оборотов; — вход от тумблера «Авто/Ручной»; — вход от кнопки «Настройка»; — выход на светодиод (зеленый) индикации состояния «Режим».

Итого, нужно 6 каналов в/в, а у восьминогой ATtiny — 2 пина питания, 1 пин Reset (его трогать не будем, чтобы не потерять возможность перепрограммировать МК), и только 5 ног ввода-вывода, да еще АЦП и ШИМ могут быть заведены только на некоторые из них. Значит, необходимо сэкономить ноги, назначив на одну из них несколько функций.

Традиционно, совмещают на одной ноге несколько клавиш используя матрицу резисторов, и программно, используя АЦП, разбирают, что же там было нажато. Так сделано, например, в Arduino LCD&KeyPad Shield (SKU: DFR0009) от DFRobot. Но тут необходимо учитывать, что нога АЦП — тоже дефицитный ресурс, которого может не оказаться.

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

Первый, более простой способ описан в конце этой статьи: easyelectronics.ru/podklyuchenie-mikrokontrollera-likbez.html Минимум компонентов, надежная работа, но есть и недостаток — при нажатии кнопки светодиод горит постоянно. В нашем случае, например, кнопка переключает режим, а светодиод его отображает, и, удерживая кнопку, мы не можем узнать переключился уже режим или еще нет.

Второй способ подключения кнопки и светодиода к одному выводу подсмотрен здесь radio-hobby.org/modules/news/article.php?storyid=1173 Кнопка никак не влияет на работу светодиода, но есть особенность конструкции — в режиме входа при отжатой кнопке на резисторе и светодиоде, при протекании через них микроамперного тока, ограниченного внутренним подтягивающим резистором МК, должно падать не менее 3В для чтения логической единицы. Т.е. либо светодиод нужен высоковольтный (белый, синий), либо несколько последовательно, как и указано в статье. А при нажатии кнопки нога через резистор 5КОм (заметно меньше внутреннего подтягивающего к «+» питания) перетягивается на землю и читается логический ноль. В режиме выхода нажатие кнопки приводит лишь к вытягиванию из порта дополнительного 1мА тока, не влияя на питание светодиода.

В качестве индикатора режима было решено использовать зеленый 5мм китайский светодиод. Название модели, номинальный ток и напряжение были неизвестны. Самому замерить было некогда, просто заглянул в книжку «Занимательные проекты на базе микроконтроллеров tinyAVR. Дхананья Гадре, Нигул Мэлхотра», где в таблице говорилось, что на зеленом светодиоде падает 3.8В, даже больше чем на голубом, значит он нам вполне подходит. На это же напряжение был рассчитан и токоограничивающий резистор. Забегая вперед скажу, что в процессе отладки устройства выяснилось, что светодиод горит излишне ярко, а кнопка не читается. Эксперимент показал, что на токе 10мА на светодиоде упало всего 2.1В. Как же так? Гугл ответил, что оказывается зеленых светодиодов бывает два типа, отличающихся внутренней химией и оттенком свечения, при этом у одного таки напряжение 3.8В, а у другого всего 2.1В! В качестве примера, вот в этом отчете в самом отчете и в этом комментарии зеленые светодиоды как раз разного типа. И перед применением зеленых светодиодов не помешает выяснить, какой конкретно тип у нас. При номинальном напряжении 2.1В (а на малом токе напряжение еще меньше) на светодиоде невозможно прочитать лог. единицу с кнопки, а в режиме индикации через светодиод более 20мА потекло из-за неподходящего переменного резистора. Как была решена проблема — расскажу потом, а пока продолжим.

Еще соображения касаемо подключения ввода-вывода. Поскольку схемка будет работать в принципиально вибрирующем инструменте, решено было отказаться от установки МК в «кроватке» (хотя они и были закуплены вместе с тиньками) и запаять его в схему для надежности. А для прошивки предусмотреть на плате контакты ICSP. В случае же, если умудрюсь угробить МК при наладке — выпаять 8-ногий чип не большая проблема.

Также подумал, что нежелательно чтобы двигатель дергался при перепрошивке, а значит его надо подключать к выводам 2 или 3, свободным от ICSP, куда как раз может быть выведен ШИМ от Таймера 1. А к другой ноге МК (с АЦП)подключается конденсатор, фильтрующий импульсы с шунта, и он будет мешать сигналам перепрошивки, а значит тоже должен быть на 2 или 3 ноге. Соответственно кнопки, индикатор и переменный резистор подключаются к 5,6,7 ногам. К ним же подключены штырьки для программатора. Во время перепрошивки, чтобы не помешать процессу и не спалить программатор, контакты кнопки, тумблера должны быть разомкнуты, а движок переменного резистора — в среднем положении. Соответствующее состояние будет обозначено на передней панели.

Тактироваться МК будет в внутреннего генератора на 1МГц, быстродействие и точность в этом проекте не важны.

Запитываться дрелька будет от импульсного БП от старого принтера на 18В 1,5А. Ток можно было бы и побольше, но что уж есть. Логику будет кормить большой 7805, которых в наличии пачка (в отличие от более уместного маломощного 78L05), и который держит большее входное напряжение.

Надумал я кое-что проверить на макетке с Arduino Pro Mini и платкой питания «YwRobot 545043 Power MB V2». И не задумавшись, воткнул в нее этот же БП на 18В. Раздался знатный БАХ и кусок корпуса стабилизатора AMS1117-5.0 воткнулся мне в лоб, а из ардуины повалил дым. Опасное это занятие — ардуинство!

И поделом, по даташиту максимальное напряжение AMS1117-5.0 всего 12В, в отличие от 7805, у которого аж 35В. Удивительно еще, что находящийся следом AMS1117-3.3 не продолжил фейерверк, ведь судя по ардуине высокое таки прошло насквозь.

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

Первоначальный вариант схемы устройства:

(МК на схеме обозначен как TINY13, т.к. взят из библиотеки, и имеет с нашим 85 одинаковое расположение выводов (за исключением дополнительного ШИМ на 2,3 ногах))

Резисторы и конденсаторы решил применять типа SMD 0805, которые удалось купить на Ebay в виде удобной книжки с практически всеми номиналами резисторов и самыми ходовыми номиналами керамических конденсаторов. Хотел изначально найти детали побольше, типа 1206, чтобы легче паялись обычным паяльником, тем более до этого только с выводными имел дело и такая мелочь несколько пугала, но найти аналогичный ассорти-набор ни на Али, ни на Ебее не удалось. А покупать каждый номинал по отдельности получились бы уже совершенно другие деньги. И как показала практика, и с 0805 без опыта и фена — никаких проблем. Мажем площадку липким флюсом, ставим деталь пинцетом, прижимаем зубочисткой, чтоб к паяльнику не прилипла, тыкаем паяльник в один из выводов и она уже держится. А потом уже как следует пропаиваем оба вывода с проволокой припоя. Дешево, удобно и сверлить меньше.

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

Без перемычек развести одностороннюю плату никак не удавалось, и решил делать перемычки не в виде тупых проволочек, а заменив часть резисторов на выводные, попутно пустив в дело второй набор резисторов, выводных, закупленных еще перед изучением темы SMD.

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

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

Сторона выводных элементов:

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

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

Травить медь решил раствором перекиси водорода и лимонной кислоты как наиболее доступным составом. Возможные варианты химии для травления с расчетами можно посмотреть вот здесь radiokot.ru/lab/hardwork/62/ Перекись взял из аптечки, куплена была года 3 назад, срок годности вышел года 2 как, думал уже выдохлась и работать вообще не будет. Однако ошибся, плату протравило весьма бодро — минуты за три. Вот результат:

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

Плату залудил паяльником с применением оплетки. Напаял детали.

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

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

Конденсатор C2 на схеме подключенный к Reset запаивать не стал, т.к. он хоть и повышает надежность запуска устройства, но при перепрошивке МК может помешаться.

Микроконтроллер запаивал в последнюю очередь, перед этим подключив плату к БП и убедившись, что ничего сразу не выгорит и стабилизатор выдаст штатные 5В. Ничего не задымилось и потому подключаем на штырьки ICSP программатор и заливаем тестовую прошивку.

Прошивку для устройства будем писать в знакомой многим среде программирования Arduino, предварительно добавив в нее поддержку микроконтроллеров ATtiny, скачав набор библиотек и распаковав их в папку Arduino/hardware.

В качестве программатора выступила Arduino UNO с залитым скетчем Arduino-ISP из примеров, после заливки которого на линию Reset ардуины надо подключить конденсатор 10мкФ (чтобы программатор не перезагружался с началом передачи данных). Подключение (ATtiny — Arduino UNO): MOSI — D11, MISO — D12, SCK — D13, RESET — D10, плюс линии 5В и GND. Примеров программирования ATtiny85 было уже множество: mysku.club/blog/aliexpress/39707.html highlowtech.org/?p=1695

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

Все заработало как и ожидалось, за исключением одного — не читалась кнопка, подключенная к одному каналу с зеленым светодиодом, а светодиод горел заметно ярче красного. Замеры тестером показали, что в состонии PB0 в качестве выхода через светодиод течет более 20мА и на нем падает всего 2.1В. А в состоянии входа с внутренней подтяжкой на ноге всего 1.74В при отпущеной кнопке и 0.6В при нажатой. Неудивительно, что постоянно читается 0. Низковольтный зеленый светодиод даже не светясь при протекании микроамперного тока просаживал напряжение на ноге. Теперь понятно для чего в исходной статье последовательно подключали 2 светодиода.

Но ставить второй светодиод светить внутрь коробки тупо в качестве балласта (и на лицевой панели 2 одинаковых тоже не нужны) показалось несколько кривым решением. Задумался как еще можно приподнять напряжение в цепи светодиода и вспомнил про ВАХ стабилитрона. Если подключить последовательно со светодиодом встречно ему стабилитрон на 2В (чтобы работал штатно, на обратной ветви ВАХ), то получится как раз то, что нам надо. Когда горит светодиод на токе 10мА — стабилитрон пробивается и не мешает протеканию тока, а лишь стабилизирует падающее на нем напряжение на заданном уровне. Нужно лишь заменить токоограничивающий резистор, из расчета, что нужно уже подавить напряжение Uрез=5В-2.1В-2.0В=0.9В на 10мА, т.е. R=90 Ом. А когда нога переключена на вход с подтяжкой — благодаря крутизне ветви ВАХ до момента пробоя перехода, стабилитрон эквивалентен высокоомному резистору и на нем упадет опять же около 2В, подняв напряжение на ноге МК при отпущеной кнопке до 4В, что уже прочитается как TRUE. При нажатии кнопки нога окажется подтянутой к 5В внутренним резистором сопротивленим около 40КОм (по моим расчетам), а к земле — резистором 5КОм (который зашунтирует цепь светодиода), т.е. на ней будет те же 0.6В и считается FALSE. Подпаял стабилитрон навесом последовательно с резистором и кнопка заработала как надо.

Теперь настала очередь проверки работы ШИМ и тут тоже возникли проблемы. Стандартная ардуинская команда AnalogWrite(нога, заполнение) работать не желала. Значит что-то не так с библиотекой для тиньки. Полез шерстить даташит на МК и просторы интернета.

Выяснилось интересное: — на выводы 5, 6 (PB0, PB1) могут быть выведены 2 канала ШИМ (OC0A, OC0B) работающие каждый со своей уставкой заполнения (но одинаковой частотой) от Таймера 0; — на выводы 2, 3 (PB3, PB4) может быть выведен третий канал ШИМ работающий от Таймера 1, причем на ногу 3 может быть выведен прямой сигнал ШИМ (OC1B), а на ногу 2 — его же инверсная версия (/OC1B). Но вывод идет либо только на 3 ногу, либо на обе сразу. А нам надо ШИМ на 2 ноге, хотя бы инверсный (программно его инвертируем обратно), так что придется конфигурировать вывод на 2 и 3 ноги, и на 3 сигнал не пройдет только потому, что она объявлена входом.

Так вот, насколько я понял, в пакете поддержки ATtiny для Ардуино канал ШИМ от Таймера 1 может выводиться только на ногу 3. Видимо вывод его же инверсной версии посчитали излишеством. Придется сконфигурировать таймер и ШИМ самостоятельно (см. код, функция PWM3_init), вместо использования AnalogWrite.

Еще заметил, что при перенастройке Таймера 1 сбивается работа функции millis() – оказывается, по умолчанию для внутренних часов используется Таймер 1. Но можно перенастроить время на Таймер 0 при помощи макроопределения в файле Arduino\hardware\tiny\cores\tiny\core_build_options.h

Чем мы и воспользуемся, поскольку Таймер 0 в этом проекте как раз полностью свободен.

Также возник вопрос по диапазону уставки оборотов, читаемой с переменного резистора. Автор исходной схемы добавил последовательно с переменником 10K постоянный резистор 36K, видимо из расчета чтобы код АЦП вписался в диапазон 0-255. Реально получилось 0-230, причем максимум плавал. А хотелось бы именно 0-255 для соответствия полной шкалы уставки с 8-битным ШИМом. Для этого я выпаял постоянник и заменил перемычкой на +5В, АЦП стал читать весь диапазон, а 4 младших бита отбрасываем программно. И зачем нужна была лишняя деталь?

После тестовых испытания каналов ввода вывода загружаем в микроконтроллер боевую прошивку, написанную на С в среде Arduino по мотивам исходников на Бейсике автора исходной схемы.

Подключаем в качестве шунта 5 ваттный резистор 2.2 Ом. Для защиты схемы от индуктивных выбросов напряжения на заднем фронте ШИМ подключаем параллельно мотору диод Шоттки SS34, а для подавления помех от коммутации обмоток – конденсатор 100нФ. И начинаем испытания по управлению мотором дрели.

Сразу достает зубодробильный вой ШИМа на 4КГц (1МГц/256). Добавляем настройку делителя /4 — сразу полегчало, хотя писк никуда не делся, но 1КГц почему-то переносится гораздо легче даже при продолжительной работе.

В ручном режиме обороты мотора нормально регулируются 0-100%, а в автоматическом АЦП цепи обратной связи все время читает MAX значение и ничего не работает. Попутно замечаю, что плата громко пищит даже при отключенном моторе. WTF?

Берем тестер, откапываем осциллограф и начинаем изучать, что же мы выдаем и чего получаем. И роняем челюсть. На шунте вместо пологих волн тока через индуктивность в начале импульсов ШИМ видим иголки в десятки вольт. Значит, через шунт течет импульсный ток в десяток ампер! Причем даже при отключенном двигателе. Не удивительно, что плата зазвенела. Но что же замыкает цепь без двигателя? Крошечный конденсатор 100нФ! Помехи при коммутации обмоток он может и подавит, а пока устраивает кратковременное КЗ на каждом периоде ШИМ! Вывод — помехоподавлящий конденсатор не совместим с ШИМ управлением и контролем с помощью шунта, надо убирать.

И тут до меня доходит, что эти высоковольтные выбросы идут почти прямо на АЦП тиньки (т.к. тут амплитудный детектор, то конденсатор на ноге заряжается до максимального напряжения в иголке и благополучно хранит его, т.к. разряд только через утечку диода). Тинька вроде пока помирать не собирается, но что с ее ногой? Приборы показывают постоянное напряжение на ноге 5.2В, выше напряжения питания, но куда делось остальное? Вспоминаем устройство порта МК — для борьбы с перенапряжениями в нем есть специально обученные диоды на «+» и «-« питания, стравливающие излишек в БП. Но встроенные диоды хилые и сильно рассчитывать на них не стоит.

Убираем чертов конденсатор, меряем ногой напряжения — работает! Надежные МК делает Atmel! Видимо спасло, что емкость конденсаторов невысока была, немного заряда прокачивали.

Без конденсатора иголки пропали, плата перестала музицировать, нога вроде реально меряет амплитуду тока ШИМ импульса. Запускаем процедуру настройки и пробуем сверлить. Вроде все как надо — при нагрузке добавляет обороты, при выходе сверла сбрасывает. Но не только — несколько раз в минуту самопроизвольно без нагрузки разгоняется и тормозится. Почему непонятно, приборы ничего не показывают. То ли нога подгорела, то ли емкость проводов генерит незаметные иголки как тот кондер, то ли помехи от того же коллектора лезут.

Тут решил бороться с проблемой кардинально, ибо обратил внимание, что больше ни в одной схеме пиковый детектор не используется. Наоборот, везде контролируется интегральное значение тока, пропущенное через RC-фильтры. И такие измерения как раз нечувствительны к помехам в виде единичных выбросов. Меняем диод на резистор — и амплитудный детектор превращается в ФНЧ.

Изменяемое АЦП напряжение упало сразу на порядок — действующее напряжение гораздо ниже амплитудного в случае сигнала в виде пологих волн с паузами между ними. Ловить пришлось напряжение около 0.2 В. Можно конечно было увеличить сопротивление шунта, но для того ли мы городили ШИМ, чтобы греть атмосферу. А еще при большом заполнении ШИМ и нагрузке на мотор можно получить перенапряжение. Потому придется работать с низким U холостого хода.

Реакция на нагрузку похоже тоже замедлилась. Разгон начинается примерно через полсекунды, но большой проблемы в этом не вижу — как раз сверло выставится и пройдет медь на малых оборотах. И больше никаких ложных стартов. Можно работать.

Финальная схема устройства:

Устройство было смонтировано в корпусе, в роли которого выступила герметичная электромонтажная «Коробка Тусо распаечная пластиковая без сальников 120х80х50 мм, IP55 серая 67052 Рувинил Россия». Хотелось найти более плоскую, но ничего типа 110*60*30 не нашел. Чтобы не разводить гирлянды на столе, скрутил регулятор с БП в единое целое. Кирпич получился знатный, но нам его и не в кармане носить. И хотя после сверления пары десятков отверстий, сколько-нибудь заметного наощупь нагрева ключевого полевика, шунта и стабилизатора заметно не было, насверлил немного вентиляции на дне и задней стенке.

С тех пор станочек с регулятором участвовал в создании еще 2 плат (сколько ему потребовалось сверлить можете глянуть по словам «AVR Fusebit Doctor». Его работой весьма доволен.

Еще хочу отметить, что твердосплавные сверла с Али имеют хвостовик 3.2 мм, а цанги были только 3.0 и 3.5 — в одну сверло не лезет, а в другой не зажимается. Намотал на сверло медной проволоки и кое-как вставил в 3.5 мм, но некрасиво. Если кто встречал цангу на 3.2 диаметром 6 мм (везде разве что дремелевские, со сточенным до 5мм хвостом), подскажите.

При смене сверл процедуру настройки приходится проходить заново – видимо на токе двигателя сказывается разный момент инерции «тощего» обычного сверла и твердосплавного с утолщенным хвостовиком. Но это делается быстро и не напрягает. Желающие могут добавить в прошивку сохранение профилей сверл :)

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

В устройство решил поставить разъем питания типа «DS-225, Гнездо питания на панель». Для его крепления требовались винтики с гайками с резьбой 2.5мм. В кладовке ничего подходящего не нашлось, а тут еще вспомнил, что в другое поделие 2мм винтики требуются. Значит стоит пополнить коллекцию крепежа, чтобы в следующий раз ради гаечки на другой конец области не лететь. В строительных магазинах ничего меньше M3 не попадалось, значит надо искать специализированные.

Первым относительно удобным магазином оказался сетевой Крепмаркет Внутри глаза разбежались от всяких полезностей, но вот незадача – самые малые винтики были только M2.5 одной длины, а вот гаек и шайб к ним нет и не бывает! Впечатлила продажа гаечек поштучно за 2р/шт и ссыпание всего купленного в один мешок-майку (мелких пакетиков для разных размеров не было). Опять же накладно брать про запас разных размеров.

Выручил другой магазин крепежа – «Метизы от А до…» Вот там есть реально все в наличии, от М1.6, с разным шлицем и головой, с продажей поштучно и на вес, и по цене на порядок ниже предыдущего конкурента. Вот только надо сразу ехать в магазин-склад на ул.Плеханова, а то я поначалу зашел в магазин около метро Перово и сильно удивился озвученной цене. И выяснилось, что у них исключительно нержавейка, а за обычным крепежом надо ехать на перекладных в промзону.

📎📎📎📎📎📎📎📎📎📎