Страница 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 или аналогичные по функционалу, а управляйть ими можете хоть из космоса.

Необходимо получить на выходе 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
}
Особо в этом не силён. И незнаю получтся ли:))