Регулятор оборотов с обратной связью на ардуино






подключение дисплея:


Потенциометр: А0  -   аналоговый вход 0
датчик Холла :D8 - цифровой пин 8





силовая схема.  Верхняя часть схемы отслеживает переход через ноль синусоиды переменного тока. Подробней здесь: http://avrproject.ru/publ/poleznaja_informacija/setevoj_dimmer_220v_na_mikrokontrollere/4-1-0-140

или здесь: http://cxem.net/arduino/arduino71.php
Нижняя управляет симистором.

Тема где помогали: http://arduino.ru/forum/obshchii/regulyator-oborotov-dvigatelya-s-obratnoi-svyazyu

Сылка на прошивку: https://drive.google.com/file/d/0B6x0JsiBUva0S0ItTTNHTTMybk0/view?usp=sharing

Пишите что интересует, буду добавлять.







96 комментариев:

  1. Что за верхняя цепочка на схеме? Это сам датчик что-ли.

    ОтветитьУдалить
    Ответы
    1. Это для отслеживания ноля синусоиды. Подробней здесь: http://avrproject.ru/publ/poleznaja_informacija/setevoj_dimmer_220v_na_mikrokontrollere/4-1-0-140
      или здесь: http://cxem.net/arduino/arduino71.php

      Удалить
    2. Этот комментарий был удален автором.

      Удалить
    3. Понял. Спасибо. Спасибо что терпите профанов.

      Удалить
    4. попробуйте управление не мосветом а как в частотнике, (для 3ф двигателей), управлять нте шимом и мосветом , а изменять частоту подаваемую на обмотку двигателя

      Удалить
  2. Смотрели на осциллографе что там идёт с ардуинки?
    Есть идеи почему биения на низких оборотах?
    Посмотреть бы на осцилограммы

    ОтветитьУдалить
    Ответы
    1. Осциллографа нет.
      Идей тоже нет. Пробовал и разные алгоритмы и разные варианты - бес толку.

      Удалить
    2. Идея появилась. Нужно как то фильтровать показания датчика Холла чтоб исключить ложные срабатывания и наводки. Либо усреднять как то.

      Удалить
    3. С датчиками холла всегда беда с наводками. Я тоже мучился с датчиком тока который сделан на основе датчика холла, тот ловил любые наводки пока я его полностью заэкранировал.
      Может лучше подумать в сторону тахогенератора и оцифровывать АЦП. В движки тоже датчик холла внедрять не придется.

      Удалить
    4. может и так. но во первых у меня движок уже с датчиком Холла . Но это полбеды. А второе я не представляю как оцифровать тахогенератор... Подскажите.

      Удалить
    5. Я решил этот вопрос. Сигнал с тахогенератора подал на диодный мост, после этого подключил ограничительный стабилитрон через резистор 220 Ом. Полученный сигнал подал на базу транзистора. Если интересно - могу скинуть схему на почту. Правда такой вариант работает не с 0, а после 150-200 Об/мин.

      Удалить
    6. вот, нашел такое: http://www.motor-r.info/p/blog-page_19.html

      Удалить
    7. Была подобная идея, есть вариант поэкспериментировать. Но схему собрал под ваш код. Жаль нет тахометра, но есть осциллограф. Буду продолжать эксперименты, если интересно то результатами поделюсь.

      Удалить
    8. Конечно интересно. Могу выслать 2 варианта того, что сейчас. один на ПИД. Но там с коэффициентами трудно. А второй мой улучшенный. Удалось хорошо снизить порог. Сейчас ещё одна идейка есть. решу может вообще будет хорошо.

      Удалить
    9. Было-бы неплохо. Высылайте .
      И только сейчас понял в чем моя ошибка. В вашей программе (насколько я понимаю) измеряется ширина импульсов с датчика оборотов. Мой преобразователь работает как детектор нуля, т.е. картинка выглядит как узкие импульсы амплитудой 5 вольт через интервалы пропорциональные оборотам. Попробую инвертировать сигнал и посмотрю что получится. После завтра отпишусь по результатам.

      Удалить
    10. Напишите свою почту.
      Сейчас нашел вариант, очень просто выводить средние обороты для показаний на экран. Просто считаю количество срабатываний датчика /12 (количество импульсов на оборот) получаю обороты за промежуток между выводами на экран. И обнуляю счётчик.

      Удалить
    11. mp_krecker@mail.ru К сожалению из меня программист как из бегемота балерина. Последний раз программировать пробовал лет 15 назад, причем не очень успешно... Поэтому советов дать не могу. Могу помочь с аппаратной частью, осциллограммами, испытаниями и т.д.

      Удалить
    12. Проверил версию с инверсией импульса - работает вполне стабильно. Теперь осталось найти тахометр.

      Удалить
    13. А если посчитать количество импульсов на один оборот и выводить на экран? Или вы без экрана?

      Удалить
    14. Только что товарищ принес тахометр. Все встало на свои места. С таходатчика приходит переменка, с частотой 16 импульсов на один оборот. Четкое распознавание сигнала контроллером (распознавание и регулировка оборотов) происходит только после 4500 об/мин. Соответственно идею преобразования сигнала в цифру методом ловли перехода через ноль можно смело отправлять в утиль...
      Переделаю схему преобразователя по методу указанному Вами выше (http://www.motor-r.info/p/blog-page_19.html) Вход сделаю на порт А1.
      О результатах отпишусь.

      Удалить
    15. Может вам после диодного моста на таходатчике триггер Шмитта поставить?

      Удалить
    16. Так по сути его и собирал - вариант на транзисторе, если применять что-то более чувствительное(спец микросхему или операционник), то размещать надо будет сразу на корпусе двигателя и экранировать. Иначе помеха задавит все.

      Удалить
    17. Может тогда проще датчик Холла цифровой поставить?

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

      Удалить
    19. Как считаете нужным. Но весь скетч придётся переделывать. А нельзя ли датчик Холла привести к аналогу?

      Удалить
    20. С датчика холла сигнал как-раз цифра(вернее почти цифра), а не аналог. А мне надо привести аналоговый сигнал таходатчика к цифре(простыми методами не получается), поэтому решил воспользоваться аналоговым сигналом, т.е. напряжением пропорциональным оборотам. Завтра продолжу эксперименты. О результатах обязательно доложу.

      Удалить
    21. Есть уже продолжение. видели?

      Удалить
    22. Да, видел. Интересно. Сегодня экспериментировал с тахометром под аналоговый ввод, есть определенные успехи. Если получится попробую переписать ваш скетч под сигнал датчика на вход А1.

      Удалить
    23. А вы выход аналога не смотрели осцилографом? чтото я переживаю на этот счёт. Нужно как то его усреднять.

      Удалить
    24. Доделал тахометр на таходатчике(пришлось вспоминать программирование). Действительно нелинейность есть. Но в пределах до 7 тысяч оборотов можно усреднять без особых проблем. Теперь нужно прикрутить полученные данные к пид регулятору. Важный момент: по ссылке(что Вы указывали выше) http://www.motor-r.info/p/blog-page_19.html преобразователь сигнала не работает. Необходимо исключить один конденсатор и изменить номинал резистора, иначе помеха давит.
      Свой скетч отправлю Вам - может пригодиться.

      Удалить
    25. А можно скетч и итоговую схему сюда сбросить, я тоже хочу поэкспериментировать в данном направлении

      Удалить
    26. К Петру Вовочкину, у меня просто двигатель тоже с тахогенератором.
      Александр если у вас есть данный скетч то вы опубликуйте.

      Удалить
    27. Данного скетча у меня нет. Снимите тахогенератор и поставьте датчик Холла. На мой взгляд цифровая техника лучше понимает цифровые датчики. И воспользуйтесь кетчем на ПИД регуляторе. Отсюда: https://www.youtube.com/watch?v=kf4bfDD_nDc

      Удалить
    28. Да не охота мне каждый двигатель переделывать, да и на тахогенераторе более универсально будет.

      Удалить
    29. Здравствуйте! Извините, что пропал. По состоянию здоровья временно эксперименты пришлось прекратить. Продолжу через пару недель. Скетч попробую выложить. Только в моем скетче реализован тахометр на тахогенераторе, а не полноценный регулятор оборотов.

      Удалить
  3. Я бы рад подсказать, но сам пока смутно представляю реализацию на тахогенераторе. Знаю точно, что у датчика холла всегда проблемы с наводками в двигателе темболее, как бороться готового решения у меня нет. Появиться свободный двигатель буду копать. У меня есть стиралка на командоаппарате, вся из нержи (цены нет) а вот командоаппарат барахлит (пашит 20 лет), хочу ее перевести на микроконтроллер, дисплей итд.

    ОтветитьУдалить
  4. Я как то запускал дрель от постоянки AC220-мост+кондер, работала хорошо, искрения на щетках не было. Интерестно коллекторный движок от стиралки, будет работать.

    ОтветитьУдалить
    Ответы
    1. Будет. Пробовал. Даже лучше. Но мосфетом регулировать не получилось. Нужен ОЧЕНЬ мощный. Горят сразу.

      Удалить
    2. igbt не пробавали?
      mosfet возможно горят из за не удачной обвязки, без осциллографа фронты не увидеть. Мне кажется постоянкой коллекторным двигателем управлять проще, не нужно отслеживать переход чез ноль и качество сети не имеет значения.
      Как и вы буду экспериментировать, будут успехи, буду делиться.

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

      Удалить
    4. Этот комментарий был удален автором.

      Удалить
    5. вот так: https://drive.google.com/file/d/0B6x0JsiBUva0bzFVNDlzazVfYVU/view?usp=sharing
      Только после моста ещё конденсатор ставил.

      Удалить
    6. Спасибо, ознакомился.
      Судя по схеме у полевика не было шансов открываться быстро и полностью.
      Видео по обвязки ключей goo.gl/vYGP2E

      Удалить
    7. Пояснение. В предыдущем видео речь идет о случаях управления ключом драйвером.
      Полезное видео о простых драйверах goo.gl/hKOWIL
      Ардуино на прямую не может быстро и полностью открывать и закрывать полевик, через который протекают большие токи. Полевик работает линейно, греется и горит. Сгорит даже очень мощный, или если не сгорит его радиатор будет как утюг горячий.

      Удалить
    8. Спасибо. Держите меня в курсе.

      Удалить
  5. а сли конденсатор хода добавить

    ОтветитьУдалить
  6. Ставьте на обратную связь оптопару с открытым каналом, диск с 4 или более рисок. Усредняйте считанные данные. У ПИД есть упрощенные варианты, Тут ПИД в полном смысле не нужен.

    ОтветитьУдалить
  7. Возможно не понимаю чего-то, но всё таки смогу ли я в силовую схему вставить мощный советский тиристор (сантиметра 3-4 в диаметре) через диодный мост. Просто ардуинку получил, а всё остальное зависло между Китаем и Россией. Спасибо за ответ. Хотелось вставить фото тиристора но не понял как.

    ОтветитьУдалить
    Ответы
    1. А зачем тиристор через диодный мост?
      И в общем нет. тиристор регулирует только один полупериод. А нам нужно оба. То есть симистор.

      Удалить
  8. Выше вы писали что тиристор вылетает. Так вот есть надежда что этот не вылетит.

    ОтветитьУдалить
  9. Мысль была сделать как раньше делали. Если есть симистор ставим симистор, если нет симистора - ставим тиристор в плечи диодного моста, и регулируем туже переменку.

    ОтветитьУдалить
    Ответы
    1. Не встречал такую схему. По моему делал когда-то два тиристора параллельно навстречу. Но утверждать не буду.

      Удалить
    2. Вот ссылка https://drive.google.com/file/d/0B7VHEJcWaYD9NVczSlY5ODlYMkE/view?usp=drivesdk - это один из примеров. Просто думаю у людей запасы есть таких "гаджетов" типа моего тиристора ТС-160. Спалить не жалко.

      Удалить
  10. Александр,
    Тоже занимаюсь регулятором оборотов с обратной связью на Ардуино, но несколько отстал от Вас. Сделал силовую часть, сделал плавный пуск и остановку. Потом стал тренироваться на "кошках" - на маломощных движках постоянного тока - чисто чтобы отработать алгоритм. Для 12 в вентилятора сделал программу целиком - с плавным пуском, остановкой и поддержанием заданного числа оборотов. Обороты измеряю ИК-датчиком. Либо ардуиновским, либо самодельным. Для самодельного приклеил к торцу оси двигателя диск, разбитый на черные и белые сектора. На черные сектора наклеил кусочки бархатной бумаги. На ней ИК излучение светодиода поглощается на 100%. Хотя управлять движком постоянного тока ШИМом через мосфет проще, чем коллекторным двигателем переменного тока через симистор, но проблемы у меня похожие - на малых оборотах скорость не стабильная. Шим либо включается на полную катушку, либо отключается вовсе. Если добавить на вал нагрузку, то рывки становятся ощутимыми. Судя по звуку включения ШИМ-сигнала и значениям ШИМ-сигнала на мониторе - дело в перерегулировании. Величина управляющего сигнала меняется гораздо быстрее, чем на нее реагирует двигатель. Буду пробовать связать скорость изменения управляющего сигнала с фактической скоростью вращения движка.
    И спасибо, что выложили скетч. Пока не очень разобрался, что у Вас с таймерами, но буду вникать.

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

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

      Удалить
    3. И схема и прошивка уже совсем другие : https://www.youtube.com/watch?v=TEBklpEF-HA

      Удалить
  11. А для чего между ардуиной и симистором оптопара? просто ради опторазвязки? Или обычный резистор килоОм на 10 там не прокатит как на обычном ШИМ с Мосфетом?

    ОтветитьУдалить
    Ответы
    1. Чтоб при пробое ардуинка не сгорела. Да и на мосфет высоковольтный нужно ставить.

      Удалить
    2. Да я к тому что нету у меня оптопары с семистором - будет ли просто с резистором работать? Ардуина фиг с ней, шансы что она сгорит от пробоя симистора ничтожны, она скорее сгорит из-за моих кривых рук :)

      Удалить
    3. Вот этого я не знаю. Нужно искать и спрашивать.

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

    ОтветитьУдалить
    Ответы
    1. Вобщем то нет. Но там деталей всего ничего. Я когда полностью программу доработаю, планирую всё снять на видео. Распайку, проверку. Но когда это будет даже предположить не могу.

      Удалить
    2. Спасибо за ответ,тогда буду внимательно следить за вашими разработками) Удачи Вам!

      Удалить
    3. Спасибо. И вам всего наилучшего.

      Удалить
  13. На плату которую сделал по рисунку из папки с прошивками мне почему-то никак не удается правильно установить микросхемы (оптроны).Может быть ошибка в обознаениях?

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

      Удалить
  14. Этот комментарий был удален автором.

    ОтветитьУдалить
  15. Там где посхеме у 4N25 должна быть ножка 1 у меня оказывается ножка 3.

    ОтветитьУдалить
  16. Здравствуйте!
    А по какой причине выбрали именно "про мини"? Другие не подходят под настройку регулятора оборотов?

    ОтветитьУдалить
    Ответы
    1. Подходят. выбирал самую маленькую и дешевую.

      Удалить
  17. Под симистором стоя запараллеленные резисторы по 0,1 Ому. Каково их предназначение?

    ОтветитьУдалить
    Ответы
    1. Добрый день! А, есть вариант регулятора без дисплея?

      Удалить
    2. дисплей нужен для настройки. потом можно отключить.

      Удалить
  18. Александр, добрый день! На определенном этапе перестал работать движок, сейчас пытаюсь понять, где проблема на дисплее все показывает верно, сопротивление меняется, обороты задаются, семестр открывается, руками вал вращаю, датчик холла показывает обороты, с силовой платы на движок уходит 220В, но движок не вращается (и не гудит, как будто отключен. Подключаю движок на прямую от розетки, он запускается (статор имеет 2 обмотки. 1-я обмотка сопротивление 0,1 Ом; 2-я обмотка 1,7 Ом). Куда копать? И могу ли я для проверки использовать дрель или перфоратор, чтобы проверить ардуинку с силовой платой. Заранее благодарю, с уважением Денис.

    ОтветитьУдалить
    Ответы
    1. Какой вариант схемы у вас собран? что показывают промежуточные прошивки?

      Удалить
  19. Вариант, который был первым на ардуино, вечером проверил с использованием дрели, не заработала, я так понимаю, что напряжение есть, сила тока отсутствует? И получается, что движок рабочий, раз напрямую запускается, прошивки пробовал, что то не хотят вставать, а 16 и 18 прошивку между собой меняю, сейчас 18 стоит. Я в прошивках не силен, может дрель не заработала потому что прошивка с поддержанием мощности?

    ОтветитьУдалить
  20. прогнал все прошивки от второй до шестой, на шестой затычка, на дисплее показывает, что симистор открывается (от 130 до 7) подключаю движок, вращения нет... подключаю дрель, тоже...
    Со второй по пятую прошивку все шло как по маслу, переходы через ноль и т.д. Искал, какие сопротивления должны быть у моего движка, судя по всему у меня норма.

    ОтветитьУдалить
    Ответы
    1. Ну вот вам и проблема. ищите неполадки на участке симистора. Проверьте сопротивления, оптрон, симистор.

      Удалить
  21. произвел замеры Меня смущает напряжение приходящее с пин D3, приходит 0,5 вольт, сколько должно быть? пин D2 уходит 1,5 вольта. В качестве питания ардуинки использовал блок питания от телефона, как оказалось, на нем было выходное питание 7В, может в ардуинке что случилось? Из того что вы посоветовали, смог проверить только оптрон и резисторы, с симистором пока не понял как посмотреть, напряжение с А1 на А2 проходит, что должно быть на управляющем G?

    ОтветитьУдалить
    Ответы
    1. А чем вас смущает напряжение D3? Там нужно смотреть не вольтметром, а осциллографом. По симистору ищите в сети, я не знаю.

      Удалить
  22. Симистор не может открыватся чаще, чем 100 раз в секунду. На малых оборотах угол отпирания симистора очень маленький. Отсюда и напряжение на двигателе небольшое. Следовательно крутящий момент на валу маленький. Как только вы начинаете давать нагрузку на вал, то из-за малой инерции вал быстро останавливается. Ардуина видит падение оборотов и увеличивает угол отпирания сисмитора - момент резко возрастает и обороты превышают заданные. Вообщем перерегулирование в чистом виде. Отсюда и дергания.

    ОтветитьУдалить
    Ответы
    1. Вы правы, но лишь частично. Это только одна из нескольких причин. вторая причина это то, что на малых оборотах мало импульсов от тахо. То есть даже меньше чем 100 в сек. поэтому мы не можем корректировать каждое открывание симистора. Ну, а основная причина - не правильный алгоритм регулятора. Сейчас всё исправлено и работает достаточно хорошо. Можете посмотреть на моём канале.

      Удалить
  23. Александр, добрый день! Тоже интересуюсь регулированием. Попробую модифицировать вашу программу. Но мне нужно знать:
    1. Сколько импульсов на оборот дает датчик.
    2. Пока все.
    Напишите на momotmvu@yandex.ru , а то здесь я случайно.

    ОтветитьУдалить
  24. Доброго времени суток. Попал сюда случайно. Честно говоря немного запутался в терминологии форумчан. Тахо(генератор), по определению, машина постоянного тока и на выходе никаких импульсов не имеет. Кстати с тахогенератором как раз проще создать обратную связь - делитель и на аналоговый вход ардуины, далее по закону 2Uзад-Uос=димминг. Всё с коэффициентами. Это упрощённо.
    Датчики Холла, энкодеры различных видов - это импульсные датчики. В данном случае качество ОС здесь зависит от алгоритма (встречал привода с коэффициентом регулирования 1:100000 на обычном асинхронном двигателе, при энкодере 2500 имп/об с учетверением. Правда обрабатывал это камень аналогичный пентиуму 1.
    И последние ВТ, сельсины, резольверы и др., но это отдельная песня.
    В данном случае, по моему очень неплохо сделана как раз данная часть - регулятор по скорости, хотя потеря оборотов до 10% это не совсем айс. Для поддержания оборотов на малых и не только скоростях вращения надо ввести ещё одну ОС - по току. Снять ток двигателя через шунт, датчик тока или трансформатор тока с последующим выпрямлением (Не забывать, что трансформатор тока должен быть постоянно нагружен, а то сгорит), и подать на аналоговый вход ардуины. Эта ОС должна быть мгновенна и влиять непосредственно на выходной параметр. Тогда получается примерно такой алгоритм (2Uзад-Uосu)+Uосi=димминг. Где Uзад задание, Uосu ОС по скорости, Uосi ОС по току, Uосi << Max Uзад.
    Кстати в приводах никогда не используется ПИД алгоритм, обычно ПИ и П. Спасибо, если дочитали до конца.
    Прошу прощения, что без подписи, как то не дружен с соц сетями.
    Ермолаев Михаил. mishanya1960@mail.ru

    ОтветитьУдалить
    Ответы
    1. Спасибо,Михаил. До конца дочитал.Напишу вам на почту.

      Удалить
  25. Добрый день. Александр скажите, код вами любезно предоставленный из самых последних версий или один из первых??

    ОтветитьУдалить
    Ответы
    1. Это вообще один из первых регуляторов и он уже не поддерживается. Что есть то и есть. Сейчас изменена и схема и функционал и соответственно и прошивка. там всё обновляется и выкладывается. Вот, смотрите, под видео ссылки: https://www.youtube.com/watch?v=TEBklpEF-HA

      Удалить
  26. Александр, добрый день. Не подскажете по применении оптопары управления симистором? Все работает по проверочным скетчам. Окончательно не работает обороты не регул-ся. Только вот вместо указанного МОС3021 я поставил оптопару МОС3041 с внутренним контролем через ноль. может из-за этого и не работает?

    ОтветитьУдалить
  27. Здравствуйте Александр. Если прямо на вал установить пильный диск 185 мм. и ограничить максимальные обороты до 6 тысяч циркулярка получится? Двигатель 585 ВТ, 10750 оборотов

    ОтветитьУдалить