Менять амплитуду синусоиды полученной с помощью ШИМ.
- Сообщения: 103
- Зарегистрирован: Чт мар 08, 2012 01:13:30
Как можно менять амплитуду синусоиды которая производится с помощью шим (на avr)?
- Реклама
Вопрос "ниочем".
Можно самим контроллером, можно делителем, можно ОУ
Можно самим контроллером, можно делителем, можно ОУ
- Сообщения: 103
- Зарегистрирован: Чт мар 08, 2012 01:13:30
Просто шим на делитель подавать?
А если с помощью мк, то надо увеличивать время между импульсами? Можно типа таймер (с помощью которого генерируется шим) приостанавливать?
А если с помощью мк, то надо увеличивать время между импульсами? Можно типа таймер (с помощью которого генерируется шим) приостанавливать?
Прочитайте заново что есть ШИМ, внимательнее, возможно иными словами, с другого источника. Вообще если нужен конкретный ответ - необходим конкретный, предметный (не типа "вообще") вопрос. Это очевидно...astrgan писал(а):...А если с помощью мк, то надо увеличивать время между импульсами?...
- Сообщения: 535
- Зарегистрирован: Вт авг 28, 2012 22:21:33
Нет, время между импульсами не надо трогать - это есть несущая частота ШИМ и ее обычно не трогают. Просто по-другому вычисляется скважность импульсов. Например, если скважность изменять по синусоидальному закону в пределах от 0 до 100% - получим синусоиду максимальной амплитуды. Если она будет изменяться в пределах от 40% до 60%, или от 0% до 20% (то есть с меньшим "размахом"), то и амплитуда синусоиды будет меньше.
- Реклама
Нет. Просто значение из таблицы синуса умножить на K, где 0 < K < 1
K и будет ваша амплитуда.
K и будет ваша амплитуда.
- Сообщения: 103
- Зарегистрирован: Чт мар 08, 2012 01:13:30
Спасибо!
А таким способом получится менять амплитуду пропорциональна частоте?
Например я хочу уменьшить частоту и амплитуду в N раз.
Хотя ладно сделаю и посмотрю что получится.
А таким способом получится менять амплитуду пропорциональна частоте?
Например я хочу уменьшить частоту и амплитуду в N раз.
Хотя ладно сделаю и посмотрю что получится.
Да если это делается программно, то как хотите так и меняйте. Всё сводится к чистой математике.
- Сообщения: 103
- Зарегистрирован: Чт мар 08, 2012 01:13:30
Придется использовать float?ploop писал(а): 0 < K < 1
А вот как реализовать - это уже другой вопрос
Смотря на чём пишите (может, на ассемблере), какими порогами надо менять амплитуду (возможно подойдут обычные сдвиги), может и флоат сойдёт, если есть время и память, и т.д.
Для начала попробуйте поделить на 2 (сдвинуть вправо на 1 бит), если получится - думаем дальше.
Смотря на чём пишите (может, на ассемблере), какими порогами надо менять амплитуду (возможно подойдут обычные сдвиги), может и флоат сойдёт, если есть время и память, и т.д.
Для начала попробуйте поделить на 2 (сдвинуть вправо на 1 бит), если получится - думаем дальше.
Интересно, а зачем тут флоат нужен ?astrgan писал(а):Придется использовать float?ploop писал(а): 0 < K < 1
Представьте свой коэфф. в виде дроби, и всё сразу "встанет на свои места".


