Менять амплитуду синусоиды полученной с помощью ШИМ.

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Сообщение astrgan »

Как можно менять амплитуду синусоиды которая производится с помощью шим (на avr)?
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1327
Зарегистрирован: Вс дек 11, 2011 05:43:30
Откуда: Екатеринодар

Сообщение conler »

Вопрос "ниочем".
Можно самим контроллером, можно делителем, можно ОУ
Реклама
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Сообщение astrgan »

Просто шим на делитель подавать?
А если с помощью мк, то надо увеличивать время между импульсами? Можно типа таймер (с помощью которого генерируется шим) приостанавливать?
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1327
Зарегистрирован: Вс дек 11, 2011 05:43:30
Откуда: Екатеринодар

Сообщение conler »

astrgan писал(а):...А если с помощью мк, то надо увеличивать время между импульсами?...
Прочитайте заново что есть ШИМ, внимательнее, возможно иными словами, с другого источника. Вообще если нужен конкретный ответ - необходим конкретный, предметный (не типа "вообще") вопрос. Это очевидно...
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Аватара пользователя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Сообщение menzoda »

Нет, время между импульсами не надо трогать - это есть несущая частота ШИМ и ее обычно не трогают. Просто по-другому вычисляется скважность импульсов. Например, если скважность изменять по синусоидальному закону в пределах от 0 до 100% - получим синусоиду максимальной амплитуды. Если она будет изменяться в пределах от 40% до 60%, или от 0% до 20% (то есть с меньшим "размахом"), то и амплитуда синусоиды будет меньше.
Реклама
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Сообщение astrgan »

menzoda

А можно поподробней?
Пожалуйста.
Последний раз редактировалось astrgan Ср ноя 14, 2012 08:43:59, всего редактировалось 1 раз.
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Нет. Просто значение из таблицы синуса умножить на K, где 0 < K < 1
K и будет ваша амплитуда.
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Сообщение astrgan »

Спасибо!
А таким способом получится менять амплитуду пропорциональна частоте?
Например я хочу уменьшить частоту и амплитуду в N раз.
Хотя ладно сделаю и посмотрю что получится.
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Да если это делается программно, то как хотите так и меняйте. Всё сводится к чистой математике.
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Сообщение astrgan »

ploop писал(а): 0 < K < 1
Придется использовать float?
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

А вот как реализовать - это уже другой вопрос :)))
Смотря на чём пишите (может, на ассемблере), какими порогами надо менять амплитуду (возможно подойдут обычные сдвиги), может и флоат сойдёт, если есть время и память, и т.д.
Для начала попробуйте поделить на 2 (сдвинуть вправо на 1 бит), если получится - думаем дальше.
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

astrgan писал(а):
ploop писал(а): 0 < K < 1
Придется использовать float?
Интересно, а зачем тут флоат нужен ?
Представьте свой коэфф. в виде дроби, и всё сразу "встанет на свои места". :)
Контактная информация:
Ответить

Вернуться в «AVR»