Страница 1 из 1
Частота ШИМ
Добавлено: 17 янв 2019, 14:25
lisenok425
Добрый день!
Такой вопрос нужно поднять частоту шим выше порога слышимости, как это можно реализовать?
Есть вентилятор который должен постепенно раскручиваться но на малых оборотах стоит сильный писк от ШИМА.
Частота ШИМ
Добавлено: 17 янв 2019, 15:20
Sancho
[ref]lisenok425[/ref], Какой пин? в проекте есть прерывания, аппаратные таймеры...?
Частота ШИМ
Добавлено: 17 янв 2019, 15:23
lisenok425
Sancho писал(а): 17 янв 2019, 15:20[ref]lisenok425[/ref], Какой пин? в проекте есть прерывания, аппаратные таймеры...?
Таймеров нет
Частота ШИМ
Добавлено: 17 янв 2019, 15:30
Sancho
Для 3 или 11 пина добавьте в setup
TCCR2B = TCCR2B & 0xF9;
Частота ШИМ
Добавлено: 17 янв 2019, 15:37
lisenok425
Sancho писал(а): 17 янв 2019, 15:30Для 3 или 11 пина добавьте в setup
TCCR2B = TCCR2B & 0xF9;
А для 9-10 пина как быть? и не поможет случаем блок Операция умножения (MUL) если поставить на выходе?
Частота ШИМ
Добавлено: 17 янв 2019, 15:40
Sancho
lisenok425 писал(а): 17 янв 2019, 15:37Sancho писал(а): 17 янв 2019, 15:30Для 3 или 11 пина добавьте в setup
TCCR2B = TCCR2B & 0xF9;
А для 9-10 пина как быть? и не поможет случаем блок Операция умножения (MUL) если поставить на выходе?
TCCR1B = TCCR1B & 0xF9;
Отправлено спустя 1 минуту 24 секунды:
Sancho писал(а): 17 янв 2019, 15:20[ref]lisenok425[/ref], Какой пин? ....
Вроде сразу спросил - нет, диалог затягивается

Частота ШИМ
Добавлено: 17 янв 2019, 15:49
RedSky
[ref]lisenok425[/ref], посмотрите здесь
viewtopic.php?f=89&t=2967
Но имейте ввиду - для работы шим (на любой частоте) таймер, который обслуживает шим (один таймер - два пина шим) не должен быть использоватся для других задач (серво, звук, прерывания по таймеру, некоторые блоки пользователя).
Частота ШИМ
Добавлено: 17 янв 2019, 19:09
lisenok425
нашел инфу может кому еще пригодится.
Частота ШИМ'а на ногах 5 и 6:
Код:
Константа Делитель Частота(Гц)
0x01 1 62500
0x02 8 7812.5
0x03 64 976.5625
0x04 256 244.140625
0x05 1024 61.03515625
В Setup пишем строчку: TCCR0B = TCCR0B & 0b11111000 | <Константа>;
, где <Константа> - значение из таблицы без угловых скобок.
Частота ШИМ'а на ногах 9 и 10:
Код:
Константа Делитель Частота(Гц)
0x01 1 31250
0x02 8 3906.25
0x03 64 488.28125
0x04 256 122.0703125
0x05 1024 30.517578125
В Setup пишем строчку: TCCR1B = TCCR1B & 0b11111000 | <Константа>;
Частота ШИМ'а на ногах 11 и 3:
Код:
Константа Делитель Частота(Гц)
0x01 1 31250
0x02 8 3906.25
0x03 32 976.5625
0x04 64 488.28125
0x05 128 244.140625
0x06 256 122.0703125
0x07 1024 30.517578125
В Setup пишем строчку: TCCR2B = TCCR2B & 0b11111000 | <Константа>;
Все тайминги и частоты приведены для штатной частоты 16Мгц микроконтроллера ATMEGA328
Т.е. я получил частоту ШИМ'а на 9, 10, 11 и 3 ногах около 4кГц путем добавления в секцию инциализации двух строк:
Код:
void setup()
{
TCCR1B = TCCR1B & 0b11111000 | 0x02;
TCCR2B = TCCR2B & 0b11111000 | 0x02;
...
...
Частота ШИМ
Добавлено: 01 фев 2019, 18:39
valand
вот вставлял тоже самое в блок, что бы не писать каждый раз вручную
download/file.php?id=11952
Частота ШИМ
Добавлено: 29 авг 2019, 11:30
vfear
Подниму тему, управляю мотором через драйвер BTS7960 и мощным коллекторным двигателем.
На низких скоростях писк.
Если увеличивать частоту шим - то как расчитывать на сколько?
Есть ли какие то негативные последствия от этого?
Как я понял в сетап добавить, например так:
// Пины D9 и D10 - 62.5 кГц
TCCR1A = 0b00000001; // 8bit
TCCR1B = 0b00001001; // x1 fast pwm
Или на максимум лучше не выставлять ШИМ?
Частота ШИМ
Добавлено: 29 авг 2019, 16:09
RedSky
[ref]vfear[/ref], высокая частота - больше греются ключи. Попробуйте частоту менее 100гц. А для изменения частоты есть готовые блоки
viewtopic.php?f=89&t=2967