Страница 1 из 6

Инвертор 12-220 (sin на МК)

Добавлено: Ср авг 26, 2009 16:01:44
demson
Итак после поисков готового проекта стало ясно что его нет.
Требуется при помощи 1 МК создать синус 60 Гц.

далее этот синус пойдет через транзисторы на повышающий трансформатор. таким образом получится идеальный вариант для питания бытовой техники.
Трансформатор имеет 2 мощные обмотки с общим отводом и одинаковым количеством витков. (выдран из ups).
Кто сможет помочь? Пока рассматриваю 2 варианта dds генератор и шим. 8)

Добавлено: Ср авг 26, 2009 16:19:37
SeregaT
А в чем сложность? Высчитать количество импульсов за полупериод (для 60 Гц), скважность подобрать (или расчитать) думаю будет не проблема. Частоту МК задрать повыше (думаю это не повредит, точнее будет), и на один выход подавать импульсы так, чтобы ширина импульса до половины полупериода сперва несколько раз увеличилась до 100%, а потом за столько-же раз снизилась до 0. Затем эту операцию повторить на следующем выходе МК. На эти выводы посадить пару мосфетов (например подходящие из серии IRL), а на выходы мосфетов подключить выводы обмоток трансформатора, а среднюю точку обмоток посадить на +12 вольт. Думаю должно нормально работать.
Или нужны еще какие-то навороты? Ну там защита от перегрузки, обратная связь или еще чего?
Думаю частоты ШИМ килогерц 20 - 25 вполне хватит (тогда можно и без драйверов для мосфетов обойтись, да и синусоида получится практически как настоящая).

Добавлено: Ср авг 26, 2009 16:44:30
demson
наворотов не надо надо синус с не уплывающей частотой.
а зачем на 2 выводах повторять?
шим'а а думаю достаточно будет. Непонятен алгоритм действия.

Добавлено: Ср авг 26, 2009 16:58:44
SeregaT
demson писал(а):Непонятен алгоритм действия.

ШИМ с одного вывода идёт на первый транзистор, таким образом выводится синусоида с помощью ширины импульса (которая за половину полупериода сперва увеличивается от 0 до 100%, а за вторую половину наоборот уменьшается) и полученный полупериод поступает на одну обмотку транса. Следующий полупериод (со следующего вывода МК и второго мосфета) поступает уже на вторую обмотку транса (средняя точка подключена к плюсу питания). В общем две обмотки работают поочереди, со вторички снимаем практически идеальную синусоиду 220 вольт. Возможно придётся с фильтром помудрить (чтобы из ШИМ получилась синусоида), но вроде сам транс ШИМ нормально должен сгладить.
Частота будет очень стабильная (это всётаки МК).
Тут гдавное прикинуть сколько имульсов (при выбранной частоте ШИМ) должно быть за полупериод для 60 герц. Потом разделить пополам, и в этой половине каждый следующий импульс делать длиннее предыдущего (чтобы плавно до 100% увеличился), затем те-же задержки использовать в обратной последовательности (для второй половины полупериода).
У меня у самого в планах такой инвертор (только на 50 Гц), но пока временно нужда отпала.
demson писал(а):Трансформатор имеет 2 мощные обмотки с общим отводом и одинаковым количеством витков. (выдран из ups).

Всё что я написал, конечно относится к тому случаю, что транс имеет две ПЕРВИЧНЫЕ обмотки с общим выводом и еще одну вторичку. Но уверен что это именно так.

Добавлено: Ср авг 26, 2009 18:10:42
demson
так частота 60 Гц
период = 1/частота T=1/N
период будет 1/60 секунды.
полупериод T/2 1/30 секунды
пример полупериода: 2 точки от перехода через ноль до следующего перехода через ноль.
2 по 8 бит Шим работает на частоте 1Мгц (или меньше надо)
А что дальше? совсем запутался...

Добавлено: Ср авг 26, 2009 18:35:04
SeregaT
Да просто увеличивать переменную (которая отвечает за ширину импульса) после каждого импульса заданное количество раз, затем столько-же раз уменьшать. Потом то-же самое на втором выходе ШИМ.
Да можно просто задержками синус вывести. Включил - выключил, включил - выключил и т.д.

Добавлено: Ср авг 26, 2009 19:28:22
demson
то есть нам надо еще таймер считающий 180 раз в секунду?

Добавлено: Ср авг 26, 2009 19:40:58
SeregaT
Не понял... Почему именно 180 раз? Это зависит от выбранной частоты таймера.
Обычный аппаратный ШИМ (я конечно пишу про атмел, про остальные не в курсе).
Объявляется переменная, отвечающая за ширину импульса, затем цикл, который выполняется нужное нам количество раз, каждый раз при прохождении этого цикла переменная увеличивается на определённое значение и так до 100%. После определённого количества раз, выполняется следующий цикл, при прохождении которого переменная уменьшается до 0%. Затем то-же самое выполняется на втором выводе ШИМ, и погнали по новой.

Добавлено: Ср авг 26, 2009 19:49:40
demson
мне просто таймером хочется а не задержками. у таймера прерывание которое совершается 60 раз в секунду. первые 30 раз прибавляем значение шим на 255/30 потом убавляем. так? :roll:
если с задержками то ждем 1/60 сек прибавляем ждем прибавляем потом убавляем 1/60 сек. все это в циклах. нет. неправильно! таймер должен считать 255/30*60=510 раз в секунду

Добавлено: Ср авг 26, 2009 20:12:14
SeregaT
demson писал(а):мне просто таймером хочется а не задержками. у таймера прерывание которое совершается 60 раз в секунду. первые 30 раз прибавляем значение шим на 255/30 потом убавляем. так? :roll:

Нет, совсем не так. Вот за это время (1/120сек) мы должны несколько десятков - сотен раз увеличить ширину импульса, а затем в обратном порядке уменьшить. Это выглядит так:
Имеем цикл, который выполняется до тех пор, пока переменная не равна 100 (это число для примера). Каждый раз к переменной прибавляется единица (и того, цикл выполнится 100 раз) и затем переходим на следующий цикл, который выполняется до тех пор, пока переменная не равна 0, при этом каждый раз от переменной отнимаем единицу (значит цикл выполнится еще 100 раз в обратном порядке). Ну а полученная переменная управляет аппаратным ШИМ.

если с задержками то ждем 1/60 сек прибавляем ждем прибавляем потом убавляем 1/60 сек. все это в циклах.

То-же нет, задержки должны быть намного меньше чем 1/60 сек. Тут посчитать наверное легче, чем в первом варианте, но много задержек не сделаешь, поэтому синусоида буден корявая (наверное ступенчатая получится).

Добавлено: Ср авг 26, 2009 20:35:43
demson
нас интересует регистр osr?
давай на код перейдем а то я так и не пойму на словах что надо.

Код: Выделить всё

Flag_sum=1;

прерывание таймера{
if (Flag_sum){
 OCR1AL++;
     if ( Sin > 100 ){
       Flag_sum=0
     }
}else{
OCR1AL--;
      if ( Sin = 0 ){
     Flag_sum=1;
     }
}

Добавлено: Ср авг 26, 2009 20:42:53
SeregaT
Вот надо подумать по поводу кода. Но это завтра....
Тока я не спец по программированию. Начинающий любитель :)

Добавлено: Ср авг 26, 2009 20:50:58
demson
тогда на простом алгоритмическом напиши. мне непонятен принцип работы.
по порядку:
надо чтобы было 60 (Гц) изменений в секунду. В каждом изменении будет происходить перебор параметра от 0 до 255. потом обратно.
ИЛИ
надо чтобы было 60*2 (Гц) изменений в секунду. В каждом изменении будет происходить перебор параметра от 0 до 255. потом обратно. 2 изменения один переход 0 255 0 - полупериод.

60*2*255*2=61 200 событий в секунду

Добавлено: Чт авг 27, 2009 05:10:38
SeregaT
Ну допустим у нас на двух выводах выводится ШИМ с известной частотой (например 25 килогерц). Надо чтобы сначала на первом выводе МК за 1/120 сек скважность изменилась от максимума до минимума и обратно. В следующие 1/120 сек происходит то-же самое на втором выводе МК.

Добавлено: Чт авг 27, 2009 11:25:07
radteh
Зачем такие сложности? Воьмите микросхему XR2206 и на выходе через ключевые транзисторы трансформатор

Добавлено: Чт авг 27, 2009 13:25:51
demson
спасибо XR2206 будем иметь в виду но все таки сначала попробуем МК... :))

вот изобразил:

Добавлено: Чт авг 27, 2009 15:23:41
SeregaT
Рисунки у Вас совершенно не правильные. Там где импульсы нарисованы, почему они с изменяющейся амплитудой? Амплитуда импульсов неизменна. Ширина и скважность импульсов изменяется, а у Вас на рисунке они не меняются. Синусоида получается уже после ЦАП (в качестве ЦАП наверное и сам трансформатор сможет работать).

Добавлено: Чт авг 27, 2009 16:26:24
demson
имелась в виду величина osr тьфу ocr.
а правильные рассуждения по поводу частоты таймера?

и вопрос к мастерам программирования :)
как на таймере сделать частоту 60,72 кГц?

Добавлено: Чт авг 27, 2009 19:09:34
SeregaT
demson писал(а):и вопрос к мастерам программирования :)
как на таймере сделать частоту 60,72 кГц?

Многовато для мосфетов. Надо будет с драйверами мутить...

Добавлено: Чт авг 27, 2009 19:13:28
demson
а сколько потянут можно использовать 4 бита от 8 битного шим.
то есть 30.36 кГц. но синус будет уже не такой четкий.