Например TDA7294

Форум РадиоКот :: Просмотр темы - Регулятор оборотов диска на ардуино
Форум РадиоКот
https://radiokot.ru/forum/

Регулятор оборотов диска на ардуино
https://radiokot.ru/forum/viewtopic.php?f=62&t=152726
Страница 1 из 2

Автор:  /-/ekit [ Пн фев 19, 2018 02:20:29 ]
Заголовок сообщения:  Регулятор оборотов диска на ардуино

Значит есть у меня кулер на 12в без лопостей и на нём диск. Мне нужна жёсткая стабилизация оборотов диска. Решино бы ло сделать на ардуино. Суть в чём: в диске сделаю дырку. Над дыркой будет светодиод, а под ней фотодиод. Таким образом можно наблюдать частоту вращения. Саму регулировку было решино сделать на основе ШИМ. То есть если частота допустим, меньше нужной (что мы узнаём блогодаря фотодиоду), то растояние между имульсами на мотор уменьшится. Идея рабочяя, но есть одна проблема. Я не знаю как это осуществить на ардуино. Можете дать ссылочки на статитьи где есть решения похожих проблем или сами объяснить? Если есть решение без применения МК, то будет даже лучше. Ну так у еть у кого какие нибудь идеи?

Автор:  Ivanoff-iv [ Пн фев 19, 2018 03:52:41 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

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

Автор:  pyzhman [ Пн фев 19, 2018 09:36:03 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

... если частота допустим, меньше нужной (что мы узнаём блогодаря фотодиоду), то растояние между имульсами на мотор уменьшится...

Увеличится.

Автор:  musor [ Пн фев 19, 2018 10:10:07 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

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

Добавлено after 52 seconds:
на худой канец с холы снять с штатного или дополнителного и никаких дыр и оптиеки

Автор:  AndyBig [ Пн фев 19, 2018 13:09:34 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

Вроде нигде не указано, что двигатель бесколлекторный.

Автор:  Ivanoff-iv [ Пн фев 19, 2018 13:12:52 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

Значит есть у меня кулер на 12в без лопостей и на нём диск.
скорее всего кулер = компьютерный вентилятор, а там, как правило...

Автор:  /-/ekit [ Пн фев 19, 2018 17:37:23 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

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

Автор:  arkhnchul [ Вт фев 20, 2018 02:32:43 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

они сравнительно "суперстабильные" только в варианте вообще без обратной связи.
по теме - какие обороты хотите стабилизировать? Численное значение оборотов в единицу времени. И нагрузка на вал - постоянная или меняющаяся? Насколько стабильно?
"жесткая стабилизация", aka управление по позиции, нормально работает только с человеческим энкодером. Т.е. хотя бы 256 импульсов на оборот - что тоже весьма мало - а не с одним. Ардуинской AVR-ки на вменяемую обработку такого (чтение энкодера + ПИД регулятор + чтение задания) быстро перестает хватать.

Автор:  Ivanoff-iv [ Вт фев 20, 2018 05:48:56 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

согласен - дырочек можно и больше напилить (чем ниже планируемые обороты и жестче требования по стабильности последних - тем больше дырок), только пилить придется максимально симметрично (иначе регулятор запутается).
ПИД и ШИМ? считаю что в полной своей реализации они не нужны - моторчик довольно слаб, а инерция диска велика -> обороты и при дискретном управлении не сильно будут дрыгаться.

Добавлено after 7 minutes 29 seconds:
а какова цель создания сего девайса?

Автор:  Starichok51 [ Вт фев 20, 2018 09:29:29 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

arkhnchul писал(а):
Ардуинской AVR-ки на вменяемую обработку такого (чтение энкодера + ПИД регулятор + чтение задания) быстро перестает хватать.
это если писать на Си.
а если писать на ассемблере, то и АТМега8 хватит с большим избытком...

Автор:  AndyBig [ Вт фев 20, 2018 10:29:58 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

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

Автор:  Ivanoff-iv [ Вт фев 20, 2018 12:33:33 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

ну вот примерчик накидал: (протеус)

Добавлено after 58 minutes 47 seconds:
в дальнейшем хочу тему развить в управление 220в дрелькой со стабилизацией оборотов (датчик скорее всего оптический или холла, управление - фазокоррекция и тиристор), вот там ПИД понадобится.

Вложения:
temp.rar [13.69 KiB]
Скачиваний: 243

Автор:  Аlex [ Вт фев 20, 2018 12:40:29 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

это если писать на Си. а если писать на ассемблере, то и ...

Всё зависит от "писателя". Кто-то и на АСМе может такого понаписать, что другой на Си напишет компактнее.

Автор:  Starichok51 [ Вт фев 20, 2018 13:11:18 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

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

Автор:  AndyBig [ Вт фев 20, 2018 14:02:21 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

даже самый оптимизированный код компилятора на Си будет в 3 раза длиннее кода ассемблере.

Наверное, можно после долгих поисков найти такую задачу, которую компилятор бы решал в три раза неоптимальнее, но в 99% случаев код компилятора будет максимум на 10% больше или медленнее профессионального ручного ассемблерного кода.
Еще лет 8 назад видел в инете сравнение результатов работы разных компиляторов между собой и с вручную оптимизированным ассемблерным кодом. У того же IAR разница с "ручным" кодом была менее 10%.
Они давно уже далеко не тупые и обучены очень многим приемам для компактности и быстродействия :)

Автор:  arkhnchul [ Вт фев 20, 2018 14:31:06 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

это если писать на Си.
а если писать на ассемблере, то и АТМега8 хватит с большим избытком...

на простой регулятор оборотов - да. На стабильный контроль по позиции, про который я писал - нет. Тупо производительности начиная с некоторых оборотов не хватает на обсчет импульсов энкодера и своевременную реакцию. ЧПУ-шники по этим граблям ходили много и долго :dont_know:

Автор:  Starichok51 [ Вт фев 20, 2018 16:16:17 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

всё зависит от числа оборотов и числа импульсов энкодера.
для данной темы топикстартера вполне хватит производительности АТМега8.

Автор:  Ivanoff-iv [ Вт фев 20, 2018 19:16:16 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

то ЧПУшники с шаговиками, а нас никто не заставляет каждый шаг прощитывать: момент инерции постоянен, крут. момент тоже меняется не критично (при постоянном питании) => угловое ускорение примерно постоянно => шагать можно не по углу, а по времени => нагрузка на МК практически (не считая более частых замеров, но это нагрузка на таймер, а не на ЦПУ) не зависит от скорости вращения мотора.

Автор:  linuxdude [ Вт фев 20, 2018 19:59:00 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

Из ардуины шаговиками просто рулить, если найти драйвер (микросхему), там обычно 2 вывода всего: step и dir (шаг и в какую сторону шагаем). Для ардуин готовые шилды для шаговиков бывают. И даже датчики не требуются, пор пока частота шагов еще не приводит к пропускам. Дергаем лапками, мотор крутится в такт. Синхронность - идеальная. Правда большинство шаговиков не дадут высоких оборотов, а "наивное" переключение на низких частотах может вызвать шум и вибрацию. Большинство шаговиков оптимизировано на низкие обороты и солидный момент. Так что если хотелось что-то стробо-оптическое с солидными оборотами, шаговик может и не быть хорошей идеей.

На правах идеи можно похожий номер с мотором вентилятора закатить, если это компьютерный. Что есть компьютерный вентилятор? Вкратце, обычно
это синхронный (ага!) 2-фазный мотор, 2 катушки, общий катушек на + питания, оставшиеся 2 вывода через ключи по очереди на землю. Родная схема вентилятора переключает по факту ротора в нужной позиции, RPM "какой выйдет". Если отцепить катушки от схемы и взять микроконтроллер и пару полевиков, можно переключать катушки по очереди из прошивки. Магнит ротора следует за полем катушек. Понятно к чему я? Дергаем лапками, поле меняется, ротор следует за ним. На старте дергаем лапки медленно, чтобы ротор стронулся и вошел в синхронизм с полями катушкек. Постепенно ускоряем махание лапками, пока не получим желаемые обороты. Все, машем лапками, мотор крутится. Если нагрузка не меняется, т.е. это что-то типа стробоскопических эффектов и проч - даже датчики не надо по минимуму. Ротор следует за состоянием катушек 1 в 1, хорошо для синхронизации. Из минусов? Если нагрузка меняется или мотор тормознется, он не раскрутится снова. На полной скорости коммутации инерция ротора помешает с места в карьер взять нужную скорость. Если приделать датчик типа оптического или магнитного проверяющего что мотор крутится, можно раскрутить заново, повторив алгоритм раскрутки. Более нормальный вариант - следить за состоянием ротора по датчикам или ЭДС обмоток и адаптировать времена коммутации. Но это усложняет железо и прошивку и идет вразрез с желанием синхронизации. Для крутилки с стробированием, и проч - чуток перебор. Синхронный мотор может вести себя "как шаговик", с "слепым" переключением обмоток, если меру знать и не выбивать из синхронизма. Такое управление просто по схеме и легко делается в софте. Это урезанная версия управления мотором с рядом допущений. Однако допущения типичны для стобоскопических и тому подобных конструкций, где "диск" просто крутится в воздухе. Но это в допущении что вы "крутилку" хотели. Если что-то ближе к "точилке" - схалявить, уповая только на синхронизм мотора не получится.

Автор:  Starichok51 [ Вт фев 20, 2018 20:19:48 ]
Заголовок сообщения:  Re: Регулятор оборотов диска на ардуино

делал я для шаговиков программу с возможностью крутить одновременно по двум осям (горизонтальным). а второй таймер управлял третьей осью (вертикальной).
и получилось безо всяких проблем на АТМега8.
один товарищ делал свой станок для укладки smd элементов на печатную плату, а я ему помогал с алгоритмом управления двигателями.
в частности, я отрабатывал алгоритм разгона и торможения.
двигатели без энкодера (датчика шагов), поэтому управление делалось по времени.
и Ivanoff-iv сказал правильно - тактированием двигателей занимается таймер. и таймер у меня получился не так уж сильно нагруженный - отдыхал во много раз больше, чем работал в собственном прерывании.
а в основном цикле делается вывод координат на индикатор 1602 и работает интерфейс с компом. то есть, тоже выполняется мало работы.

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

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/