Простой ШИМ-регулятор легко можно сделать с помощью Arduino. Для примера возьмём всем известный контроллер Arduino UNO , который построен на ATmega328. Он имеет 14 цифровых входов/выходов ( 6 из которых могут использоваться как выходы ШИМ) и 6 аналоговых входов. Arduino UNO недорого можно купить здесь - http://ali.pub/y24f1
Для наших целей понадобится один аналоговый вход - А0, который используем для подключения переменного резистора, а также один выход ШИМ - возьмём 11. Соберём простую схему :
И напишем простую программу для управления яркостью светодиода , подключённого к 11 выходу ШИМ. Регулировать будем переменным резистором, который подключен к аналоговому входу А0.
Получаем первый результат - яркость светодиода изменяется с помощью переменного резистора. Для управления какой-нибудь силовой нагрузкой включённой в сеть 220 вольт такой ШИМ тоже сгодится, только желательно сделать гальваническую развязку между силовой частью и Arduino. Можно взять готовый кусочек схемы из предыдущей страницы " ШИМ-регулятор 220 В( IGBT)"
Провёл небольшие испытания этого ШИМ-регулятора - сначала как обычно подключил активную нагрузку ( лампочку накаливания) а затем и коллекторный двигатель. Всё работает. Снял видео -
Далее по плану использовать обратную связь от таходатчика коллекторного двигателя для поддержания стабильных оборотов, а также увеличить частоту ШИМ.
Добавил обратную связь по таходатчику для регулятора оборотов . Для этого собрал простую схему обработки сигнала таходатчика
Для написания программы управления оборотами коллекторного двигателя использовал библиотеку PID - регулятора для Arduino.
#include <PID_v1.h> // подключаем библиотеку PID-регулирования
double pwmSet, pwmSpeed, pwmOut; // //переменные для пид-регулятораPID myPID(&pwmSpeed, &pwmOut, &pwmSet, 0.2, 0.5, 0, DIRECT);
// Подобрал коэфф пид-регулятора Kp=0.2, Ki=0.5, Kd=0 .
#define PWM_PIN 11 // выход ШИМ
#define SET_PIN 0 // установка оборотов 0-5 вольт мин-макс
#define TACHO_PIN 1 // сигнал от таходатчика 0-5 вольт мин-макс
void setup() {
myPID.SetMode(AUTOMATIC);
}
void loop() {
pwmOut = constrain ( pwmOut , 0, 250); // это необязательно - по умолчанию 0-255
pwmSet = analogRead(SET_PIN); // считываем показания потенциометра регулировки скорости
pwmSpeed = analogRead(TACHO_PIN); // считываем показания таходатчика
myPID.Compute(); // здесь происходят вычисления пид-регулятора - то есть pwmOut
analogWrite(PWM_PIN, pwmOut);// получаем выходной сигнал ШИМ
}
В результате получилось очень даже неплохо - регулируются обороты двигателя с поддержанием мощности. Снял по этому поводу видео -
Здравствуйте Александр. Смотрел ваше видео. Данная тема, тоже интересует. Но я новичек во всем этом. Вот интересное видео с использованием датчика холла.
ОтветитьУдалитьhttps://www.youtube.com/watch?v=x2fLvS8Ms9w
Здравствуйте вы случайно неделание регулятора и управления бесколекторный двигателем от стиральной машины лж рабочее напряжение от 0 до 100 вольт постоянного тока ампераж сказать не могу
ОтветитьУдалитьЯ такими пока не занимался, возможно там какое-то подобие частотного привода
УдалитьЗдравствуйте Александр, никак не дождусь ардуино, тоже бы поэкспериментировал. А пока собираю разный материальчик. Вот интересное видео, можно связаться с автором, может что подскажет https://www.youtube.com/watch?v=cU9oF3OKIlY
ОтветитьУдалитьАлександр, прокомментируй, пожалуйста что происходит в void loop
ОтветитьУдалитьАлександр, я написал кое-какие пояснения в скетче, хотя я не большой специалист в программировании. Делал программу больше по аналогии и по интуиции. А что конкретно непонятно в этом скетче?
УдалитьВообще на первый взгляд ПИД-регулятор - это просто, но вся проблема заключена в этих коэффициентах Kp, Ki, Kd а также в их подборе для каждого конкретного случая.
Спасибо. Да, вот смотрю на вашу программу и вижу что просто. До этого читал, не понял толком ничего. Размазывают, растягивают, а что куда подставлять не понятно. Позже посмотрю ваши пояснения - спрошу ещё.
УдалитьДоброго всем времени.
ОтветитьУдалитьВопрос к автору и повторившим, есть ли разница между регулятором на Ардуино и ТДА1085. в работе на динамическую нагрузку например болгарка.
На сегодня всё проверено на TDA1085, а Arduino (как и другие контроллеры) будет работать не хуже и позволит реализовать гораздо больше возможностей в будущем.
ОтветитьУдалитьСпасибо за ответ.
ОтветитьУдалитьДа Ардуино должно давать больше возможностей. Неплохо было бы прикрутить тахометр или еще что нибудь, может счетчик оборотов, тогда получиться универсальный девайс.
можете выложить саму библиотеку PID_v1.h
ОтветитьУдалитьhttps://github.com/br3ttb/Arduino-PID-Library/
УдалитьПочему нет защиты, ведь не сложно реализовать.
ОтветитьУдалитьПодключайтесь, предлагайте свои решения, а я стараюсь всё очень постепенно добавлять.
УдалитьВсё в принципе просто сделать, только почему-то все ждут готовых решений.
Великолепное по простоте решение! Особенно в программной части :). Есть два маленьких недостатка. Во-первых при такой обратной связи реальные обороты двигателя не определить, т.к. все импульсы таходатчика сглаживаются. Но это излечимо, если снимать с датчика не выпрямленное напряжение, а считать частоту импульсов. И во вторых, силовая часть будет малость по-дороже, чем в случае управления переменным током через симистор. Но зато как всё просто!
ОтветитьУдалитьСогласен с вами, я думаю примерно также, надо считать импульсы, тогда и обороты можно измерять.
УдалитьЯ очень извиняюсь, но с нетерпением жду регулятор с тахометром. Когда можно, примегно ждать. Еще раз извините, но сам я не могу ничего написать.Очень жду.
ОтветитьУдалитьБуду работать над этим вопросом, но точно не могу сказать - это зависит очень от многих причин.
УдалитьУ меня вопрос, что это за транзистор VT2 S8580?
ОтветитьУдалитьВы правы - опечатка - это S8550
УдалитьЗдравствуйте. Хочу повторить эту схему. С ардуино уже знаком (часы,барометр собирал, светодиодиком моргал :)) , надеюсь получится. Вопрос по диоду RHRP3060. Его функции? Он скоростной,мощный (30А) , нужен именно такой или чем то можно заменить ?
ОтветитьУдалитьИ спасибо за проделанную работу.
Это защитный диод для работы с индуктивной нагрузкой, он должен быть быстродействующий - зависит от частоты ШИМ. Должен перекрывать рабочие напряжение и ток. Насчёт быстродействия - я подбирал по нагреву - сначала поставил по-моему FR1007 на 10 ампер 1000 вольт - на малой частоте ШИМ не нагревался - как только я увеличил частоту до 10-20 кГц - стал сильно греться. Тогда поставил RHPR3060 - стала нормальная температура . То есть главный параметр - это быстродействие.
УдалитьУвы, по быстрому повторить не получится. Как я понимаю, логичное продолжение проекта это драйвер hcpl 3120 и транзистор Fga25n120 ? Так в наших радиоларьках запросили 3$ за драйвер и 11$ (!) за транзистор, про диод уже и спрашивать не стал. Всё заказал на eBay, (к примеру: 10 драйверов всего 2.45 и 5 транзистров за 4$ ). Придётся ждать.
ОтветитьУдалитьЗнакомая история, я почти всё так заказываю.
УдалитьМожет, пока подскажете, что заранее заказать для новой версии с тахометром.
ОтветитьУдалитьДисплей будет LCD1602, а для обработки сигнала таходатчика компаратор LM393
УдалитьСпасибо, буду готовиться.
УдалитьДоброго дня, хочеться повторить Вашу схему. Подскажите программа для ардуино в свободном доступе, ткните где/как скачать. И еще вопрос, она программа, совместима с ардуино мини?
ОтветитьУдалитьИзвините за ламерские вопросы)) учусь...
Спасибо.
Программу легко набрать, она прямо в тексте на этой странице и на фото тоже. С мини должна быть совместима.
УдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьалександр подскажите наименование стабилитронов vd2, vd4, vd8 и диодный мост на входе тахо?
ОтветитьУдалить1N4742A и 1N4733A подойдут?
ОтветитьУдалитьа вот диодный мост какой?
Подойдут любые 0.5 или 1 Вт, 1N4742A и 1N4733A тоже подойдут.
УдалитьДиодный мост абсолютно любой, напряжение до 50 вольт, ток небольшой.
и мощность резисторов хотелось бы узнать )
ОтветитьУдалитьа еще скажите почему с5 на 400 вольт?
Амплитуда у синусоиды питающей - 310 вольт ( 220 вольт это действующее значение)
УдалитьR12 у меня 2 Вт, R11 - два 5-ватных сопротивления по 20 Ком. Остальные 0.25 Вт.
А разве R10 не на 3 ватта?
УдалитьДа, R10 стоит на 3 ватта
Удалитьа где на схеме с5? я не нахожу
УдалитьТранзистор FGA25N120ANTD с диодом внутри между эмиттером и коллектором .нужен ли тогда диод VD5 ?
ОтветитьУдалитьДиод нужен, он ставится параллельно индуктивной нагрузке и в обратной полярности.
УдалитьА параметры схемы которая идет с таходатчика у вас подобраны таким образом, что когда вы потенциометром устанавливаете, допустим, 2.5 В, у вас двигатель раскручивается до таких оборотов, что с таходатчика приходит 2.5 Вольта, или это необязательно, главное чтобы просто было меньше 5?
ОтветитьУдалитьПросто непонятно, как работает регулятор, он должен сравнивать входной сигнал с потенциометра и с датчика или нет?
УдалитьПодстроечник R3 устанавливается так, чтобы на максимальных оборотах на вход Ардуино поступало 5 вольт. Тогда получается диапазон 0 - 5 вольт.
УдалитьСовершенно верно, сравнивает два сигнала - с потенциометра и с таходатчика
УдалитьСпасибо большое!
УдалитьА на последнем рисунке с кодом, это весь программный код, или ещё что-то есть?
ОтветитьУдалитьпросто попробовал сейчас его загрузить, у меня на выходе стабильно 0 почему-то.
Как при разных сигнлах на А1 и А0 так и при одинаковых
Наверно у вас нет этой библиотеки PID_v1.h - загрузить надо.
ОтветитьУдалитьhttp://www.picshare.ru/view/8122613/
Удалитьв том и дело что есть...
единственное, на что я думаю, у меня не оригинальная ардуинка, может быть поэтому..
А весь код точь в точь как Ваш
http://www.picshare.ru/view/8122614/
А помните, в первоначальном коде вы задавали уменьшение выходной переменной в 4 раза, в это случае нужно ли так делать? просто на выходе то изначально предел сигнала 1024
УдалитьРазобрался, это почему-то некорректно отображался именно сам светодиод, когда подключил к двигателю всё заработало)
ОтветитьУдалитьА ещё, последний вопрос... Почему у вас в строке
ОтветитьУдалитьPID myPID(&pwmSpeed, &pwmOut, &pwmSet, 0.2, 0.5, 0, DIRECT);
задан параметр DIRECT? Директ это ведь прямое рягулирование, и уменьшение сигнала входного сигнала приводит к уменьшению сигнала на выходе? Там разве не нужно было написать Reverse?
Нет, DIRECT правильно -
Удалитьhttps://playground.arduino.cc/Code/PIDLibrarySetControllerDirection
Скорость увеличивается при увеличении выходного сигнала,
скорость уменьшается при уменьшении выходного сигнала.
Здраствуйте помогите в написании скетча для ардуино уно управление двигателем постоянного тока с реверсом поддержанием момента и торможением?
ОтветитьУдалитьЯ больше по аппаратной части, программы у меня очень упрощённые получаются - не программист я. Мне бы самому помощь в программировании не помешала бы.
УдалитьЭто совсем другая тема. Нужно для управления двигателем постоянного тока да еще и с реверсом разрабатывать источник с параметрами выхода от минус напряжения питания двигателя до плюс питания. А для определения параметров вращения одного напряжения будет маловато. Надо вводить обратную связь на тахометре
УдалитьВсе собрал, движок 750 Вт (Ручной фрезер), сгорает выходной транзистор, видать пусковой ток очень большой (сопротивление обмоток на холостую 10-12 Ом). Есть мысли как ограничить пусковой ток (аппаратно или программно)? Частоту увеличил до 4 кГц, датчик тахометра поставил цифровой. Кому интересно скетч выложу.
ОтветитьУдалитьДа, интересно. Делаю для 1.2 квт фрезера.
УдалитьЗдравствуйте, Александр. Собрал я электропривод к инвалидной коляске на двигателе с "индезита" 370 Вт. Питание 75-80 В (6 аккумуляторов ИБП 12В). Управлял китайским ШИМ регулятором 0-90 В, За месяц два сгорело. Хочу сделать ШИМ на ардуинке, силовую часть на FGA25N120ANTD. Пробовали ли Вы для управления использовать драйвер hcpl 3120?
ОтветитьУдалитьПока сделал пробный регулятор на NE555 с гальвнической развязкой от 220 вольт и с драйвером TLP250. Он похож на HCPL3120. Также аппаратную защиту по току сделал. На компараторе.
УдалитьПодскажи пожалуйста какая площадь радиаторов и как сильно греется ? у меня нагрузка примерно 500 вт.
ОтветитьУдалитьУ меня был двигатель мощностью 300 ватт, включал без нагрузки, в общем ничего особо не грелось.
УдалитьРадиаторы были такие - для транзистора - http://ali.pub/1t9krd
Диод Шоттки стоял - http://ali.pub/1t9kuo . Площадь можете сами посчитать.
Добрый день. Александр, Вы планируете развитие проекта например как тут https://youtu.be/KpTU8BqM6UI?t=2m59s ?
ОтветитьУдалитьДа, планирую и делаю сейчас, но всё очень медленно получается.
УдалитьЗдравствуйте! Я так понимаю для тэна эта схема тоже подойдет? Можно ли использовать сторонний источник +12В? Нужно ли как-то программно ограничивать шим(ведь после моста у нас будет 310В)? Для чего резистор R10 0,1 Ом между истоком и землей? Обязательно ли использовать диод D8, если нагрузка чисто активная?
ОтветитьУдалитьЗаранее благодарю за ответы.
Схема в принципе подойдёт и для ТЭНа. Резистор R10 0.1 ом - для защиты по току. Можно посмотреть страницу у меня сайте - ШИМ-регулятор 220 В ( IGBT ) - http://www.motor-r.info/p/blog-page_28.html . Там реализовано питание от трансформатора и защита по току. Диод D8 при активной нагрузке не нужен.
УдалитьЗащита по току будет сделана на следующем этапе, будет аппаратная защита и ещё датчик тока.
УдалитьСпасибо. Буду пробовать. А как подобрать R10? У меня нагрузка тэн на 130 Вт. Присмотрел мосфет STP4NK60ZFP(N-ch Vds=600V Id25=4A Rds=2Ohm), думаю должно хватить, как и моста на 2А 1000В.
УдалитьЯ бы поставил транзистор и мост с большим запасом по току. А резистор R10 подбирать не надо - он используется как датчик тока - делителем можно задавать уровень срабатывания - можно и 0.01 ом.
ОтветитьУдалитьПоследняя схема на странице - http://www.motor-r.info/p/blog-page_28.html
Спасибо. Теперь понятно по R10. Тут чем меньше, тем лучше. Тем более, что сигнал усиливается операционником. Мост и мосфет подберу чуть мощнее.
УдалитьЗдравствуйте, у вас на схеме две земли или одна? Не могу просто понять все собрал по схеме и не работает??
ОтветитьУдалитьТ.е одна общая или две отдельные?
ОтветитьУдалитьКсть кто онлайн люди помогите! Очень нужна эта схема но вот не могу понять что за две земли!
ОтветитьУдалитьЭтот комментарий был удален автором.
УдалитьДа, две земли, я там не очень корректно нарисовал. Земля Ардуино гальванически развязана с сетью 220 вольт. Сейчас постараюсь исправить.
УдалитьДа,землю ардуино и землю силовой части следует связать.
УдалитьСхему исправил , должно быть понятно - две земли и они развязаны.
УдалитьПосмотрите вот эту страницу - http://www.motor-r.info/p/blog-page_28.html . Схема в самом низу страницы - силовая часть там получше - с Ардуино буду делать такую.
УдалитьТ.е земля диодного моста и земля ардуины должна быть связана?
ОтветитьУдалитьНет, земли разные. Оптрон PC817 именно для такой развязки стоит.
УдалитьА как быть если ц меня ардуина и драйвер мосфета питаются от компьютерного БП АТХ? В нем же земля общая
УдалитьОпасно это, я бы так не делал. Брал бы два разных блока питания . Посмотрите вот эту страницу - http://www.motor-r.info/p/blog-page_28.html . Схема в самом низу страницы - силовая часть там получше - с Ардуино буду делать такую.
УдалитьСпасибо 12в на транзистоах появились:) Но вопрос еще а как igbt транзистор подключать? На хеме стоит полевой мосфет
ОтветитьУдалитьhttp://www.motor-r.info/p/blog-page_28.html
УдалитьСмотрел, но как подключать так и не понял
УдалитьУ igbt транзистора коллектор и эмиттер. А на схеме полевой у него сток исток? У меня тоже fga25n120!
ОтветитьУдалитьЛюди, выручайте! Все равно не работает монтаж правильный соплей между дорожками нет
ОтветитьУдалитьАвтор! Помогите с подключением транзистора
ОтветитьУдалитьhttps://goo.gl/sVgE6D
УдалитьСхема не работает почему то
ОтветитьУдалитьСветодиод меняет яркость? Когда крутите переменный резистор.
Удалитьда
Удалитьно на выходе 0.2 вольта
УдалитьКакую нагрузку подключаете - мотор? Вместо нагрузки можно подключить лампочку на время запуска.
УдалитьТакже можно все испытания проводить на небольшом напряжении вмечто 220 вольт.
Удалитьотлично! заработало всем спасибо ОГРОМНОЕ за помощь!! Автор на самом деле модчина схема проста до безобразия если в ней разобраться а так вполне рабочая
УдалитьВопрос еще а можно ли как то ограничить выходное напряжение до 110вольт?
ОтветитьУдалитьВ ардуино есть функция map
Удалитьhttp://arduino.ru/Reference/Map
Или, как вариант, после myPID.compute();
выполнить pwmOut=pwmOut/2;
и далее по тексту.
Мне управлять не с ардуино а с match3 чпу шпиндель 500ватт 110вольт постоянка
УдалитьТогда только трансформатор 220/110 и подавать на силовой мост, а для 12В(драйвера) брать мост послабее и запитывать от 220В.
УдалитьВ поставляемом бп к шпинделю 100 вольт постоянного формируется из переменного 220 также ШИМом(Мой сгорел хотел востановить но не получилось).Собрал вашу схему на FGA25N120ANTD + конденсатор из бп(в оригинале он был после моста) шпинбель работает но при хорошой нагрузке напряжение проседает обароты падают.Прикрутить бы отслеживание по напряжению.
УдалитьИ при этом оставить регулировку шим сигналом 0-110вольт
ОтветитьУдалитьИ при этом оставить регулировку шим сигналом 0-110вольт
ОтветитьУдалитьПриветствую! Собрал ШИМ-регулятор по Вашей схеме. Работает отменно! Двигатель подобный Вашему, либо такой-же, но вот импульсный таходатчик из двигателя я извлек, поскольку долго воевал с корректным отображением оборотов на LCD 1602, а Вашу схему обработки сигнала таходатчика, я тогда не видел. Сейчас установлен оптический, инфракрасный датчик, и одна метка на валу, то есть один оборот - один импульс, так отображение максимально корректно, в виду высокой оборотистости двигателя. Еще вывод ШИМ у меня на пятом контакте, на нем удвоенная частота ШИМ.
ОтветитьУдалитьПоскольку мои навыки написания скетчей, скажем так, не велики, столкнулся с проблемой - Ваш скетч ПИД алгоритма, у меня работает не корректно, а точнее я могу только увеличивать обороты, а вот с уменьшением - помогает лишь полная остановка двигателя через ресет ардуино. Подозреваю дело в количестве импульсов на оборот? Что нужно изменить/дописать в Вашем скетче?
Спасибо!
Заданием скорости является вход, считываемый с потенциометра. Проверьте качество контактов,номинал резистора или попробуйте заменить сам резистор.
УдалитьСкетч построен на готовой пид-библиотеке и врядли стоит туда влезать. Единственное с чем можно попробовать поиграться-коэффициенты пид-регулятора, но это, скорее всего, вашу проблему не устрвнит.
Потенциометр новый, десятиоборотный. В моем скетче ШИМ-регулятора, на LCD выводятся показания потенциометра в процентах, от значения 0.00, до 100.00, и есть подтягивающий резистор на 10k, подключенный на gnd и A0. Показания потенциометра отличные, дребезга нет и все работает, а вот ПИД-алгоритм ни в какую.
УдалитьА зачем вам подтягивающий резистор? В схеме я его не вижу.
УдалитьРешил немного обезопаситься. Если потенциометр будет дребезжать, будет обрыв, возможны броски, а это чревато выходом из строя силового мосфета. В моем случае это IGBT. Два уже спалил, один по невнимательности, а другой только что, пробуя разные скетчи с ПИД-алгоритмами.
УдалитьСкорее всего, эта подтяжка и не даёт снизить скорость до минимума, задавая минимальное начальное смещение.
УдалитьПотенциометр тоже 10k, так что никакого влияния, кроме защиты от обрыва и дребезга, подтяжка не имеет. В моем скетче ШИМ, с отображением на LCD оборотов и значения с потенциометра в процентах, обороты регулируются идеально, от от нуля, двигатель остановлен, до ста процентов где двигатель выходит на максимальные обороты. Еще у меня внешнее питание на ардуино и вольтаж на ардуино 4.97 в., так что проблем из за недостаточного питания тоже нет.
УдалитьЗдравствуйте, прочитал ваши комментарии. Я сам не очень силён в программировании, поэтому и обратился к ПИД-библиотеке. Но вы тоже должны были изменить скетч - у меня информацию об оборотах даёт аналоговый сигнал. Если вы используете оптический датчик - должен быть другой скетч. Покажите ваш вариант - совместными усилиями что-нибудь сделаем.
УдалитьИли надо написать что-нибудь без ПИД, от простого к сложному
Доброго времени суток. Грешил на вывод ШИМ на пятом пине, поменял на одиннадцатый, результат тот-же.
УдалитьМой скетч содержит вывод данных на дисплей LCD 1602 по шине I2C (нужна соответствующая библиотека). Данные в виде процентов потенциометра и количество оборотов. Чтение датчика оборотов происходит с помощью прерывания CHANGE, поскольку с другими методами чтения, я столкнулся с ошибками чтения. CHANGE считывает данные два раза в секунду, по этому есть задержка в изменении ШИМ и чтение происходит в кратности 120+ оборотов. Если выставить задержку (delay) 500, то можно считывать кратность 60+, но при этом изменение ШИМ будет два раза в секунду (сейчас четыре).
В планах уйти от задержки.
В скетче присутствует часть вашего скетча ШИМ регулятора.
Скетч:
//Библиотеки.
#include
//ШИМ.
int pwmPin = 11; // Выход ШИМ (Пятый пин ардуино - удвоеная частота ШИМ).
int analogPin = 0; // Потенциометр.
//Проценты ШИМ.
int Value=0; // Переменная для хранения значения.
float Value_percent=0;
//Обороты.
int valrpm = 0; // Переменная для хранения значения.
void rpm() {
valrpm++;
}
LiquidCrystal_I2C lcd(0x3f, 16, 2);
void setup() {
//ШИМ.
pinMode(pwmPin, OUTPUT); // Установка порта на выход ШИМ.
//Обороты.
attachInterrupt(0, rpm, CHANGE);
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
void loop()
{
//ШИМ.
Value = analogRead(analogPin); // Считывается напряжение с потенциометра - значения от 0 до 1023.
analogWrite(pwmPin, Value / 4); // analogRead-значение от 0 до 1023, analogWrite в диапазоне от 0 да 255.
//Обороты.
valrpm = 0; // сбрасываем счетчик и ждем.
lcd.setCursor(0, 0);
lcd.print("RPM: ");
delay(250); // так как прерывание CHANGE, срабатывает два раза (delay 500), то и считываем каждые пол секунды.
lcd.print(valrpm * 1 * 120);
lcd.print(" ");
//Проценты ШИМ.
lcd.setCursor(0, 1); // Устанавливаем курсор на вторую строку и нулевой символ.
lcd.print("Power: % ");
lcd.setCursor(0, 1);
lcd.setCursor(7, 1);
Value_percent=(float)100.0/1023*Value;
lcd.print(Value_percent); // Выводим на экран значение с аналогового входа (от 0 до 1023 пропорционально от 0% до 100%).
}
Не отобразилась библиотека! LiquidCrystal_I2C.h
УдалитьПробовал ваш скетч ПИД, должен работать с ходу, однако только набирает обороты медленными темпами, а сбрасывать не хочет. Что в нем менять, пока не знаю.
УдалитьКак я понял - это ваш скетч регулятора ШИМ с индикацией оборотов, но без обратной связи. Я правильно понял? И как работает - нормально?
ОтветитьУдалитьЯ просто не понял, у вас не работает нормально ШИМ с вашим скетчем или только моим ( пид-регулятор)
УдалитьНе работает ваш скетч ПИД регулятора, который я в последствии хотел интегрировать в свой скетч. Я вас тоже немного не правильно понял, и по этому выложил свой скетч - ШИМ с индикацией, без обратной связи (рабочий).
УдалитьНемного разобрался в вашем скетче ПИД - алгоритм не понимал данные с датчика. Есть продвижения. Теперь буду экспериментировать с ПИД-алгоритмом.
Если добьюсь положительного результата, то могу выложить скетч сюда.
Конечно выкладывайте, я только за.
УдалитьАлександр, подскажите какой лучше ставить полевой транзистор: FGA25N120AN или FGA25N120ANTD?
ОтветитьУдалитьОба должны работать.
УдалитьИ еще один момент, при открывании оптопары PC817 путем регулировки резистора R1 c ардуино, происходит снижения напряжения на коллекторе оптопары с 12В до 1 волта. И напряжение на затворе полевого транзистора не хватает для его открытия. Почему это происходит? Получается блок питания не выдает стабилизированное напряжение 12в? Или может быть другая причина?
ОтветитьУдалитьСейчас я не могу проверить, но у меня всё работало нормально. Проверьте, правильно ли вы собрали драйвер на двух транзисторах разной проводимости.
УдалитьЕщё - я вам уже писал - более правильная схема силовой части - на страничке "ШИМ-регулятор 220 В ( IGBT ) " - http://www.motor-r.info/p/blog-page_28.html - последняя схема.
Там сделано питание драйвера от отдельной обмотки трансформатора, драйвер применён специализированный - TLP250, а также защита по току есть - которую тоже можно с Ардуино применить. И транзистор там тоже мощнее - FGH60N60
Спасибо, будем дальше грызть этот "черствый гранит" радиотехники ))).
УдалитьПривет:
ОтветитьУдалитьЯ хочу знать, использует ли эта электрическая схема управление скоростью двигателя стиральной машины без использования входов Arduino и аналоговых выходов.
Использование оптоакопальдора.
https://www.forosdeelectronica.com/attachments/1524646492646-png.166310/
http://4.bp.blogspot.com/-EN05co7M-cQ/VqKnd2m4zMI/AAAAAAAAAgk/PKXq63Osd5M/s1600/3.jpg
Привет.
Я не понял вопроса.
УдалитьПривет:
УдалитьМожете ли вы создать схему, которая использует только цифровые сигналы в Arduino?
В вашей схеме используются только аналоговые сигналы.
Сердечный привет.
Да, конечно можно.
УдалитьВыход ШИМ здесь уже цифровой. Чтобы сделать измерение оборотов двигателя - можно использовать датчик Холла или использовать формирователь сигнала индуктивного датчика и подсчитывать импульсы.
Вместо переменного резистора для регулировки оборотов двигателя можно использовать кнопки - больше - меньше-, например.
Силовую часть лучше использовать со страницы -" ШИМ регулятор на 220( IGBT)" - https://www.motor-r.info/p/blog-page_28.html - в самом низу страницы - там более правильная схема.
УдалитьАлександр ,здравствуйте
ОтветитьУдалитьВы случайно не делали схему по подключению погруженного датчика температуры,ардуино уно и ШИМ к Напряжение модуль преобразователя 0%-100% до 0-10 В для ПЛК MCU цифрового сигнала в аналоговый сигнал ШИМ конвертер Мощность модуль Очень нужная тема.
https://ru.aliexpress.com/item/0-100-0-10/32834921874.html
Нет, такое не делал
УдалитьАлександр доброго времени суток. Столкнулся с проблемой . Сгорел проц в силовой схеме стиральной машины, менять его на новый не вижу смысла, а курочить машинку жалко. Имею мысль подкинуть ардуинка вместо штатного проца и залить в нее примитивный скетч на один стандартный режим стирки с использованием родных датчиков машинки. Но вот есть сложность. Управление движком у машины реверсивное с применением двух реле и симистора. Скажите, ваш код способен работать с симистором который уже установлен на силовой плате? Остальную часть кода я допишу своими силами. Заранее благодарен
ОтветитьУдалитьЗдравствуйте. Нет, этот код не подойдёт, у меня здесь просто ШИМ, а алгоритм управления симистором немного другой. Но вы можете посмотреть код у Ал.Шенрок. У него в блоге или на его канале Ютуб. Он делал управление коллекторным двигателем с помощью Ардуино и симистора.
ОтветитьУдалитьСпасибо
ОтветитьУдалитьДобрый день. На видео показано работу данного регулятора с простым коллекторным двигателем от стиральной машинки, а на схеме подключение к двигателю постоянного тока. Эта схема для коллекторных двигателей или она подходит и для двигателя постоянного тока?
ОтветитьУдалитьВ принципе любой коллекторный двигатель - будет работать от постоянного тока. Поэтому схема универсальная. Можете сами проверить - взять двигатель от стиральной машины - соединить последовательно статорную и роторную обмотки - и подать любое постоянное напряжение - не важно какое - 20 - 30 - 40 вольт и вы увидите что двигатель будет работать. Чем больше напряжение - тем больше будут обороты.
УдалитьПодходит для двигателя постоянного тока.
УдалитьНе подскажите еще тогда, как дописать код в программу чтоб был экран и показывал количество оборотов?
ОтветитьУдалитьЯ не большой специалист в программировании - по-гуглите - очень много примеров отображения оборотов найдёте.
УдалитьДобрый день. Подскажите как тут сделать защиту по току? На лампочке работает, а на большей нагрузке при включении питания горит транзистор. Ставил FGH60N60 не помогло. Интересует именно этот вариант, я сделал управление частотой и скважностью кнопками и вывожу значения на экран. Спасибо.
ОтветитьУдалитьСиловую часть лучше использовать со страницы -" ШИМ регулятор на 220( IGBT)" - https://www.motor-r.info/p/blog-page_28.html - в самом низу страницы - там более правильная схема. Именно схема с защитой по току. Там используется токовый шунт R7 - o.1 ома и компаратор LM393 и оптрон PC817.
УдалитьДобрый день. Такой регулятор будет работать с двигателем постоянного тока независимого возбуждения 220 вольт? Регулятор будет установлен в цепь якоря, номинальный ток 22 ампера. Понятно, что силовые элементы придется поменять.
ОтветитьУдалитьДолжен работать.
ОтветитьУдалитьЗдраствуйте!Будте добры подскажите куда подключать выход оптопары защиты по току к Ардуине.
ОтветитьУдалитьВ общем на любой вход Ардуино
Удалитьпривет. что нужно поменять что бы поставить вместо IGBT что-то попроще, типа irf740? или что-то потяжелее, ампер на 40+?
ОтветитьУдалитьмогли бы добавить к статье рекомендации и/или принципы подбора транзисторов, расчета цепей в зависимости от разных нужд в мощности. на что нужно обращать внимание при выборе полевика и т.п. было бы интересно почитать как это все рассчитывается. + параллельное соединение как слабых так и мощных полевиков.
статейка будет более образовательная/познавательная. сделать краткую концепцию и список якорей к дополнительным частям.
Александр здравствуйте. У меня сломались напрочь мозги на стиралке индезит и меня заинтересовала Ваша схема. Скажите пожалуйста можно ли на базе Вашего регулятора сделать мозги на стиралку? Заранее спасибо.
ОтветитьУдалитьДа, конечно можно. На базе самого простого контроллера, такого как Ардуино например, можно сделать мозги на стиралку. Но на сегодня именно силовая часть на симисторе получается проще в реализации и надёжней.
УдалитьГреется сильно R11, хоть я и поставил его 1 ватт. Хоть на схеме это и не указано. Большой ток стабилитрона?
ОтветитьУдалитьДа, там большое падение напряжения на них. У меня стоят 2 по 20 Ком 5 Вт. В конце я перешёл на питание драйвера отдельным питанием с трансформатора. Это можно посмотреть на другой странице в самом ницу - ШИМ-регулятор 220 В ( IGBT )
УдалитьПоставил 62 кОм работает.
УдалитьПосмотрел осциллографом питание после моста пиии... Схема фильтра вообще не работает и на выходе с транзистора лезут гармоники, видимо по этой причине...
УдалитьА можно ли добавить к этой схеме Н - мост для изменения направления движения двигателя?
ОтветитьУдалитьДа, наверно можно ....
ОтветитьУдалитьЗдравствуйте ,а как мне сделать так чтобы обороты мотора были такие же ,какие я заложил в программе ,допустим ,мне надо чтобы обороты сами поднимались и опускались ,при этом стабилизация оборотов присутствовала ,заранее спасибо
ОтветитьУдалитьЯ думаю что это сделать реально чисто программно. То есть программа нужна на Ардуино.
Удалитьвообще мне надо 500 оборотов ,выпрямленный сигнал с тахо должен быть 2 вольта ,допустим напряжение на тахо упало ,значит шим скважость увеличить ,если напряжение стало выше 2 вольт ,уменьшить скважность .Нужна помощь в реализации
УдалитьЕсли честно, я не очень силён в программировании.
УдалитьДобрый день Подскажите пожалуйста, на выходе на мотор какое, в итоге, будет максимальное напряжение?
ОтветитьУдалитьДействующее 220 вольт, а амплитудное 310 вольт. Как и у переменки 220 вольт.
УдалитьДобрый день.
ОтветитьУдалитьЕсть какие изменения в проекте или он прекратил развитие.
Да, на данный момент по разным причинам всё остановлено.
УдалитьА не осталось печатки силовой части?
УдалитьА не осталось печатки силовой части?
ОтветитьУдалитьНапишите вашу почту - что есть я отправлю.
ОтветитьУдалитьМожно и мне печатку,пожалуйста))) selochpu@gmail.com. хочу попробовать прикрутить дисплейчик
ОтветитьУдалитьДоброго дня.
ОтветитьУдалитьЗамечательная статья.
Если есть возможность, опубликуйте печатную плату и остальные материалы по данному проекту (какие есть) через гугл диск или какой либо файлообменник.
Огромное спасибо.
Печатки силовой части сырые , все без обозначений.
Удалитьпо схемам со страницы https://www.motor-r.info/p/blog-page_28.html
Это всё что есть.
Ссылка на гугль-диск - https://drive.google.com/file/d/1_JNIVRjkh3oVuiQWgUGsJFT9Cn9Egy9l/view?usp=sharing
Спасибо.
Удалитьспасибо
ОтветитьУдалитьНа лампочке работает, при подключении шпинделя, сразу горит транзистор. Силовая часть с страницы https://www.motor-r.info/p/blog-page_28.html (последняя).
ОтветитьУдалитьВ чем может быть проблема, подскажите пожалуйста, всю голову сломал уже.