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

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

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

Сообщение demson »

Итак после поисков готового проекта стало ясно что его нет.
Требуется при помощи 1 МК создать синус 60 Гц.

далее этот синус пойдет через транзисторы на повышающий трансформатор. таким образом получится идеальный вариант для питания бытовой техники.
Трансформатор имеет 2 мощные обмотки с общим отводом и одинаковым количеством витков. (выдран из ups).
Кто сможет помочь? Пока рассматриваю 2 варианта dds генератор и шим. 8)
в спорах рождается ИСТИНА [AND] flud.
Реклама
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18856
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

А в чем сложность? Высчитать количество импульсов за полупериод (для 60 Гц), скважность подобрать (или расчитать) думаю будет не проблема. Частоту МК задрать повыше (думаю это не повредит, точнее будет), и на один выход подавать импульсы так, чтобы ширина импульса до половины полупериода сперва несколько раз увеличилась до 100%, а потом за столько-же раз снизилась до 0. Затем эту операцию повторить на следующем выходе МК. На эти выводы посадить пару мосфетов (например подходящие из серии IRL), а на выходы мосфетов подключить выводы обмоток трансформатора, а среднюю точку обмоток посадить на +12 вольт. Думаю должно нормально работать.
Или нужны еще какие-то навороты? Ну там защита от перегрузки, обратная связь или еще чего?
Думаю частоты ШИМ килогерц 20 - 25 вполне хватит (тогда можно и без драйверов для мосфетов обойтись, да и синусоида получится практически как настоящая).
Реклама
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Сообщение demson »

наворотов не надо надо синус с не уплывающей частотой.
а зачем на 2 выводах повторять?
шим'а а думаю достаточно будет. Непонятен алгоритм действия.
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18856
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

demson писал(а):Непонятен алгоритм действия.

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

Всё что я написал, конечно относится к тому случаю, что транс имеет две ПЕРВИЧНЫЕ обмотки с общим выводом и еще одну вторичку. Но уверен что это именно так.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Сообщение demson »

так частота 60 Гц
период = 1/частота T=1/N
период будет 1/60 секунды.
полупериод T/2 1/30 секунды
пример полупериода: 2 точки от перехода через ноль до следующего перехода через ноль.
2 по 8 бит Шим работает на частоте 1Мгц (или меньше надо)
А что дальше? совсем запутался...
в спорах рождается ИСТИНА [AND] flud.
Реклама
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18856
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Да просто увеличивать переменную (которая отвечает за ширину импульса) после каждого импульса заданное количество раз, затем столько-же раз уменьшать. Потом то-же самое на втором выходе ШИМ.
Да можно просто задержками синус вывести. Включил - выключил, включил - выключил и т.д.
Реклама
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Сообщение demson »

то есть нам надо еще таймер считающий 180 раз в секунду?
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18856
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Не понял... Почему именно 180 раз? Это зависит от выбранной частоты таймера.
Обычный аппаратный ШИМ (я конечно пишу про атмел, про остальные не в курсе).
Объявляется переменная, отвечающая за ширину импульса, затем цикл, который выполняется нужное нам количество раз, каждый раз при прохождении этого цикла переменная увеличивается на определённое значение и так до 100%. После определённого количества раз, выполняется следующий цикл, при прохождении которого переменная уменьшается до 0%. Затем то-же самое выполняется на втором выводе ШИМ, и погнали по новой.
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Сообщение demson »

мне просто таймером хочется а не задержками. у таймера прерывание которое совершается 60 раз в секунду. первые 30 раз прибавляем значение шим на 255/30 потом убавляем. так? :roll:
если с задержками то ждем 1/60 сек прибавляем ждем прибавляем потом убавляем 1/60 сек. все это в циклах. нет. неправильно! таймер должен считать 255/30*60=510 раз в секунду
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18856
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

demson писал(а):мне просто таймером хочется а не задержками. у таймера прерывание которое совершается 60 раз в секунду. первые 30 раз прибавляем значение шим на 255/30 потом убавляем. так? :roll:

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

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

То-же нет, задержки должны быть намного меньше чем 1/60 сек. Тут посчитать наверное легче, чем в первом варианте, но много задержек не сделаешь, поэтому синусоида буден корявая (наверное ступенчатая получится).
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Сообщение demson »

нас интересует регистр osr?
давай на код перейдем а то я так и не пойму на словах что надо.

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

Flag_sum=1;

прерывание таймера{
if (Flag_sum){
 OCR1AL++;
     if ( Sin > 100 ){
       Flag_sum=0
     }
}else{
OCR1AL--;
      if ( Sin = 0 ){
     Flag_sum=1;
     }
}
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18856
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Вот надо подумать по поводу кода. Но это завтра....
Тока я не спец по программированию. Начинающий любитель :)
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Сообщение demson »

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

60*2*255*2=61 200 событий в секунду
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18856
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Ну допустим у нас на двух выводах выводится ШИМ с известной частотой (например 25 килогерц). Надо чтобы сначала на первом выводе МК за 1/120 сек скважность изменилась от максимума до минимума и обратно. В следующие 1/120 сек происходит то-же самое на втором выводе МК.
Аватара пользователя
radteh
Друг Кота
Сообщения: 3087
Зарегистрирован: Пт мар 09, 2007 15:01:52
Откуда: Биробиджан

Сообщение radteh »

Зачем такие сложности? Воьмите микросхему XR2206 и на выходе через ключевые транзисторы трансформатор
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Сообщение demson »

спасибо XR2206 будем иметь в виду но все таки сначала попробуем МК... :))

вот изобразил:
Вложения
.GIF
(9.37 КБ) 970 скачиваний
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18856
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Рисунки у Вас совершенно не правильные. Там где импульсы нарисованы, почему они с изменяющейся амплитудой? Амплитуда импульсов неизменна. Ширина и скважность импульсов изменяется, а у Вас на рисунке они не меняются. Синусоида получается уже после ЦАП (в качестве ЦАП наверное и сам трансформатор сможет работать).
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Сообщение demson »

имелась в виду величина osr тьфу ocr.
а правильные рассуждения по поводу частоты таймера?

и вопрос к мастерам программирования :)
как на таймере сделать частоту 60,72 кГц?
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18856
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

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

Многовато для мосфетов. Надо будет с драйверами мутить...
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Сообщение demson »

а сколько потянут можно использовать 4 бита от 8 битного шим.
то есть 30.36 кГц. но синус будет уже не такой четкий.
в спорах рождается ИСТИНА [AND] flud.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»