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

Необходимо получить на выходе 2х портов PWМ сигнал и сигнал сдвинутый по фазе на 180*

Добавлено: 10 апр 2019, 12:53
Grafsaxar
Добрый день!

Необходимо получить на выходе 2х портов PWМ сигнал и сигнал сдвинутый по фазе на 180*, скважность = 2 (то есть 50% заполнение цикла, примерно как управление у инверторов). Ну а потом возможность регулировки скважности этих сигналов от 0,01 до 1. Какими функциями можно управлять ШИМом?

Между переключениями надо выдержать пару миллисекунд паузу чтоб не было короткого замыкания.(защита от сквоздного тока )
Meander2.JPG
Meander1.JPG

Необходимо получить на выходе 2х портов PWМ сигнал и сигнал сдвинутый по фазе на 180*

Добавлено: 10 апр 2019, 13:17
Sancho
[ref]Grafsaxar[/ref], Просто улыбнуло. Текст и картинка :)
[spoiler]
Meander02.png
[/spoiler]
По делу - читать о таймерах. Не здесь.

Необходимо получить на выходе 2х портов PWМ сигнал и сигнал сдвинутый по фазе на 180*

Добавлено: 10 апр 2019, 13:34
Grafsaxar
Sancho писал(а): 10 апр 2019, 13:17 Grafsaxar, Просто улыбнуло. Текст и картинка
ОГОГО. Тормознул немного. бабах нам ненужен.

За последний месяц уже много мосфетов бабахнул, вот и решил создать тему:)))

Необходимо получить на выходе 2х портов PWМ сигнал и сигнал сдвинутый по фазе на 180*

Добавлено: 10 апр 2019, 16:34
Sancho
О таймерах очень хорошо написано. Нужно для двух выходов думать.... Или взять готовое, наверняка есть.

Отправлено спустя 2 часа 46 минут 31 секунду:
[ref]Grafsaxar[/ref], Чего ещё будет в проекте?
Можно тупо в цикле расписать :)

Необходимо получить на выходе 2х портов PWМ сигнал и сигнал сдвинутый по фазе на 180*

Добавлено: 10 апр 2019, 17:22
Grafsaxar
Вообще то мне это надо для DC/AC преобразователя.
Это относится к моему проекту с часами. Там переменка нужна. Да может и кому тоже интересно будет.
Насчёт дёргать ногами я уже тоже думал. Но неохото ресурсы на это использовать. Думал может кто уже делал это на ши
ме. И посоветует как это аппаратно реализовать.

Необходимо получить на выходе 2х портов PWМ сигнал и сигнал сдвинутый по фазе на 180*

Добавлено: 10 апр 2019, 18:04
pan
защиту от бабаха делать программно... сомнительное решение. такое надо делать используя железо. оно не так дорого
как ключи и нервы.

Необходимо получить на выходе 2х портов PWМ сигнал и сигнал сдвинутый по фазе на 180*

Добавлено: 10 апр 2019, 18:35
Dev1
Когда вам надоест бабахать мосфеты поставьте специализированные для этих целей шим-контроллер типа TL494 или аналогичные по функционалу, а управляйть ими можете хоть из космоса. :fie:

Необходимо получить на выходе 2х портов PWМ сигнал и сигнал сдвинутый по фазе на 180*

Добавлено: 11 апр 2019, 10:37
Grafsaxar
Dev1 писал(а): 10 апр 2019, 18:35 шим-контроллер типа TL494
Спасибо за совет учту в будущем,но на TL494 много всякой обвязки, а охото чтото простое. Только мне пока не ястно как управлять ардуинкой шим контроллер.

Мосфетов набабахался, теперь бабахаю предохранители перед мосфетами:)))

Вчера решил попробовать сделать на L9110 и програмно им управлять.
По такой схеме
PWM.JPG
После 3 выпитых бутылок пива понял что это плохая идея.

Импульсы бегают туда-сюда. Напряжение не держит . Короче полная лажа.
На меги 328 софтовый шим на 50 гц ну никакой вообще.
Вот ´что получилось.
https://youtu.be/guGf9TqSs-I

Необходимо получить на выходе 2х портов PWМ сигнал и сигнал сдвинутый по фазе на 180*

Добавлено: 11 апр 2019, 12:14
krom23
Взгляните сюдой, хотя там о трёх фазах, но ход мысли понятен.

Необходимо получить на выходе 2х портов PWМ сигнал и сигнал сдвинутый по фазе на 180*

Добавлено: 11 апр 2019, 12:38
Grafsaxar
Спасибо за совет.

Эту тему я уже прокурил.
PCA9685 мне хорошо знаком. Делал пару вещей на нём.

Мне надо только 2 шима.

Пришла идея использовать драйвер шагового мотора. там и делитель можно ставить.
Не помню есть ли дома такие.

2 Идея :

А что если таймеры запускать не в одно время а через промежуток?

TCNT0=0;
TCNT1=50;

void setup()
{
pinMode(3, OUTPUT); // Output pin for OCR2B
pinMode(11, OUTPUT); // Output pin for OCR2A

// Set up the 250 kHz output

TCCR2A = bit(COM2A1) | bit(COM2A0) | bit(COM2B1) | bit(WGM21) | bit(WGM20); // invertierenden und non invertierenden mode für OC2A bzw OC2B
TCCR2B = bit(WGM22) | bit(CS20);
OCR2A = 63;
OCR2B = 63; //compare match Wert für OC2B
}

Особо в этом не силён. И незнаю получтся ли:))