Перейти к содержимому


Регулятор оборотов на ардуино.


Сообщений в теме: 976

#1
Автор темы  orio55 Отправлено 12 March 2017 - 10:34
12 March 2017 - 10:34

    5-ый разряд

    • Изображения orio55
  • Members
  • PipPipPipPipPip
  • 228 сообщений
  • Имя:valeriy
Тему делаю по просьбе автора этого устройства Александра. Ну нет у него времени.
Считаю что этот вопрос должен обсуждаться обществом этого форума. Тему эту легко будет найти новичку. Потому что случайно разыскать это устройство прочитывая все темы не реально.



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









Как я говорил ранее изготовить регулятор оборотов с обратной связью на ардуино намного проще, чем на микросхеме ТДА1085. Простота заключается в том, что паять приходится, в основном из готовых модулей. Но самое главное это то, что изготовление делится на несколько этапов, и после каждого из них мы можем проверить правильность выполнения.
Для изготовления мы будем использовать Arduino Pro Mini и LCD дисплеи 1602 . Так же для прошивки нам понадобится Переходник USB to COM .

В самом начале нам необходимо соединить ардуинку и переходник по этой схеме.

Изображение




Теперь мы сможем устанавливать программы в наш микроконтроллер. Для этого устанавливаем на компьютер программу Arduino 1.6.6 . Скачать её можно по этой ссылке:https://www.arduino....leases#previous
Возможно, подойдут и другие версии, но у меня стоит именно эта. А так же скачиваем и устанавливаем драйвер для переходника. Описание по ссылке: http://radiolis.pp.u...to-com-pl2303hx
Теперь нам необходимо подключить плату к компьютеру и настроить программу под наш порт и нашу плату. Подробно об этом в видео.
Скачиваем папку с прошивками для регулятора по ссылке:https://drive.google...Vm8?usp=sharing
И пробуем загружать их в микроконтроллер. Теперь мы сможем устанавливать прошивки для разных этапов сборки.
Следующим этапом будет распайка нужных пинов на ардуинке,



Изображение



подготовка дисплея и соединение их вместе.




Изображение



Для проверки этого этапа понадобится прошивка из папки 2.
Третьим этапом припаиваем переменное сопротивление 10кОм к пину А0 центральной ножкой и к + и - платы крайними ножками. Проверяем результат прошивкой №3



Далее на D8 припаиваем сигнальный выход датчика Холла электродвигателя и подаём на него питание от платы. Для проверки прошивка 4.
Теперь нам необходимо изготовить силовую часть регулятора.



Изображение



Она состоит из двух участков. Первый отслеживает переход синусоиды через ноль.



Изображение



А второй управляет симистором.



Изображение



Для проверки используем скетчи 5 и 6.
Вот наш регулятор и готов. Можем заливать программу регулятора с обратной связью, или ПИД – регулятора и пользоваться.

Сообщение отредактировал orio55: 21 April 2017 - 18:38


#2
Автор темы  orio55 Отправлено 12 March 2017 - 10:45
12 March 2017 - 10:45

    5-ый разряд

    • Изображения orio55
  • Members
  • PipPipPipPipPip
  • 228 сообщений
  • Имя:valeriy
Содержание видео: (при нажатии на строчку видео откроется в нужном месте.)


00:00 - Заставка приветствие
1:12 - Вопрос о поддержке оборотов с демонстрацией
5:48 - Вопрос о датчике Холла. Как заменить.
10:20 - ТДА1085 или ардуино? Что лучше, плюсы и минусы регуляторов
17:13 - Вопрос о цене
18:00 - Заблуждения по поводу регулятора
19:40 - Как рассчитать передаточное число для двигателя в станке
24:30 - Как работает регулятор (управление симистором)
27:14 - Ограничение регулировочного диапазона
28:40 - Прошивки
29:14 - ПИД регулятор
32:20 - Алгоритмы прошивок 16 и 18
36:50 - Переменные для прошивок
40:40 - Наводки на датчик Холла


После того, как мы с вами собрали и проверили регулятор описанный здесь: https://shenrok.blog...t=1489156293398
Мы можем приступать к установке прошивок, которые будут поддерживать заданные обороты. Но сначала давайте остановимся на вопросе датчика Холла.
Заменить тахогенератор на датчик Холла совсем не сложно. Я подробно рассказываю об этом в видео на 5:48. Но какой, же поставить? Нам необходим цифровой датчик Холла, желательно биполярный. Так как он будет выдавать в 2 раза больше сигналов. А это очень важно для малых оборотов. Вот такой стоит в моём двигателе SS441.



Изображение

Открываем даташит http://www.sumzi.com...18172920499.pdf
смотрим распиновку и припаиваем на место.
Разместив такой датчик возле магнита, который находится на валу двигателя, ардуино будет получать информацию об оборотах нашего двигателя. Залив в микроконтроллер прошивку №4, считаем сколько импульсов даёт датчик на 10 оборотов вала двигателя или станка. Это число нам понадобится в дальнейшем.



А вот уже теперь мы можем приступать к установке прошивок. В папке их находится 3. «PID_12», «_16», «_18».
https://drive.google...iew?usp=sharing


Рассмотрим PID_12:
В самом начале скетча у нас имеются строки, в которые мы должны внести нужные нам значения:

int obMax = 6000; //ввести максимальные обороты
int obMin = 200; //ввести минимальные обороты
float kImp = 120; //ввести кол-во импульсов на 10 оборотов
int ogrmin = 70 ; // ограничение симистора на минимальных оборотах.
int minzn = 115; // минимальное значение симмистора на котором начинается вращение.


В первой строке мы вводим число максимальных оборотов, которые нам необходимы. Во второй - минимальные. В третью строку ставим число импульсов нашего датчика за 10 оборотов вала. В четвёртой строке нужно ввести число, которое будет ограничивать ток минимальных оборотов. Оно будет зависеть от количества минимальных оборотов и прилагаемых нагрузок. И в пятой – число, при котором двигатель начинает вращение на прошивке №6 (мы с вами обращали на это внимание).
Дальше самое ответственное дело. Нужно настроить (подобрать) коэффициенты ПИД регулятора. Они находятся в 19ой строке скетча:
PID myPID(&Input, &Output, &Setpoint, 0.01, 0.2, 0, DIRECT);

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


Рассмотрим _16:
Основные переменные скетча те же, что и в ПИД регуляторе:

int obMin = 200; //ввести минимальные обороты
int obMax = 9000; //ввести максимальные обороты
int kImp = 120; //ввести кол-во импульсов на 10 оборотов
int minzn = 115; // минимальное значение симмистора на котором начинается вращение.
int ogrmin = 70 ; // ограничение симистора на минимальных оборотах.
int mindimming = 80; //значение симистора при закллинившем станке (первоначальный импульс)
int dopusk = 200 ; //допуск оборотов в минус и плюс

И устанавливаются они так-же. Но добавилось 2 значения. Это значение симистора при заклинившем станке (первоначальный импульс) Оно подбирается так. На прошивке №6 даём на вал небольшую нагрузку, минимальную, лишь бы вал был не в холостую. И начинаем вращать регулятор. Необходимо заметить число, при котором вал начнёт вращаться. Это значение нам необходимо чтоб придать первоначальный импульс нашему станку. Число весьма условно и позволяет некоторые допуски. И основная переменная которая потребует настройки и подбора это допуск оборотов в минус и плюс. Она означает в каких пределах обороты нашего двигателя будут стабилизироваться. Находим минимальное значение, при котором двигатель будет вращаться без рывков и в холостую, и под нагрузкой на разных оборотах. Данная прошивка уже обеспечивает хорошую стабилизацию оборотов в заданных пределах и возможно этого уже будет достаточно. Если же необходима точная стабилизация оборотов, то переходим к следующей пошивке.

Рассмотрим _18:

Все значения переносим из предыдущей прошивки:

int obMin = 200; //ввести минимальные обороты
int obMax = 9000; //ввести максимальные обороты
int kImp = 120; //ввести кол-во импульсов на 10 оборотов
int minzn = 115; // минимальное значение симмистора на котором начинается вращение.
int ogrmin = 70 ; // ограничение симистора на минимальных оборотах.
int mindimming = 80; //значение симистора при заклинившем станке (первоначальный импульс)
int dopusk = 200 ; //допуск оборотов в минус и плюс
int razgon = 50; //переменная разгона 1 - 100

Добавилось только значение разгона, или плавности. При значении 1 стабилизация происходит плавно, при увеличении значения разгон более жесткий. Верхняя граница очень большая, но после 100 (в моём случае) уже изменений нет.


Параллельная разработка: http://www.motor-r.i...og-page_19.html

Вариант регулятора на чипмейкере:http://www.chipmaker...ost__p__3549238



Много вопросов по деталям, где заказать. Заказал комплект себе, делюсь с вами.

Ардуинка
Переходник https://ru.aliexpres...c0-27af205599bf

экран

И заказал блок релюшек для реверса и защиты. Будем дополнять. Здесь.

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

















1- Подбор допуска - http://shenrok.blogs...og-page_20.html





Итак, давайте продолжим настройку и доработку нашего регулятора оборотов с обратной связью.
Начало здесь:
1 Идея и отработка
2 ПИД регулятор
3 Сборка регулятора, пошаговая инструкция
4 Вопросы –ответы, советы, алгоритм работы
5 Настройка допуска, избавление от рывков связанных с переполнением, тумблер на 2 скорости, реле для защиты от пробоя симистора.

Те, кто уже сделал данный регулятор, столкнулись с проблемой, очень трудно подобрать переменную допуск. Методом перебора долго и неудобно. И оказалось, что допуск на малых и больших оборотах может отличаться. Поэтому была написана прошивка, помогающая за один раз очень точно подобрать это значение и на минимальных и на максимальных оборотах.
Для этого нам необходимо временно припаять переменное сопротивление на 10 кОм центральным контактом на контакт А3, нашей ардуинки. Крайние контакты сопротивления, как и всегда, припаиваем на + и -.
Теперь после заливки прошивки nastroyka_dopuska, в которую мы предварительно внесём все переменные, касающиеся нашего станка или двигателя. Основными будут минимальные и максимальные обороты, которые нужны на станке, а так же количество импульсов на 10 оборотов шпинделя.
Подбираем допуск, так как показано в видео. После этого можем вносить полученные данные в прошивку 18 и пользоваться. В этой прошивке улучшено отображение на дисплее. Так как вы и просили.
Прошивки: https://drive.google...iew?usp=sharing

Изображение






Следующей проблемой у нас было то, что на определённых оборотах двигателя происходили «рывки». Чтобы понять причину, была сделана прошивка, которая отсылала в компьютер значение переменной tic. Это количество тактов которое проходит между сигналами с датчика Холла. Данные отображались в программе SerialPortPlotter в графическом виде.


Изображение

Изображение

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



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


На контакты GND подаём минус, VCC подаём плюс 5вольт, IN3 и IN4 подключаем к контакту А1 ардуинки , это для реверса, а IN2 к контакту А2. Этот контакт и будет отвечать за отключение силовой платы. Заливаем прошивку proverka_rele , и наши релюшки должны поочерёдно включаться на 1 сек и выключаться. Две спаренные и одна отдельно. Если всё работает верно, то можно провод который идёт к силовой плате пускать через это одинарное реле, заливать прошивку roos_zashita_1 и пользоваться регулятором. Здесь устранены рывки и реализована защита.

Так же мы можем сразу установить и подключить тумблер для реверса на 3 положения и тумблер который будет делить наш диапазон скорости так, как мы захотим. Для своего станочка я сделал первую скорость для точения, от 100об\мин до 2000об\мин, а вторую для шлифовки от 1500об\мин до 5000об\мин. Подключаем их по такой схеме:


Изображение


Для проверки заливаем скетч proverka_tumblerov и при смене положения тумблеров, будут меняться числа на экране. Если изменения происходят, то можно заливать прошивку roos_zashita_2skorosti и пользоваться.

Не забываем, что на всех прошивках необходимо вносить нужные вам значения.
Прошивки:https://drive.google...iew?usp=sharing

2. Реверс торможение - реле реверса на А1 Тумблер реверса на А7
скетч: https://drive.google...iew?usp=sharing
.2а. В переменных можно менять торможение

https://drive.google...iew?usp=sharing
Печатка ---- с двумя реле https://wdfiles.ru/52B2
Печатка --- с тремя реле
Для релюшек 12в перемычку перекинуть на метку 12
Для релюшек 5в уже стоит на метке 5
Диоды на релюшках припаивать прямо на плату со стороны проводников.

2- добавил подстройку и чуть подправил https://wdfiles.ru/52B1



Варианты схем
Скоректированный вариант схемы

Прикрепленные изображения


Сообщение отредактировал orio55: Вчера, 08:27


#3
sany-sch Отправлено 12 March 2017 - 11:12
12 March 2017 - 11:12

    6-ой разряд

    • Галерея sany-sch
    • Изображения sany-sch
  • Members
  • PipPipPipPipPipPip
  • 284 сообщений
Красота. Подписался.

Сразу выношу вопросы для обсуждения.
Уже планирую на панель управления 2 тумблера. один для реверса (через ардуинку) второй уже есть, делит весь диапазон регулятора на 2 части. в 1 положении от 200 до 2000 об/мин во 2 положении от 1500 до 9000 об\мин. Так на мой взгляд удобнее.
Какие ещё кнопки или тумблеры нужны? Желательно с обоснованием и кратким алгоритмом работы. Так же приветствуется эскиз расположения всех тумблеров, регулятора и экрана на панельке.

#4
Автор темы  orio55 Отправлено 12 March 2017 - 11:32
12 March 2017 - 11:32

    5-ый разряд

    • Изображения orio55
  • Members
  • PipPipPipPipPip
  • 228 сообщений
  • Имя:valeriy
Для реверса тумблер необходим причем трех позиционный. Что б был переход через выключение вращения, дабы уменьшить нагрузку на регулирующий элемент. А вот делить диапазон оборотов не желательно, разве что из технической необходимости. Удобств я не наблюдаю .
Если делать регуль специальным для токарного то желательно еще сделать лимиты для продольной и поперечной осей. Как это реализовать пока не знаю но надо. Перемещение по продольной оси планирую с использованием механизма стеклочистителя авто.
Причем нужно сделать так - Сильней нажал на рычажок , быстро едет . Слабо жмешь - перемещается потихоньку.

Сообщение отредактировал orio55: 12 March 2017 - 11:54


#5
sany-sch Отправлено 12 March 2017 - 11:38
12 March 2017 - 11:38

    6-ой разряд

    • Галерея sany-sch
    • Изображения sany-sch
  • Members
  • PipPipPipPipPipPip
  • 284 сообщений
Реверс будет через ардуину, при переключении она сама сделает всё что нужно. и обороты сбросит с притормаживанием, и наберёт снова нужные.
а диапазон делим, чтоб было удобней ловить нужные. Слишком большой диапазон получается.

#6
sashaKa Отправлено 12 March 2017 - 20:24
12 March 2017 - 20:24

    1-ый разряд

    • Изображения sashaKa
  • Members
  • Pip
  • 21 сообщений
  • Имя:Александр

Просмотр сообщенияorio55 (12 March 2017 - 10:34) писал:

Для изготовления мы будем использовать Arduino Pro Mini и LCD дисплеи 1602 . Так же для прошивки нам понадобится Переходник USB to COM .
Подскажите пожалуйста по Ардуинке. По ссылке два варианта Ардуинки, одна работает от 3.3В при частоте 8 МГц, другая - от 5В при 16 МГц.
Какую из них использовать?

#7
sany-sch Отправлено 12 March 2017 - 20:44
12 March 2017 - 20:44

    6-ой разряд

    • Галерея sany-sch
    • Изображения sany-sch
  • Members
  • PipPipPipPipPipPip
  • 284 сообщений

Цитата

одна работает от 3.3В при частоте 8 МГц, другая - от 5В при 16 МГц.
Какую из них использовать?

Много вопросов по деталям, где заказать. Заказал комплект себе, делюсь с вами
Ардуинка
Переходник https://ru.aliexpres...c0-27af205599bf
экран

Сообщение отредактировал orio55: 09 April 2017 - 21:41


#8
Mechanicus Отправлено 12 March 2017 - 20:55
12 March 2017 - 20:55

    Агрегатный патологоанатом

    • Галерея Mechanicus
    • Изображения Mechanicus
  • Members
  • PipPipPipPipPipPipPipPip
  • 912 сообщений
  • Город:Пермь (RUS)
  • Имя:Сергей
Жаль не увидел это видео раньше (смотрел пару дней назад, еще до создания темы), так бы собрал эту схемку, а не на U2010B, тут хотя бы шансов получить не рабочую плату меньше...

#9
michman Отправлено 13 March 2017 - 09:46
13 March 2017 - 09:46

    с 5 по 26 мая охраняю границу

    • Изображения michman
  • Members
  • PipPipPipPipPipPipPipPip
  • 789 сообщений
  • Город:хабаровск
  • Имя:алексей
Когда будет схемка с реверсом и торможением? Для токарного по металу?

#10
sany-sch Отправлено 13 March 2017 - 13:43
13 March 2017 - 13:43

    6-ой разряд

    • Галерея sany-sch
    • Изображения sany-sch
  • Members
  • PipPipPipPipPipPip
  • 284 сообщений
Когда из Китая придёт блок релюшек, а потом по наличию времени.

#11
A-Toxa Отправлено 13 March 2017 - 14:34
13 March 2017 - 14:34

    2-ой разряд

    • Изображения A-Toxa
  • Members
  • PipPip
  • 57 сообщений
  • Город:Питер
Только вчера движек попинал, провода в руках потеребил и подумал: купить что-ли плату на TDA... А тут вон оно чО... :) И Ардуинки лежат, и экранчики, надо датчик Холла только прикупить/прикрутить... :)

Спасибо, попробую.

Сообщение отредактировал A-Toxa: 13 March 2017 - 14:35


#12
A-Toxa Отправлено 13 March 2017 - 15:10
13 March 2017 - 15:10

    2-ой разряд

    • Изображения A-Toxa
  • Members
  • PipPip
  • 57 сообщений
  • Город:Питер
Подскажите, что-то запутался: конденсатор 100 нано или 100 пико ?

#13
Автор темы  orio55 Отправлено 13 March 2017 - 15:53
13 March 2017 - 15:53

    5-ый разряд

    • Изображения orio55
  • Members
  • PipPipPipPipPip
  • 228 сообщений
  • Имя:valeriy
n - это английская буква и звучит по русски - н что означает "нано" Пико фарады писались бы пф или PF

Сообщение отредактировал orio55: 13 March 2017 - 15:53


#14
A-Toxa Отправлено 13 March 2017 - 16:12
13 March 2017 - 16:12

    2-ой разряд

    • Изображения A-Toxa
  • Members
  • PipPip
  • 57 сообщений
  • Город:Питер
orio55, спасибо, действительно попутался. :) Нашел, положил в "корзину", 16 рублей за шт. :)

#15
Дрёмин Отправлено 13 March 2017 - 17:36
13 March 2017 - 17:36

    • Изображения Дрёмин
  • Новичок
  • 17 сообщений
  • Имя:Виталий
Собрал работает.Использовал датчик холла для ардуино. На малых оборотах под нагрузкой дёргается двигатель (на тда на этих же оборотах норм. это к тому что двигатель исправен).На другом двигателе (мощнее) нормально. Сигнальный провод от холла подтянут резистором 10к на+ пит. В чем может быть проблема?

Прикрепленные изображения


Сообщение отредактировал Дрёмин: 13 March 2017 - 17:38


#16
Braiton Отправлено 13 March 2017 - 17:41
13 March 2017 - 17:41

    • Изображения Braiton
  • Новичок
  • 4 сообщений
Спасибо автору ! Однозначно отличное решение. Ну не использут сейчас в стиралках TDA. Всё крутят микроконтроллеры. И тех,кому проще на tda1085 , я поздравляю. Я хоть и паяю по мелочи лет 20 ,но мне на ардуинке понятней. Цена сопоставима , а потенциальные возможности несоизмеримы.
И вопрос ко всем. Может кто перелопатит скетч , чтоб была индикация , как на поиведённых ниже ссылках. В одной строке обороты , а во второй чисто визуальное представление ,чем больше к границе установленого диапазона оборотов , тем больше сегментов зажжено ? Поддиапазон оборотов тоже можно вывести в первой строке.
https://chickenwhite...ct-rpm-counter/
http://www.r-site.ne...8%27%5D&lang=en

Прикрепленные изображения



#17
Автор темы  orio55 Отправлено 13 March 2017 - 17:52
13 March 2017 - 17:52

    5-ый разряд

    • Изображения orio55
  • Members
  • PipPipPipPipPip
  • 228 сообщений
  • Имя:valeriy

Просмотр сообщенияBraiton (13 March 2017 - 17:41) писал:

чтоб была индикация , как на поиведённых ниже ссылках
Мне нравится супер.

Просмотр сообщенияДрёмин (13 March 2017 - 17:36) писал:

На малых оборотах под нагрузкой дёргается двигатель
Извините. На малых это сколько. Если большой двигатель работает нормально а маленький дергается под нагрузкой - это значит надо подбирать коэфициенты PID для конкретного двигателя.

#18
Kot (Omsk) Отправлено 13 March 2017 - 18:01
13 March 2017 - 18:01

     

    • Галерея Kot (Omsk)
    • Изображения Kot (Omsk)
  • Members
  • PipPipPipPipPipPipPipPip
  • 2670 сообщений
  • Город:Омск
  • Имя:Константин
Огромное спасибо за тему!
Давно руки чесались ардуниу какую нибудь пощупать и именно на предмет управления двигателем, а тут прям такой подарок, разжевали и в рот положили!
Вопрос у меня по движку, что можно использовать для экспериментов дома в место стиралочного?
А то нету у меня его, да и здоровый зараза, а руки уже чешутся :)

#19
Автор темы  orio55 Отправлено 13 March 2017 - 18:07
13 March 2017 - 18:07

    5-ый разряд

    • Изображения orio55
  • Members
  • PipPipPipPipPip
  • 228 сообщений
  • Имя:valeriy

Просмотр сообщенияKot (Omsk) (13 March 2017 - 18:01) писал:

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

Сообщение отредактировал orio55: 13 March 2017 - 18:15


#20
Дрёмин Отправлено 13 March 2017 - 18:14
13 March 2017 - 18:14

    • Изображения Дрёмин
  • Новичок
  • 17 сообщений
  • Имя:Виталий
orio55, Я не программист. Но что в 18 прошивке не вижу PID коэффициентов.Если что то пропустил ткните носом плис.
  • Изображение
  • Изображение
  • 0






Количество пользователей, читающих эту тему: 5

4 зарегистрированных, 1 гостей, 0 скрытых


Модератор темы: