Перистальтический насос.
Подключение драйвера А4988 к двигателю NEMA17.

Перистальтический насос.

Никогда не понимал, почему электродвигатели называют моторами. В самом слове мотор заложен рев, искры и облака дыма, вырывающиеся из выхлопной трубы при повороте ручки газа. Но по каким-то причинам у нас прижилось непонятное словосочетание «электромотор». Как по мне, так это самый настоящий оксюморон. Но как бы то ни было мы будем подключать STEPPER MOTOR NEMA 17 (17HS4401) к драйверу А 4988 да так, чтобы это заработало. Ну а по ходу сделаем перистальтический насос для разных нужд.


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

И, как большинству насосов, ему нужен двигатель и не просто двигатель, а тихоходный и мощный. Для этого я буду использовать хорошо себя зарекомендовавший в разных устройствах NEMA 17 17HS4401. Точно такой же стоит у меня на 3D принтере в экструдере. Управлять двигателем будет, наверное, самый дешёвый драйвер чипе А4988. Который в свою очередь будет получать необходимые указания от МК.

Драйвер на чипе А4988 стоит сущие копейки, смонтирован на небольшой плате, оснащается приклеиваемым радиатором и имеет 16 выводов:
1 (ENABLE) – разрешает работу чипа. 1/0 – запрещен / разрешен.
2, 3, 4 (MS1, 2, 3) – делитель шага.
5 (RESET) – внешний сброс драйвера. Сброс происходит при низком (0) потенциале на выводе.
6 (SLEEP) – переключение драйвера в спящий режим 1/0 – бодры / спим.
7 (STEP) – тактовые импульсы для работы двигателя (импульс – шаг).
8 (DIR) – направление вращения вала 1/0 – «лево» / «право» (это условно).
11, 12, 13, 14 (1А, 2А, 1B, 2B) – выводы подключения обмоток двигателя.
16 (Vmot) – питание двигателя (8…35V). Не заморачиваемся подключаем 12 вольт.
10 (Vlog) – питание управляющей схемы (3…5,5V). Я выбрал 3.3V для возможной качественной работы с дисплеями Nokia 5110 или HX1230.
9, 15 (GND) – общий.

Чтобы при запуске насоса наш драйвер был отключен, мы подтягиваем первый вывод резистором R12 к «единице», а потом уже при инициализации МК опускаем этот вывод программно на землю. Тем самым, запуская драйвер. Если в процессе работы нам не надо будет его перезагружать, то вывод RESET можно оставить в покое. Он уже аппаратно подтянут к «единице». А чтобы драйвер никогда не спал можно замкнуть ножку SLEEP и RESET. Или подтянуть SLEEP к «единице» через пяти килоомный резистор. Сложнее обстоит дело с выводами MS. В зависимости от того, что на них «ноль или единица» будет работать делитель. Тут настройка следующая: 1/1 – (000) (полный шаг 200 импульсов на один оборот); 1/2 – (001); 1/4 – (010); 1/8 – (011) и 1/16 – (111). Если устройство сложное и требует изменение шага, то все эти выводы подключаются к МК и управляются программно. Но если размер шага известен и не требует изменений, а это как раз наш случай, то на выводы сразу подаются необходимые сигналы и не тратятся выводы контроллера. Вывод DIR указывает драйверу в какую сторону необходимо вращается валу. Я подключил этот вывод к МК, но по большому счету его надо было бы опустить на землю и забыть.

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

И вот тут мы подходим к одному интересному моменту. Дело в том, что этот двигатель стабильно работает только в узком диапазоне оборотов. При 8+ об/сек. в работе двигателя начинают появляться пропуски в шагах, а мощность падает так, что его можно остановить, слегка сжав пальцами вал. При низких оборотах (с делителем 1/1) двигатель также начинал сбоить и терял мощность. Экспериментально я выяснил, что устойчивая работа двигателя, применимо к насосу, будет в диапазоне от 1 до 4 об/сек., а значит надо подавать импульсы на вход STEP с частотой от 200 до 800 Герц.

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

    Vref = Imax * 8 * Rs * 0.7

Где:
Imax – максимальный ток двигателя – для 17HS4401 он 1,7А.
Rs – сопротивление в цепи обвязки драйвера, расположенные около выводов подключения двигателя. Обычно это 1 Ом.

Для 17HS4401 с таким сопротивлением Vref = 0,952V. С помощью мультиметра выставляем полученное напряжение, вращая подстрочный резистор. Контролируем напряжение прямо на лимбе резистора.

Вот и все. С подключением покончено. Дальше только влажные фантазии программиста. Честно сказать я получил большое удовольствие от процесса.

Насос получил плавный разгон, внешне управление (пуск/стоп), ну это если кому захочется управлять насосом, например, нажимая на педальку или по сигналу с концевика датчика уровня. Аварийную остановку по внешнему сигналу, а также защиту от перегрева двигателя. Ну и в довесок счетчик времени работы до замены рабочей трубки. Счетчик так себе. Считает время работы насоса без привязки к количеству перекаченной жидкости. Я его влепил на всякий случай, чтобы не забывать о том, что трубку надо иногда менять. И желательно до того, как ее изжуёт ротор. Максимальная производительность насоса около 35 л/час поэтому, выставив 99 часов на максимальной скорости можно перекачать около 3,5 м3. Что, в общем, не мало. Выдержит ли трубка? Не знаю, не проверял.

В меню настроек можно точно откалибровать производительность, отключить/включить подсветку и вход внешнего управления, также записать время до замены шланга насоса. Изменить вывод данных о работе насоса. Либо в литрах в час, либо в тактах счетчика для формирования импульсов. Диапазон значений работы счетчика от 2500 до 625. Это как раз от 1 до 4 оборотов в секунду. Чем больше значение, тем медленней будет крутиться двигатель. Расчет такой:

w = (1 000 000 / (T * 2))/200

Где:
1 000 000 - количество тактов, поступающих после делителя на счетчик Т1 в секунду;
Т – половина количества тактов при формировании импульса;
200 – количество импульсов на 1 оборот.

Как я уже писал, насос имеет защиту и может аварийно отключаться при получении внешнего сигнала аварии, а также при перегреве двигателя. При получении сигнала аварии подается звуковой сигнал, на индикаторе указывается причина остановки и показания «замораживаются». Звуковой сигнал выключается по одному короткому нажатию на кнопку энкодера. В случае если превышено время работы до замены шланга, насос не остановится, но на экране появятся прочерки на месте счетчика времени и ежеминутно будет подаваться короткий звуковой сигнал.

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

#define MAX_PUMP_WORK 625  //максимальная скорость работы насоса   

А для уменьшения производительности необходимо увеличить число в строке

#define MIN_PUMP_WORK 2500  //минимальная скорость работы насоса 1 об/сек

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

Настройка потока осуществляется следующим образом. На весы, желательно с точностью до грамма, ставится 2-х литровая банка и оттаривается. После чего насос включается в режиме «настройка» и наливает в емкость воду. Налив примерно около литра насос сам остановится. Для настройки необходимо выставить на дисплее количество грамм воды налитых в банку и снова запустить процесс. Для более точной настройки необходимо провести три, четыре итерации пока не будет достигнута приемлемая точность розлива (±5 гр. на 1000гр.). После чего выйдя из меню настроек контроллер пересчитает все необходимые коэффициенты и скорректирует отображение производительности.

Я сознательно не стал программировать насос на розлив по установленному объему. Потому как на мой взгляд, проще осуществлять розлив в тару, ну скажем, спиртосодержащей жидкости, используя внешнее управление (педальку). Нажал, потекло, еще нажал, не течет, крышечку закрыл, следующую бутылочку подставил. И не важно какая емкость у подставленной тары. Удобно. Хотя надо сказать, что при такой производительности и больших объемах этот процесс может быть очень утомителен. Короче, если кому понадобится, можно будет запилить и эту опцию.

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

OSCCAL = 0xa7; //Регистр подстройки частоты внутреннего генератора

Фьюзы, выставляемые при прошивке МК, можно посмотреть в заголовке основного файла Program_Pamp_1.с. О том, как это всё это сделать можно прочитать здесь.

Вот пару небольших видео работы насоса.

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

Помимо напечатанных деталей для сборки насоса понадобятся подшипники 605Z 5х14х5 девять штук и три 20-ти мм. винта с гайками диаметром 2,5 мм. и головкой в потай. Пружины толщиной 1мм, длинной 30 мм, внутренним диаметром 8 мм. сталь 304 SUS, винты диаметром 3мм. разной длинны шайбы и гайки к ним. Ну и конечно силиконовая трубка внутренним диаметром 6 мм. Минимальная ее длинна 200 мм. Но тогда придется использовать переходники как у меня, а это не совсем хорошо. Точнее это совсем не хорошо. Потому как сделанные из пластика переходники не выдержат перекачки, скажем, ацетона, да и если перегонять спирт, то они могут привносить в продукт свой неповторимый аромат, а вот для перекачки машинного масла, думаю, вполне подойдут. Но лучше озаботится качественными переходниками из нержавейки или не поскупиться на длинную трубку. К тому же трубку можно раз от раза протягивать, меняя ее в насосе и не доводя до полного «изжёвывания».

Все компоненты включая блок питания помещаются в один небольшой корпус и свободно там располагаются. Подключение внешних сигналов осуществляется через два RSA разъема. Для подачи сигнала необходимо замкнуть центральную жилу разъема на общий. Разъем питания стандартный компьютерный (AS-224 с защелками). Сетевой выключатель MIRS-101A-8C3.

Блок питания брал на Али, напряжение 12V. Хоть он и рассчитан на ток 3А, подозреваю, что долго он его не выдержит, перегреется. Уж больно подозрительно маленькие у него радиаторы. Но так как насос потребляет в два раза меньше я думаю, что, перегрев блоку не грозит. А вот нагрев самого двигателя, другое дело. Шаговики могут раскаляться аж до 80С (рука держит около 55С). Это может стать фатальным т.к. насос я печатал из PET-G (80С) а корпус из PLA который 60С уже не держит. Чтобы избежать такого конфуза я воткнул внутрь небольшой вентилятор на 12V 40Х40. Ну а если он вдруг не справится, то защита отключит насос при температуре двигателя 60С. А так как двигатель и коробка корпуса развязаны, то ничего плохого произойти не должно.

Я пока не гонял девайс больше трех часов, поэтому сложно сказать, как он будет себя вести при длительной работе. Но три часа он отработал и даже не «вспотел». Температура двигателя не превышала 35 С. И блок питания был чуть теплый. Короче насосик работает.


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


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

Ну а на сегодня все. Удачи.

03.06.21


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

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