sany_sch, да, правильно понимате. tic - 32 битная переменная, содержащае число тактов процессора, которое насчитал таймер за 1 период входящего сигнала. При периоде 1секунда значение tic будет 16 000 000 , 1ms -16 000
0,0625 -это длительность одного такта МК в микросекундах.
Проблема не в полевике, а в том, что пальцем тормозил. Предохранитель 5 А по входу решит роблему сгораний 10 А полевика на хорошем радиаторе. И защитит 2А двигатель. На моей аналоговой плате предохранитель 6А в период исытаний и отладки горел не однократно.
Если немного углубиться в теорию электроприводов, то можно выяснить, что имеются следующие типовые виды защит:
-максимальная токовая защита.
-токовая защита от перегрузки.
В нашем случае роль максимальной токовой защиты выполняет предохранитель - защищает от КЗ. Это аварийная ситуация.
В роли защиты от перегрузки обычно выступает датчик тока и компаратор. При превышении некоторого порога с двигателя снимается напряжение, либо кратковременно, либо до ручного вмешательства. Это штатная ситуация. Кроме того ток пропорционален моменту нагрузки на валу двигателя и схемы управления электродвигателями обычно строят с обратной связью по току.
Если немного углубиться в теорию электроприводов, то можно выяснить, что имеются следующие типовые виды защит:
-максимальная токовая защита.
-токовая защита от перегрузки.
В нашем случае роль максимальной токовой защиты выполняет предохранитель - защищает от КЗ. Это аварийная ситуация.
В роли защиты от перегрузки обычно выступает датчик тока и компаратор. При превышении некоторого порога с двигателя снимается напряжение, либо кратковременно, либо до ручного вмешательства. Это штатная ситуация. Кроме того ток пропорционален моменту нагрузки на валу двигателя и схемы управления электродвигателями обычно строят с обратной связью по току.
Я полностью с вами согласен. И в самом первом сообщении и указывал, что на ардуино, в отличии от аналоговой схемы, можно "повесить" множество датчиков (термо, силы тока ...). Предохранитель предложил на время настройки.
У меня к вам вопрос. По каким параметрам, кроме вольтажа и ампер, подбирать правильно полевик. Чтобы было с запасом.
А вот по поводу регулятора с обратной связью по току. Я очень часто слышу эту фразу. Но мне нужен регулятор оборотов и обратная связь должна быть именно по оборотам. Я много перепробовал всевозможных регуляторов. И много их видел так как занимался ремонтом и перемоткой электроинструмента. И вся константная электроника идёт с датчиками оборотов. И на электроинструменте и на стиральных машинках стоят либо таходатчики, либо тахогенераторы.
sany_sch, У вас осциллографа нет? Вчера писал про виртуальные приборы. Звуковая карта в компе надеюсь есть? )
Спасибо большое. Но я забыл упомянуть, что у меня не только нет осцилографа, но я и не умею им пользоваться. Просто никогда не приходилось после училища. там был и я делал лабораторные. И сейчас у меня в мастерской есть прибор ЕЛ-1 (ёлка). Но назвать его осцилографом язык не поворачивается.
Пошел курить матчасть....
З.Ы. звуковая у меня интегрированная. Когда-то использовал для определения количества "пыхов" за один кадр встроенной фотовспышки цифрового фотоаппарата. Так же использовал для определения оборотов двигателя.
Тогда следующий. Мосфет, тот что я подобрал 10nk60zfp пробивает по неизвестным причинам. Может из за конденсатора после диодного моста 330микрофарад 400вольт, незнаю. Но 2 шт которые у меня были, блгополучно вышли из строя. причём на ровном месте. Без нагрузки на валу двигателя и на минимальных оборотах.
Какой мосфет использовать?
А то написал програмку, проверить не могу. Обидно.
lcd.print(60000000/(length*kImp));// выводим значения на экран.
78
lcd.print(" ");
79
loopTime = currentTime; // в loopTime записываем новое значение
80
}
81
82
83
}
84
85
// Подпрограмма прерывания
86
voidimpuls(){
87
len =micros()-start_time;
88
if( len>400 ){length =len ;
89
start_time = micros();
90
}
91
else{}
92
}
Теперь вопрос по скетчу.
Вот в этой строчке long pR =map(val, 0, 1024, tMin, tMax); я приравниваю значения потенциометра от 0 до 1024 ко времени одного импульса то минимальных до максимальных оборотов от 60об\мин до 6000об\мин. Так вот приравнивание происходит как-то не линейно. Выводил значения на экран. С минимальным всё верно, показывает 60. Нарастает очень медленно На полоборота около 200 в конце с 1000 до 5000 прыгает моментально. А на максимуме до 6000 не доходит, 5400 и всё. Сначала подумал на потенциометр, но при смене +и- на крайних контактах картина та-же.
Полевик более менее подойдет такой, а вот диод защитный свою функцию не выполняет, лучше поставить что-нибудь более подходящее по напряжению, не исключаю что и быстрее надо - закрываться не успевает и делает кз в схеме, но это уже маловероятно.
180 вольт или ватт? Если ватт, то можно попробовать irf640n. Он до 200В напряжения и 13А тока. Для его открытия нужен будет драйвер - полное открытие у него достигается при 10В.
Полевик более менее подойдет такой, а вот диод защитный свою функцию не выполняет, лучше поставить что-нибудь более подходящее по напряжению, не исключаю что и быстрее надо - закрываться не успевает и делает кз в схеме, но это уже маловероятно.
180 вольт или ватт? Если ватт, то можно попробовать irf640n. Он до 200В напряжения и 13А тока. Для его открытия нужен будет драйвер - полное открытие у него достигается при 10В.
Более подходящее(диод) -это какой?
180 Ватт, 200вольт это мало. И желательно без драйвера. Мой 600 Вольт 10А и его пробивает.
Тему внимательно не читал, может ляпну что-то не то.... Но где-то встречал, что параллельно эл.двигателю нужно обязательно подключить конденсатор, вроде как с самоиндукцией бороться.
Диод например от FR204 до FR207 или подобные. Лучше FR207 - он до 1000В, но я ставил вообще толи 202 толи 203 и работает, но у меня всего 48В на двигатель идет.
А полевик пробьет и на 1000В и на 1500В обраткой. Выбирать нужно по рабочему напряжению (у меня IRF540N справляется и не греется вообще, хотя токи могут доходить до 8А). Высоковольтные полевики редко на большие токи рассчитаны.
Конденсатор для гашения теоретически можно, но лучше диод. Конденсатор можно в парралель поставить для сглаживания пульсаций.
Приветствую всех! Я заминаюсь гончарным делом. Хороший гончарный круг стоит около 100 тыс. Поэтому приходится изготавливать его самому. Посмотрев ролик на ютубе https://www.youtube.com/watch?v=wFKM7z4com4, я решил сделать круг из стиральной машинки. Только управление коллекторным двигателем сделал не на контроллере TDA1085, а на ардуинке. Мне это показалось проще, я взял силовую часть от стиралки, и управлял ею ардуинкой. Не надо ни травить плату, ни нужно покупать деталей, а программу можно писать под свои нужды, что-то не нравится в работе – подключил комп. исправил сточку в коде и работай дальше, в общем одни плюсы. Но через время круг стал дурить, обороты двигателя могли внезапно возрасти, что сделало работу на круге невозможным. Я подумал, что проблема в ардуино, и в течении недели переделал схему управления на TDA1085, сейчас я работаю на ней. Тем не менее иногода двигатель дёргается и бывает, что набирает обороты, тогда, когда от него этого не требуется. Это бывает редко, и думаю, что это зависит от сети. Но все прелести программируемого управления не дают мне покоя. Я делаю второй круг, у меня есть намерение сделать его опять на ардуино, но управлять двигателем не через семистр, а транзистором шим регулированием, чтобы уйти от зависимости искажений в сети синусоиды, а так же, чтобы не ловить ноль. И здесь у меня к Александру вопросы. Первое, у вас двигатель как я понял на 220 вольт, чтобы им управлять транзистором надо напряжение выпрямлять, правильно я понял? Второе, коллекторный двигатель от стиралки может работать от постоянного тока? Я подключал свой к выпрямленному сетевому напряжению, через блок питания от компьютера, после диодного моста в высоковольтной части платы, двигатель приятно работал, видимо ему это понравилось. Но когда я его подключил к высокочастотной части схемы, сразу после полевого транзистора, он не подал признаков жизни. Я так понял, что 60 кГц для него много слишком высокое индукционное сопротивление. А было бы неплохо – ведь там (в блоке питания компьютера) стоит шим регулятор, который можно без труда перестроить на регулятор оборотов с обратной связью. Прошу извинения если не по теме!
Ваши проблемы с рывками возможны из-за плохо закреплённого магнита таходатчика. Такое бывает.
Все коллекторные двигателя по сути своей являются двигателем постоянного тока ( ДПТ). Когда их расчитывают на переменный ток, то слегка меняют кол-во витков. И если такой движок запитать постоянкой, то двигатель будет немного мощнее чем на переменке. Но без нагрузки на валу может пойти вразнос. Но мы же хотим сделать регулятор, так что ничего страшного.
Я запитываю движок постоянкой и регулирую мосфетом. Но, как мне здесь подсказали, диод не тот. буду менять и пробовать дальше. Насчёт 60кГц не знаю, но ардуинка его регулирует.
У меня к вам теперь вопросы. Как реализовали управление симистором? и вообще по подробней про ваш первый регулятор. Желательно с программой и подробными коментариями. А то я в этом новичёк.
Ваши проблемы с рывками возможны из-за плохо закреплённого магнита таходатчика. Такое бывает.
Вряд ли, штатный тахогенератор, более того у меня три таких двигателя, я их менял, проблема осталась. Поставил трансформаторный стабилизатор напряжения, помогло мало. Поменял всё мотор, симистр, схему, симптом тот же, значит какаято дрять по сети лезит. Хотя с другой то стороны стиралки в доме работают и вроде всё в порядке.
sany_sch пишет:
Все коллекторные двигателя по сути своей являются двигателем постоянного тока ( ДПТ). Когда их расчитывают на переменный ток, то слегка меняют кол-во витков. И если такой движок запитать постоянкой, то двигатель будет немного мощнее чем на переменке. Но без нагрузки на валу может пойти вразнос. Но мы же хотим сделать регулятор, так что ничего страшного.
Прибавка мощности это плюс, и это ищё одна из причин почему стоит выпрямлять ток.
sany_sch пишет:
Я запитываю движок постоянкой и регулирую мосфетом. Но, как мне здесь подсказали, диод не тот. буду менять и пробовать дальше. Насчёт 60кГц не знаю, но ардуинка его регулирует.
У нас в армии была частота сети 400 герц и бытовые приборы (телевизор) работали. Видимо 60 кГц это перебор. Хотя скажите как специалист? Тогда блок питания может стать регулятором двигателя, а ардуинка им управлять, там стоит uc3843b шим контроллер. Вроде его можно настроить и на меньшую частоту.
sany_sch пишет:
У меня к вам теперь вопросы. Как реализовали управление симистором? и вообще по подробней про ваш первый регулятор. Желательно с программой и подробными коментариями. А то я в этом новичёк.
С симистром я не заморачивался, я нашёл схему в интернету той платы которая у меня была. я выпаял штатный контроллер и в соответствии схемы подключал вмесо его выходы и входы ардуинки - на базу штатного транзистора, через штатный резистор, подавал сигнал с ардуинки, транзистор управлял симистром. От туда же взял питание, а так же не было проблем поймать ноль. в схеме это тоже было предусмотренно. там же стоял ключ на тахогенератор, им я тоже воспользовался. Ни каких оптических развязок я не делал. Сама схема управления стиралкой весьма сложна с напряжением -5 вольт.
Код я скидывать сюда не стану, по причине, что мне за него просто стыдно. Очень корявый. Могу скинуть в личку. Правда у меня столько много вариантов его. Скину последний.
Сначала тоже думал управлять симистором, но так как в программировании дуб, хотел использовать две ардуины. Одна на слежение за датчиками и подачей сигнала на вторую. А уже вторая следит за переходом через 0 и управляет симистором.
400Гц !?! впервые слышу. Знаю что бывает 60Гц в сети. Знаю что бывают двигателя на200Гц и на 400Гц и запускаются через преобразователи. Но что бы в сети 400Гц. Думаю, трансформаторы не выдержали бы.
Сначала тоже думал управлять симистором, но так как в программировании дуб, хотел использовать две ардуины. Одна на слежение за датчиками и подачей сигнала на вторую. А уже вторая следит за переходом через 0 и управляет симистором.
Две ардуино это перебор.
sany_sch пишет:
400Гц !?! впервые слышу. Знаю что бывает 60Гц в сети. Знаю что бывают двигателя на200Гц и на 400Гц и запускаются через преобразователи. Но что бы в сети 400Гц. Думаю, трансформаторы не выдержали бы.
У нас в машинах было 400 герц. бытовые приборы работали, а вот если наоброт, допустим, трансформатор на 400 герц влючить в сеть с 50 герцами он начинает дымится. И эти приборы на 400 герц для своей мощности по сравнению с 50 герцовыми были существенно меньше.
Понимаю. поэтому решил пробовать с транзистором. Те регуляторы что встречал для симистора были выполнены с функцией delay. и могли загрузить процессор полностью. а другого решения я не знаю.
То,что "герцовые" имеют меньше габариты это понятно. и соответственно на 50Гц дымят. Это видел и пробовал. А вот наоборот не доводилось. думал, что и здесь реакция та-же. Буду знать.
400Гц !?! впервые слышу. Знаю что бывает 60Гц в сети. Знаю что бывают двигателя на200Гц и на 400Гц и запускаются через преобразователи. Но что бы в сети 400Гц. Думаю, трансформаторы не выдержали бы.
быт - 50 Гц , наземная военТехника - 400 Гц , ВМФ и подлодки - 800 Гц , самолётики - 1200 Гц
...щас может быть и по другому :)
разница в габаритах трансов и дросселей , и др.
транс на 200 W :
- быт - 10 х 10 х 10 см
- НВТ - 7 х 7 х 7 см
- ВМФ - 5 х 5 х 5 см
- авиация - 3 х 3 х 3 см
....размеры - с потолка , но отражают зависимость массогабарита от частоты питающей сети :)
паяльнику или чайнику , например , пофиг - 220 50 Гц или 220 400 Гц , остальным - смерть :(
паяльнику или чайнику , например , пофиг - 220 50 Гц или 220 400 Гц , остальным - смерть :(
Не думаю. Низко частотные трансформаторы на высокой частоте будут иметь высокое сопративление и не будут работать, но не умрут. При 400 гц. индукционное сопротивление, видимо, ещё не слишком высоко, чтобы не работали приборы. Хотя кпд падает существенно. Шим регулятор выдаёт пилу на управление двигателем, это своего рода переменка, и двигатели постоянного тока прекрасно работают (разумеется до определённой частоты шим). Отсюда идея, - упралвять оборотами - не шим, а частотой. Что скажите?
Понимаю. поэтому решил пробовать с транзистором. Те регуляторы что встречал для симистора были выполнены с функцией delay. и могли загрузить процессор полностью. а другого решения я не знаю.
В том коде который я Вам выслал управление двигателем выполненно без прерывания, на таймерах, но так как было у меня мало времени я применил делай на замере длительности импульса с тахогенератора, думаю, что можно так же это сделать на таймере. К сожалению, опыт программирования у меня не большой, и в этом я не силён.
диод кд213г заменил на FR607 проблема осталась. Мосфет пробивает при первом включении. Паралельно двигателю поставил конденсатор не полярный 0,33микрофарада. И убрал конденсатор после диодного моста. В чём может быть проблема? Первый мосфет продержался несколько включений и регулировок двигателя и лампочки. второй и третий пробило сразу.
Хорошая новость. Неизвестный датчик Холла заменён на цифровой SS441A. поставлен резистор 10кОм между выходом и +. наводки прекратились.
Я бы для экстерементов последовательно двигателю включил бы лампочку. По крайней мере по лампочке можно посчитать какой ток идёт через нагрузку. Ток думаю пиковый, без осцилографа не обойтись. А потом защиту по току - шунт 0,25 - 0,5 ома последовательно с двигателем, с него снимать напряжение и при привешении номинального напряжения сигнал на ардуино. Это в теории.
Ампеража хватает. 10nk60zfp расчитан на 10А двигатель стоит 180Ватт. Тоесть не больше 2А в холостую ещё меньше. Причина в чём -то другом. Советовали заменить диод заменил. Поставить конденсатор - поставил.
Ампеража хватает. 10nk60zfp расчитан на 10А двигатель стоит 180Ватт. Тоесть не больше 2А в холостую ещё меньше. Причина в чём -то другом. Советовали заменить диод заменил. Поставить конденсатор - поставил.
У "взрослых" двигателей пусковые токи превышают номинал в 3-6 раз (в зависимости от возбуждения: параллельное или последовательное).
Есть еще одна фишка при пробое транзисторов: скорость нарастания тока. Реально кристал имеет некую площадь и открывается не весь сразу, а постепенно, начиная с самого тонкого участка. Если ток возрастает очень быстро, в кристале прожигается точка.
А можете ток замерить подключив двигатель напрямую без транзистора? Может на постоянке у него ток потребления другой. Ну а потом ток запуска. Если остались транзисторы, то можно на лампочке без двигателя эксперементировать, или на маломощном двигателе. А уже потом сделать защиту по току.
Если остались транзисторы, то можно на лампочке без двигателя эксперементировать
Транзистор остался один. Как на лампочке обратную связь? датчик освещения? Это совсем не то.
Двигатель через амперметр запускал, около 1А. Но я не могу же засечь самый первый пусковой импульс. Мотро слабее брать не имеет смысла. Так как и так взят в 2 раза слабее того, который нужен.
Тогда лампочка последовательно двигателю, и осцилограф. Я хочу тоже то этой схеме подключить коллекторный двигатель, пока руки не доходят. Не отпускает идея реализовать схему на блоке питания от компьютера. Пока обдумываю, собираю информацию. Не определился окончательно есть ли смысл переходить на постоянку и шим регулирование делать, или по старинке, - регулятор по фазе. Не просто же так в стиралках именно фазовая регулировка реализована. С другой стороны, на постоянке регулировка плавнее, двигатель мощнее, нет зависимости от сетевой частоты.
Итак, последний мосфет пошёл на эксперименты. При плавном добавлении оборотов всё нормально работает. а вот при резком включении транзистор пробивает. Нужно решать проблему. Либо аппаратно, либо ставить датчик тока и програмно. Как это делается?
lcd.print(" "); // выводим нужные обороты на экран.
76
77
78
lcd.setCursor(9,1);
79
80
lcd.print(60000000/(length*kImp)); // выводим реальные обороты на экран.
81
lcd.print(" ");
82
loopTime = currentTime; // в loopTime записываем новое значение
83
}
84
85
86
}
87
88
// Подпрограмма прерывания
89
voidimpuls(){
90
len =micros()-start_time;
91
if( len>400 ){length =len ;
92
start_time = micros();
93
}
94
else{}
95
}
Работает более менее сносно.
Вопрос. как избавится от "delay" в плавном разгоне? в случае сброса оборотов, думаю, его можно просто убрать. А вот на разгоне нужно что-то делать.
И второй вопрос. как сбросить последнее значение прерываний, если их не происходит. Тоесть, если резко остановить двигатель, то показния оборотов остаются большими.
Вот какая мысль пришла. А что если транзистор пробивается не по току, а по напряжению? По паспорту у него 600 вольт. Двигатель имеет индукцию и работает как дроссель, параллельно включён конденсатор, в самом мосфете стоит диод, схема похожа на повышающий преобразователь. Двигатель и конденсатор представляют собой коллебательный контур, который вовышает напряжение (выше 600 вольт) резонансом на задающую частоту. Более того допускаю, что если катушки статера и ротера подключены последовательно, то возможна смещение в них фаз (сдвиг прямоугольного импульса), вселдствии чего резкое повышение тока.
Что бы я сделал бы для начала.
1. Замерил бы напряжение на выходе.
2. Убрал бы конденсатор поставленый в параллель двигателю.
3. Понизил бы несущию частоту. Можно бы и повысить, ради экстеримента.
4. Возможно подключил бы обмотки старера и ротела параллельно, но тут много технических проблем - необходимо более низкое напряжение (питание полуволной, выпремлять ток одним диодом), причём разное для старета и ротера, и управление двумя транзистарами. Зато разгружаются транзисторы и в управлении двигателем появляются дополнительные возможности.
2. Убрал бы конденсатор поставленый в параллель двигателю.
3. Понизил бы несущию частоту. Можно бы и повысить, ради экстеримента.
4. Возможно подключил бы обмотки старера и ротела параллельно, но тут много технических проблем - необходимо более низкое напряжение (питание полуволной, выпремлять ток одним диодом), причём разное для старета и ротера, и управление двумя транзистарами. Зато разгружаются транзисторы и в управлении двигателем появляются дополнительные возможности.
1 напряжение не мерял. ( замерю).
2 конденсатора небыло. На последнем транзисторе убрал.
3 Как повышать или понижать частоту ШИМ пока не знаю. А эксперименты не дёшевы (к сожалению).
4 Помимо техничесских проблем, есть ещё одна. При параллельном подключении вся нагрузка ложится только на якорь, а не распределяется равномерно между якорем и статором как при последовательном соединении. Поэтому здесь данный вариант исключён.
Двигатель имеет индукцию и работает как дроссель, параллельно включён конденсатор,
Мало того, что остановленный двигатель представляет из себя КЗ по постоянному току, так еще разряженный конденсатор добавляет КЗ по переменке. Что вы хотите от транзистора? Чтобы он работал на КЗ в нагрузке и не сдох? От ЭДС самоиндукции движка параллельно ему ставят диод. И парралельно транзистору тоже, нельзя полагаться на тот, что у него внутри. От аппаратной защиты транзистора по току вы никуда не денетесь, программно вы защитите только двигатель.
Мало того, что остановленный двигатель представляет из себя КЗ по постоянному току, так еще разряженный конденсатор добавляет КЗ по переменке. Что вы хотите от транзистора? Чтобы он работал на КЗ в нагрузке и не сдох? От ЭДС самоиндукции движка параллельно ему ставят диод. И парралельно транзистору тоже, нельзя полагаться на тот, что у него внутри. От аппаратной защиты транзистора по току вы никуда не денетесь, программно вы защитите только двигатель.
Конденсатора небыло.
Какой диод и как поставить на транзистор?
Как организовать аппаратную защиту мосфета?
Почему нельзя програмно? если поставить датчик тока, и показания равны 0, тоесть двигатель стоит, то ШИМ не более 5 или 10. (найти эксперементально) . и дальше добавдляем по 1. Тогда будут исключены резкие запуски двигателя.
4 Помимо техничесских проблем, есть ещё одна. При параллельном подключении вся нагрузка ложится только на якорь, а не распределяется равномерно между якорем и статором как при последовательном соединении. Поэтому здесь данный вариант исключён.
Поэтому я и написал что разные напряжения и два транзистора, возможно, с раздельным управлением. Это, конечно, не параллельное подклчение, извиняюсь.
Поэтому я и написал что разные напряжения и два транзистора, возможно, с раздельным управлением. Это, конечно, не параллельное подклчение, извиняюсь.
Даже управляя раздельно, якорь будет брать на себя всю нагрузку. Тоесть по факту двигатель будет в 1,5-2 раза слабее. Нет, не знаю как правильнее сказать. Запаса мощности не будет, греться будет быстрее, В общем игра не стоит свеч.
sany_sch, да, правильно понимате. tic - 32 битная переменная, содержащае число тактов процессора, которое насчитал таймер за 1 период входящего сигнала. При периоде 1секунда значение tic будет 16 000 000 , 1ms -16 000
0,0625 -это длительность одного такта МК в микросекундах.
Если немного углубиться в теорию электроприводов, то можно выяснить, что имеются следующие типовые виды защит:
-максимальная токовая защита.
-токовая защита от перегрузки.
В нашем случае роль максимальной токовой защиты выполняет предохранитель - защищает от КЗ. Это аварийная ситуация.
В роли защиты от перегрузки обычно выступает датчик тока и компаратор. При превышении некоторого порога с двигателя снимается напряжение, либо кратковременно, либо до ручного вмешательства. Это штатная ситуация. Кроме того ток пропорционален моменту нагрузки на валу двигателя и схемы управления электродвигателями обычно строят с обратной связью по току.
Если открыть время-токовую характеристику предохранителя (http://ok-t.ru/studopediasu/baza2/451256767638.files/image001.png), то можно обнаружить, что кратковременно он выдерживает токи в разы превышающие его номинал, выдержит ли их полевик - это вопрос.
Если немного углубиться в теорию электроприводов, то можно выяснить, что имеются следующие типовые виды защит:
-максимальная токовая защита.
-токовая защита от перегрузки.
В нашем случае роль максимальной токовой защиты выполняет предохранитель - защищает от КЗ. Это аварийная ситуация.
В роли защиты от перегрузки обычно выступает датчик тока и компаратор. При превышении некоторого порога с двигателя снимается напряжение, либо кратковременно, либо до ручного вмешательства. Это штатная ситуация. Кроме того ток пропорционален моменту нагрузки на валу двигателя и схемы управления электродвигателями обычно строят с обратной связью по току.
Я полностью с вами согласен. И в самом первом сообщении и указывал, что на ардуино, в отличии от аналоговой схемы, можно "повесить" множество датчиков (термо, силы тока ...). Предохранитель предложил на время настройки.
У меня к вам вопрос. По каким параметрам, кроме вольтажа и ампер, подбирать правильно полевик. Чтобы было с запасом.
А вот по поводу регулятора с обратной связью по току. Я очень часто слышу эту фразу. Но мне нужен регулятор оборотов и обратная связь должна быть именно по оборотам. Я много перепробовал всевозможных регуляторов. И много их видел так как занимался ремонтом и перемоткой электроинструмента. И вся константная электроника идёт с датчиками оборотов. И на электроинструменте и на стиральных машинках стоят либо таходатчики, либо тахогенераторы.
Пользоваться в прерывании выводом в сериал - ещё как-то можно понять.....
Но выводить данные в сериал из вашей достаточно "быстродействующей" программы на 9600 ?????????????????????????????
115200- есть такая скорость и лично я о других забыл навсегда.
Немного отчитаюсь.
Пока ни с осцилографом, ни с триггером сдвигов нет, пытаюсь програмно исправить проблему с прерываниями.
1
void
impuls(){
2
len =micros()-start_time;
3
if
( len>400 ){length =len ;
4
start_time = micros();
5
}
6
else
{}
7
}
Добавление проверки времени дало хороший результат.
sany_sch, У вас осциллографа нет? Вчера писал про виртуальные приборы. Звуковая карта в компе надеюсь есть? )
sany_sch, У вас осциллографа нет? Вчера писал про виртуальные приборы. Звуковая карта в компе надеюсь есть? )
Спасибо большое. Но я забыл упомянуть, что у меня не только нет осцилографа, но я и не умею им пользоваться. Просто никогда не приходилось после училища. там был и я делал лабораторные. И сейчас у меня в мастерской есть прибор ЕЛ-1 (ёлка). Но назвать его осцилографом язык не поворачивается.
Пошел курить матчасть....
З.Ы. звуковая у меня интегрированная. Когда-то использовал для определения количества "пыхов" за один кадр встроенной фотовспышки цифрового фотоаппарата. Так же использовал для определения оборотов двигателя.
Не замучил я вас своими вопросами?
Тогда следующий. Мосфет, тот что я подобрал 10nk60zfp пробивает по неизвестным причинам. Может из за конденсатора после диодного моста 330микрофарад 400вольт, незнаю. Но 2 шт которые у меня были, блгополучно вышли из строя. причём на ровном месте. Без нагрузки на валу двигателя и на минимальных оборотах.
Какой мосфет использовать?
А то написал програмку, проверить не могу. Обидно.
01
#include <LiquidCrystal.h> // библиотека экрана
02
03
LiquidCrystal lcd(3, 4, 5, 6, 7, 8);
// пины экрана
04
05
volatile unsigned
long
len = 0;
//переменная для проверки ложных срабатываний.
06
volatile unsigned
long
length = 0;
//Время срабатывания датчика
07
volatile unsigned
long
start_time = 0;
//Предыдущее время
08
09
int
rehPin = 0;
// пин регулятора
10
11
int
rimPin = 9;
// пин выхода ШИМ
12
13
int
obMax = 6000;
//ввести максимальные обороты
14
15
int
obMin = 60;
//ввести минимальные обороты
16
17
float
kImp = 8;
//ввести кол-во импульсов на 1 оборот
18
19
float
kPp = 1;
//ввести коэфициент плавного пуска
20
21
int
pRim = 0;
//переменная ШИМ
22
23
float
tMax = 0;
//время между началами импульсов на максимальных оборотах
24
25
float
tMin = 0;
//время между началами импульсов на минимальных оборотах
26
27
unsigned
long
currentTime;
28
unsigned
long
loopTime;
29
30
void
setup
(){
31
attachInterrupt(0, impuls, RISING);
//Прерывание по нарастающему фронту на D2
32
pinMode(rimPin, OUTPUT);
33
analogReference(DEFAULT);
34
currentTime = millis();
// считываем время, прошедшее с момента запуска программы
35
loopTime = currentTime;
//тайминг для вывода данных на экран
36
lcd.begin(16, 2);
37
lcd.setCursor(0,0);
38
39
lcd.write(
"speed u:"
);
//в верхней строке будем выводить требуемые обороты
40
41
lcd.setCursor(0,1);
42
43
lcd.write(
"speed f:"
);
// В нижней выводим фактичесские обороты
44
}
45
46
void
loop
(){
47
float
tMax = (60000000/obMax/kImp);
//Вычисляем время импульса при макс. оборотах в микросекундах
48
float
tMin = (60000000/obMin/kImp);
//Вычисляем время импульса при мин. оборотах в микросекундах
49
int
val = analogRead(A0);
50
51
52
if
(val > 0){
53
long
pR =map(val, 0, 1024, tMin, tMax);
54
55
int
pRim = ((pR -length)*kPp+ pRim) ;
56
57
pRim = constrain(pRim,0,254) ;
58
analogWrite(rimPin, pRim);
59
60
}
61
else
{
62
int
pRim = 0;
63
analogWrite(rimPin, pRim);
64
65
}
66
currentTime = millis();
// считываем время, прошедшее с момента запуска программы
67
if
(currentTime >= (loopTime + 1000)){
// сравниваем текущий таймер с переменной loopTime + 1 секунда
68
69
long
pR =map(val, 0, 1024, tMin, tMax);
70
lcd.setCursor(9,0);
71
lcd.print(60000000/(pR*kImp));
72
lcd.print(
" "
);
// выводим значения на экран.
73
74
75
lcd.setCursor(9,1);
76
77
lcd.print(60000000/(length*kImp));
// выводим значения на экран.
78
lcd.print(
" "
);
79
loopTime = currentTime;
// в loopTime записываем новое значение
80
}
81
82
83
}
84
85
// Подпрограмма прерывания
86
void
impuls(){
87
len =micros()-start_time;
88
if
( len>400 ){length =len ;
89
start_time = micros();
90
}
91
else
{}
92
}
Теперь вопрос по скетчу.
Вот в этой строчке long pR =map(val, 0, 1024, tMin, tMax); я приравниваю значения потенциометра от 0 до 1024 ко времени одного импульса то минимальных до максимальных оборотов от 60об\мин до 6000об\мин. Так вот приравнивание происходит как-то не линейно. Выводил значения на экран. С минимальным всё верно, показывает 60. Нарастает очень медленно На полоборота около 200 в конце с 1000 до 5000 прыгает моментально. А на максимуме до 6000 не доходит, 5400 и всё. Сначала подумал на потенциометр, но при смене +и- на крайних контактах картина та-же.
Защитный диод стоит у двигателя, какой? Сколько потребляет двигатель?
диод стоит кд213г
двигатель на переменке 180Ватт. на постоянке немного больше. со всеми допусками никак не больше 2 А. тем более без нагрузки был.
Нужен мосфет чтоб свободно выдерживал двигатель от стиральной машинки автомат. Там максимум 500 Ватт при переменном токе. На постоянке будет больше.
Полевик более менее подойдет такой, а вот диод защитный свою функцию не выполняет, лучше поставить что-нибудь более подходящее по напряжению, не исключаю что и быстрее надо - закрываться не успевает и делает кз в схеме, но это уже маловероятно.
180 вольт или ватт? Если ватт, то можно попробовать irf640n. Он до 200В напряжения и 13А тока. Для его открытия нужен будет драйвер - полное открытие у него достигается при 10В.
Полевик более менее подойдет такой, а вот диод защитный свою функцию не выполняет, лучше поставить что-нибудь более подходящее по напряжению, не исключаю что и быстрее надо - закрываться не успевает и делает кз в схеме, но это уже маловероятно.
180 вольт или ватт? Если ватт, то можно попробовать irf640n. Он до 200В напряжения и 13А тока. Для его открытия нужен будет драйвер - полное открытие у него достигается при 10В.
Более подходящее(диод) -это какой?
180 Ватт, 200вольт это мало. И желательно без драйвера. Мой 600 Вольт 10А и его пробивает.
Необходимо сделать как можно проще в плане пайки.
Тему внимательно не читал, может ляпну что-то не то.... Но где-то встречал, что параллельно эл.двигателю нужно обязательно подключить конденсатор, вроде как с самоиндукцией бороться.
Диод например от FR204 до FR207 или подобные. Лучше FR207 - он до 1000В, но я ставил вообще толи 202 толи 203 и работает, но у меня всего 48В на двигатель идет.
А полевик пробьет и на 1000В и на 1500В обраткой. Выбирать нужно по рабочему напряжению (у меня IRF540N справляется и не греется вообще, хотя токи могут доходить до 8А). Высоковольтные полевики редко на большие токи рассчитаны.
Конденсатор для гашения теоретически можно, но лучше диод. Конденсатор можно в парралель поставить для сглаживания пульсаций.
Пока новые комплектующие не приобретены, поработал над скетчем. Исправил баг с регулятором и немного облегчил всю программу.
01
#include <LiquidCrystal.h> // библиотека экрана
02
03
LiquidCrystal lcd(3, 4, 5, 6, 7, 8);
// пины экрана
04
05
volatile unsigned
long
len = 0;
06
volatile unsigned
long
length = 0;
//Время срабатывания датчика
07
volatile unsigned
long
start_time = 0;
//Предыдущее время
08
09
int
rehPin = 0;
// пин регулятора
10
11
int
rimPin = 9;
// пин выхода ШИМ
12
13
int
obMax = 6000;
//ввести максимальные обороты
14
15
int
obMin = 60;
//ввести минимальные обороты
16
17
float
kImp = 8;
//ввести кол-во импульсов на 1 оборот
18
19
float
kPp = 1;
//ввести коэфициент плавного пуска
20
21
int
pRim = 0;
//переменная ШИМ
22
23
24
25
unsigned
long
currentTime;
26
unsigned
long
loopTime;
27
28
void
setup
(){
29
attachInterrupt(0, impuls, RISING);
//Прерывание по нарастающему фронту на D2
30
pinMode(rimPin, OUTPUT);
31
analogReference(DEFAULT);
32
currentTime = millis();
// считываем время, прошедшее с момента запуска программы
33
loopTime = currentTime;
34
lcd.begin(16, 2);
35
lcd.setCursor(0,0);
36
37
lcd.write(
"speed u:"
);
//в верхней строке будем выводить требуемые обороты
38
39
lcd.setCursor(0,1);
40
41
lcd.write(
"speed f:"
);
// В нижней выводим фактичесские обороты
42
}
43
44
void
loop
(){
45
46
int
val = analogRead(A0);
47
int
pR =map(val, 0, 1023, obMin, obMax);
//Приводим показания регулятора к минимальным и максимальным оборотам
48
49
if
(val > 0){
// если регулятор больше 0
50
51
52
int
pRim = ((60000000/pR/kImp -length)*kPp+ pRim) ;
//то к значению ШИМ добавляем разницу между необходимым
53
//временем импульса и реальным временем импульса умноженным на коэфициент плавного пуска.
54
55
pRim = constrain(pRim,0,254) ;
// Следим чтоб ШИМ был не меньше 0 и не больше 254
56
analogWrite(rimPin, pRim);
//Выводим значение ШИМ на двигатель
57
58
}
59
else
{
60
int
pRim = 0;
//Если регулятор на 0 то значение ШИМ =0
61
analogWrite(rimPin, pRim);
// Выводим значение ШИМ на двигатель
62
63
}
64
currentTime = millis();
// считываем время, прошедшее с момента запуска программы
65
if
(currentTime >= (loopTime + 1000)){
// сравниваем текущий таймер с переменной loopTime + 1 секунда
66
67
lcd.setCursor(9,0);
68
lcd.print(pR);
69
lcd.print(
" "
);
// выводим нужные обороты на экран.
70
71
72
lcd.setCursor(9,1);
73
74
lcd.print(60000000/(length*kImp));
// выводим реальные обороты на экран.
75
lcd.print(
" "
);
76
loopTime = currentTime;
// в loopTime записываем новое значение
77
}
78
79
80
}
81
82
// Подпрограмма прерывания
83
void
impuls(){
84
len =micros()-start_time;
85
if
( len>400 ){length =len ;
86
start_time = micros();
87
}
88
else
{}
89
}
Жду поездки в область для приобритения компонентов.
Приветствую всех! Я заминаюсь гончарным делом. Хороший гончарный круг стоит около 100 тыс. Поэтому приходится изготавливать его самому. Посмотрев ролик на ютубе https://www.youtube.com/watch?v=wFKM7z4com4, я решил сделать круг из стиральной машинки. Только управление коллекторным двигателем сделал не на контроллере TDA1085, а на ардуинке. Мне это показалось проще, я взял силовую часть от стиралки, и управлял ею ардуинкой. Не надо ни травить плату, ни нужно покупать деталей, а программу можно писать под свои нужды, что-то не нравится в работе – подключил комп. исправил сточку в коде и работай дальше, в общем одни плюсы. Но через время круг стал дурить, обороты двигателя могли внезапно возрасти, что сделало работу на круге невозможным. Я подумал, что проблема в ардуино, и в течении недели переделал схему управления на TDA1085, сейчас я работаю на ней. Тем не менее иногода двигатель дёргается и бывает, что набирает обороты, тогда, когда от него этого не требуется. Это бывает редко, и думаю, что это зависит от сети. Но все прелести программируемого управления не дают мне покоя. Я делаю второй круг, у меня есть намерение сделать его опять на ардуино, но управлять двигателем не через семистр, а транзистором шим регулированием, чтобы уйти от зависимости искажений в сети синусоиды, а так же, чтобы не ловить ноль. И здесь у меня к Александру вопросы. Первое, у вас двигатель как я понял на 220 вольт, чтобы им управлять транзистором надо напряжение выпрямлять, правильно я понял? Второе, коллекторный двигатель от стиралки может работать от постоянного тока? Я подключал свой к выпрямленному сетевому напряжению, через блок питания от компьютера, после диодного моста в высоковольтной части платы, двигатель приятно работал, видимо ему это понравилось. Но когда я его подключил к высокочастотной части схемы, сразу после полевого транзистора, он не подал признаков жизни. Я так понял, что 60 кГц для него много слишком высокое индукционное сопротивление. А было бы неплохо – ведь там (в блоке питания компьютера) стоит шим регулятор, который можно без труда перестроить на регулятор оборотов с обратной связью. Прошу извинения если не по теме!
Я так понял, что вопрос ко мне.
Ваши проблемы с рывками возможны из-за плохо закреплённого магнита таходатчика. Такое бывает.
Все коллекторные двигателя по сути своей являются двигателем постоянного тока ( ДПТ). Когда их расчитывают на переменный ток, то слегка меняют кол-во витков. И если такой движок запитать постоянкой, то двигатель будет немного мощнее чем на переменке. Но без нагрузки на валу может пойти вразнос. Но мы же хотим сделать регулятор, так что ничего страшного.
Я запитываю движок постоянкой и регулирую мосфетом. Но, как мне здесь подсказали, диод не тот. буду менять и пробовать дальше. Насчёт 60кГц не знаю, но ардуинка его регулирует.
У меня к вам теперь вопросы. Как реализовали управление симистором? и вообще по подробней про ваш первый регулятор. Желательно с программой и подробными коментариями. А то я в этом новичёк.
https://www.youtube.com/watch?v=XdCvJ1wZ0bA Вот что-то вроде этого, только с коллекторным двигателем. Надо досмотреть до конца.
Говорила мне мама в детстве - "учи английский"
не слушался...
Говорила мне мама в детстве - "учи английский"
не слушался...
Ваши проблемы с рывками возможны из-за плохо закреплённого магнита таходатчика. Такое бывает.
Вряд ли, штатный тахогенератор, более того у меня три таких двигателя, я их менял, проблема осталась. Поставил трансформаторный стабилизатор напряжения, помогло мало. Поменял всё мотор, симистр, схему, симптом тот же, значит какаято дрять по сети лезит. Хотя с другой то стороны стиралки в доме работают и вроде всё в порядке.
Все коллекторные двигателя по сути своей являются двигателем постоянного тока ( ДПТ). Когда их расчитывают на переменный ток, то слегка меняют кол-во витков. И если такой движок запитать постоянкой, то двигатель будет немного мощнее чем на переменке. Но без нагрузки на валу может пойти вразнос. Но мы же хотим сделать регулятор, так что ничего страшного.
Прибавка мощности это плюс, и это ищё одна из причин почему стоит выпрямлять ток.
Я запитываю движок постоянкой и регулирую мосфетом. Но, как мне здесь подсказали, диод не тот. буду менять и пробовать дальше. Насчёт 60кГц не знаю, но ардуинка его регулирует.
У нас в армии была частота сети 400 герц и бытовые приборы (телевизор) работали. Видимо 60 кГц это перебор. Хотя скажите как специалист? Тогда блок питания может стать регулятором двигателя, а ардуинка им управлять, там стоит uc3843b шим контроллер. Вроде его можно настроить и на меньшую частоту.
У меня к вам теперь вопросы. Как реализовали управление симистором? и вообще по подробней про ваш первый регулятор. Желательно с программой и подробными коментариями. А то я в этом новичёк.
С симистром я не заморачивался, я нашёл схему в интернету той платы которая у меня была. я выпаял штатный контроллер и в соответствии схемы подключал вмесо его выходы и входы ардуинки - на базу штатного транзистора, через штатный резистор, подавал сигнал с ардуинки, транзистор управлял симистром. От туда же взял питание, а так же не было проблем поймать ноль. в схеме это тоже было предусмотренно. там же стоял ключ на тахогенератор, им я тоже воспользовался. Ни каких оптических развязок я не делал. Сама схема управления стиралкой весьма сложна с напряжением -5 вольт.
Код я скидывать сюда не стану, по причине, что мне за него просто стыдно. Очень корявый. Могу скинуть в личку. Правда у меня столько много вариантов его. Скину последний.
не найду, где здесь можно скинуть в личку?
Вот так sanysch670@gmail.com
Сначала тоже думал управлять симистором, но так как в программировании дуб, хотел использовать две ардуины. Одна на слежение за датчиками и подачей сигнала на вторую. А уже вторая следит за переходом через 0 и управляет симистором.
400Гц !?! впервые слышу. Знаю что бывает 60Гц в сети. Знаю что бывают двигателя на200Гц и на 400Гц и запускаются через преобразователи. Но что бы в сети 400Гц. Думаю, трансформаторы не выдержали бы.
Выслал.
Сначала тоже думал управлять симистором, но так как в программировании дуб, хотел использовать две ардуины. Одна на слежение за датчиками и подачей сигнала на вторую. А уже вторая следит за переходом через 0 и управляет симистором.
Две ардуино это перебор.
400Гц !?! впервые слышу. Знаю что бывает 60Гц в сети. Знаю что бывают двигателя на200Гц и на 400Гц и запускаются через преобразователи. Но что бы в сети 400Гц. Думаю, трансформаторы не выдержали бы.
У нас в машинах было 400 герц. бытовые приборы работали, а вот если наоброт, допустим, трансформатор на 400 герц влючить в сеть с 50 герцами он начинает дымится. И эти приборы на 400 герц для своей мощности по сравнению с 50 герцовыми были существенно меньше.
Две ардуино это перебор.
Понимаю. поэтому решил пробовать с транзистором. Те регуляторы что встречал для симистора были выполнены с функцией
delay.
и могли загрузить процессор полностью. а другого решения я не знаю.То,что "герцовые" имеют меньше габариты это понятно. и соответственно на 50Гц дымят. Это видел и пробовал. А вот наоборот не доводилось. думал, что и здесь реакция та-же. Буду знать.
400Гц !?! впервые слышу. Знаю что бывает 60Гц в сети. Знаю что бывают двигателя на200Гц и на 400Гц и запускаются через преобразователи. Но что бы в сети 400Гц. Думаю, трансформаторы не выдержали бы.
быт - 50 Гц , наземная военТехника - 400 Гц , ВМФ и подлодки - 800 Гц , самолётики - 1200 Гц
...щас может быть и по другому :)
разница в габаритах трансов и дросселей , и др.
транс на 200 W :
- быт - 10 х 10 х 10 см
- НВТ - 7 х 7 х 7 см
- ВМФ - 5 х 5 х 5 см
- авиация - 3 х 3 х 3 см
....размеры - с потолка , но отражают зависимость массогабарита от частоты питающей сети :)
паяльнику или чайнику , например , пофиг - 220 50 Гц или 220 400 Гц , остальным - смерть :(
паяльнику или чайнику , например , пофиг - 220 50 Гц или 220 400 Гц , остальным - смерть :(
Не думаю.
Низко частотные трансформаторы на высокой частоте будут иметь высокое сопративление и не будут работать, но не умрут. При 400 гц. индукционное сопротивление, видимо, ещё не слишком высоко, чтобы не работали приборы. Хотя кпд падает существенно. Шим регулятор выдаёт пилу на управление двигателем, это своего рода переменка, и двигатели постоянного тока прекрасно работают (разумеется до определённой частоты шим). Отсюда идея, - упралвять оборотами - не шим, а частотой. Что скажите?
Понимаю. поэтому решил пробовать с транзистором. Те регуляторы что встречал для симистора были выполнены с функцией
delay.
и могли загрузить процессор полностью. а другого решения я не знаю.В том коде который я Вам выслал управление двигателем выполненно без прерывания, на таймерах, но так как было у меня мало времени я применил делай на замере длительности импульса с тахогенератора, думаю, что можно так же это сделать на таймере. К сожалению, опыт программирования у меня не большой, и в этом я не силён.
диод кд213г заменил на FR607 проблема осталась. Мосфет пробивает при первом включении. Паралельно двигателю поставил конденсатор не полярный 0,33микрофарада. И убрал конденсатор после диодного моста. В чём может быть проблема? Первый мосфет продержался несколько включений и регулировок двигателя и лампочки. второй и третий пробило сразу.
Хорошая новость. Неизвестный датчик Холла заменён на цифровой SS441A. поставлен резистор 10кОм между выходом и +. наводки прекратились.
Вопрос. Что не так с транзистором?
Мосфет пробивает при первом включении.
Я бы для экстерементов последовательно двигателю включил бы лампочку. По крайней мере по лампочке можно посчитать какой ток идёт через нагрузку. Ток думаю пиковый, без осцилографа не обойтись. А потом защиту по току - шунт 0,25 - 0,5 ома последовательно с двигателем, с него снимать напряжение и при привешении номинального напряжения сигнал на ардуино. Это в теории.
Плавный пуск тоже не помешал бы.
Плавный пуск тоже не помешал бы.
Так не доходит дело до испытаний и настройки схемы. плавность не проблемма. в скетче предусмотрена переменная плавного разгона.
Значит лампочка. Если не хватает у транзистора ампеража то можно их натыкать сколько угодно параллельно включить, например как здесь:
Ампеража хватает. 10nk60zfp расчитан на 10А двигатель стоит 180Ватт. Тоесть не больше 2А в холостую ещё меньше. Причина в чём -то другом. Советовали заменить диод заменил. Поставить конденсатор - поставил.
Есть еще одна фишка при пробое транзисторов: скорость нарастания тока. Реально кристал имеет некую площадь и открывается не весь сразу, а постепенно, начиная с самого тонкого участка. Если ток возрастает очень быстро, в кристале прожигается точка.
А можете ток замерить подключив двигатель напрямую без транзистора? Может на постоянке у него ток потребления другой. Ну а потом ток запуска. Если остались транзисторы, то можно на лампочке без двигателя эксперементировать, или на маломощном двигателе. А уже потом сделать защиту по току.
Схема защиты по току. Можно легко организовать на ардуино.
Если остались транзисторы, то можно на лампочке без двигателя эксперементировать
Транзистор остался один. Как на лампочке обратную связь? датчик освещения? Это совсем не то.
Двигатель через амперметр запускал, около 1А. Но я не могу же засечь самый первый пусковой импульс. Мотро слабее брать не имеет смысла. Так как и так взят в 2 раза слабее того, который нужен.
Тогда лампочка последовательно двигателю, и осцилограф. Я хочу тоже то этой схеме подключить коллекторный двигатель, пока руки не доходят. Не отпускает идея реализовать схему на блоке питания от компьютера. Пока обдумываю, собираю информацию. Не определился окончательно есть ли смысл переходить на постоянку и шим регулирование делать, или по старинке, - регулятор по фазе. Не просто же так в стиралках именно фазовая регулировка реализована. С другой стороны, на постоянке регулировка плавнее, двигатель мощнее, нет зависимости от сетевой частоты.
Итак, последний мосфет пошёл на эксперименты. При плавном добавлении оборотов всё нормально работает. а вот при резком включении транзистор пробивает. Нужно решать проблему. Либо аппаратно, либо ставить датчик тока и програмно. Как это делается?
Во время испытаний был проверен этот скетч:
01
#include <LiquidCrystal.h> // библиотека экрана
02
03
LiquidCrystal lcd(3, 4, 5, 6, 7, 8);
// пины экрана
04
05
volatile unsigned
long
len = 0;
06
volatile unsigned
long
length = 999999999;
//Время срабатывания датчика
07
volatile unsigned
long
start_time = 0;
//Предыдущее время
08
09
int
rehPin = 0;
// пин регулятора
10
11
int
rimPin = 9;
// пин выхода ШИМ
12
13
int
obMax = 1000;
//ввести максимальные обороты
14
15
int
obMin = 60;
//ввести минимальные обороты
16
17
float
kImp = 8;
//ввести кол-во импульсов на 1 оборот
18
19
float
kPp = 1;
//ввести коэфициент плавного пуска
20
21
volatile
int
pRim = 0;
//переменная ШИМ
22
23
24
25
unsigned
long
currentTime;
26
unsigned
long
loopTime;
27
28
void
setup
(){
29
attachInterrupt(0, impuls, RISING);
//Прерывание по нарастающему фронту на D2
30
pinMode(rimPin, OUTPUT);
31
analogReference(DEFAULT);
32
currentTime = millis();
// считываем время, прошедшее с момента запуска программы
33
loopTime = currentTime;
34
lcd.begin(16, 2);
35
lcd.setCursor(0,0);
36
37
lcd.write(
"speed u:"
);
//в верхней строке будем выводить требуемые обороты
38
39
lcd.setCursor(0,1);
40
41
lcd.write(
"speed f:"
);
// В нижней выводим фактичесские обороты
42
}
43
44
void
loop
(){
45
46
int
val = analogRead(A0);
47
int
pR =map(val, 0, 1023, obMin, obMax);
//Приводим показания регулятора к минимальным и максимальным оборотам
48
49
if
(val > 0){
// если регулятор больше 0
50
51
if
((60000000/pR/kImp)>length){
//если нужное время импульса больше реального
52
pRim = pRim-1 ;
//то от значения ШИМ отнимаем 1
53
54
pRim = constrain(pRim,0,254) ;
// Следим чтоб ШИМ был не меньше 0 и не больше 254
55
analogWrite(rimPin, pRim);
//Выводим значение ШИМ на двигатель
56
delay(10);
//для плавности регулирования вводим временую задержку
57
}
58
else
{
59
pRim = pRim+1 ;
//то к значению ШИМ + 1
60
pRim = constrain(pRim,0,254) ;
// Следим чтоб ШИМ был не меньше 0 и не больше 254
61
analogWrite(rimPin, pRim);
//Выводим значение ШИМ на двигатель
62
delay(kPp*10+10);
//для плавности регулирования вводим временую задержку минимальная 30+нужный коэфициент*10
63
}
64
}
65
else
{
66
pRim = 0;
//Если регулятор на 0 то значение ШИМ =0
67
analogWrite(rimPin, pRim);
// Выводим значение ШИМ на двигатель
68
69
}
70
currentTime = millis();
// считываем время, прошедшее с момента запуска программы
71
if
(currentTime >= (loopTime + 1000)){
// сравниваем текущий таймер с переменной loopTime + 1 секунда
72
73
lcd.setCursor(9,0);
74
lcd.print(pR);
75
lcd.print(
" "
);
// выводим нужные обороты на экран.
76
77
78
lcd.setCursor(9,1);
79
80
lcd.print(60000000/(length*kImp));
// выводим реальные обороты на экран.
81
lcd.print(
" "
);
82
loopTime = currentTime;
// в loopTime записываем новое значение
83
}
84
85
86
}
87
88
// Подпрограмма прерывания
89
void
impuls(){
90
len =micros()-start_time;
91
if
( len>400 ){length =len ;
92
start_time = micros();
93
}
94
else
{}
95
}
Работает более менее сносно.
Вопрос. как избавится от "delay" в плавном разгоне? в случае сброса оборотов, думаю, его можно просто убрать. А вот на разгоне нужно что-то делать.
И второй вопрос. как сбросить последнее значение прерываний, если их не происходит. Тоесть, если резко остановить двигатель, то показния оборотов остаются большими.
Итак, последний мосфет пошёл на эксперименты.
Вот какая мысль пришла. А что если транзистор пробивается не по току, а по напряжению? По паспорту у него 600 вольт. Двигатель имеет индукцию и работает как дроссель, параллельно включён конденсатор, в самом мосфете стоит диод, схема похожа на повышающий преобразователь. Двигатель и конденсатор представляют собой коллебательный контур, который вовышает напряжение (выше 600 вольт) резонансом на задающую частоту. Более того допускаю, что если катушки статера и ротера подключены последовательно, то возможна смещение в них фаз (сдвиг прямоугольного импульса), вселдствии чего резкое повышение тока.
Что бы я сделал бы для начала.
1. Замерил бы напряжение на выходе.
2. Убрал бы конденсатор поставленый в параллель двигателю.
3. Понизил бы несущию частоту. Можно бы и повысить, ради экстеримента.
4. Возможно подключил бы обмотки старера и ротела параллельно, но тут много технических проблем - необходимо более низкое напряжение (питание полуволной, выпремлять ток одним диодом), причём разное для старета и ротера, и управление двумя транзистарами. Зато разгружаются транзисторы и в управлении двигателем появляются дополнительные возможности.
Что бы я сделал бы для начала.
1. Замерил бы напряжение на выходе.
2. Убрал бы конденсатор поставленый в параллель двигателю.
3. Понизил бы несущию частоту. Можно бы и повысить, ради экстеримента.
4. Возможно подключил бы обмотки старера и ротела параллельно, но тут много технических проблем - необходимо более низкое напряжение (питание полуволной, выпремлять ток одним диодом), причём разное для старета и ротера, и управление двумя транзистарами. Зато разгружаются транзисторы и в управлении двигателем появляются дополнительные возможности.
1 напряжение не мерял. ( замерю).
2 конденсатора небыло. На последнем транзисторе убрал.
3 Как повышать или понижать частоту ШИМ пока не знаю. А эксперименты не дёшевы (к сожалению).
4 Помимо техничесских проблем, есть ещё одна. При параллельном подключении вся нагрузка ложится только на якорь, а не распределяется равномерно между якорем и статором как при последовательном соединении. Поэтому здесь данный вариант исключён.
Мало того, что остановленный двигатель представляет из себя КЗ по постоянному току, так еще разряженный конденсатор добавляет КЗ по переменке. Что вы хотите от транзистора? Чтобы он работал на КЗ в нагрузке и не сдох? От ЭДС самоиндукции движка параллельно ему ставят диод. И парралельно транзистору тоже, нельзя полагаться на тот, что у него внутри. От аппаратной защиты транзистора по току вы никуда не денетесь, программно вы защитите только двигатель.
Конденсатора небыло.
Какой диод и как поставить на транзистор?
Как организовать аппаратную защиту мосфета?
Почему нельзя програмно? если поставить датчик тока, и показания равны 0, тоесть двигатель стоит, то ШИМ не более 5 или 10. (найти эксперементально) . и дальше добавдляем по 1. Тогда будут исключены резкие запуски двигателя.
4 Помимо техничесских проблем, есть ещё одна. При параллельном подключении вся нагрузка ложится только на якорь, а не распределяется равномерно между якорем и статором как при последовательном соединении. Поэтому здесь данный вариант исключён.
Поэтому я и написал что разные напряжения и два транзистора, возможно, с раздельным управлением. Это, конечно, не параллельное подклчение, извиняюсь.
Как организовать аппаратную защиту мосфета?
с помощью шунта, как я писал ранее, а вот напряжение на шунте должна анализировать ардуинка.
на tda 1085 http://www.chipmaker.ru/uploads/monthly_07_2014/post/image/post-60830-089793900%201404570276.pngзащита так и устроена. Шунты R31 R33, Ток регулируется подстроечником R21, напряжения с шунта поступает на ножку 3. В общем эту часть можно взять и перенести на ардуино, подстроечника не надо, можно програмно настроить на нужное напряжение.
Поэтому я и написал что разные напряжения и два транзистора, возможно, с раздельным управлением. Это, конечно, не параллельное подклчение, извиняюсь.
Даже управляя раздельно, якорь будет брать на себя всю нагрузку. Тоесть по факту двигатель будет в 1,5-2 раза слабее. Нет, не знаю как правильнее сказать. Запаса мощности не будет, греться будет быстрее, В общем игра не стоит свеч.