Частота ШИМ

Изменить частоту

Ответить
lisenok425
Рядовой
Сообщения: 4
Зарегистрирован: 17.01.2019{, 14:03}
Репутация: 0
Имя: Александр

Частота ШИМ

#1

Сообщение lisenok425 » 17.01.2019{, 14:25}

Добрый день!
Такой вопрос нужно поднять частоту шим выше порога слышимости, как это можно реализовать?
Есть вентилятор который должен постепенно раскручиваться но на малых оборотах стоит сильный писк от ШИМА.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Частота ШИМ

#2

Сообщение Sancho » 17.01.2019{, 15:20}

lisenok425, Какой пин? в проекте есть прерывания, аппаратные таймеры...?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

lisenok425
Рядовой
Сообщения: 4
Зарегистрирован: 17.01.2019{, 14:03}
Репутация: 0
Имя: Александр

Частота ШИМ

#3

Сообщение lisenok425 » 17.01.2019{, 15:23}

Sancho писал(а):
17.01.2019{, 15:20}
lisenok425, Какой пин? в проекте есть прерывания, аппаратные таймеры...?
Таймеров нет
Вложения
Снимок3.PNG
Снимок3.PNG (9.75 КБ) 937 просмотров

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Частота ШИМ

#4

Сообщение Sancho » 17.01.2019{, 15:30}

Для 3 или 11 пина добавьте в setup
TCCR2B = TCCR2B & 0xF9;
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

lisenok425
Рядовой
Сообщения: 4
Зарегистрирован: 17.01.2019{, 14:03}
Репутация: 0
Имя: Александр

Частота ШИМ

#5

Сообщение lisenok425 » 17.01.2019{, 15:37}

Sancho писал(а):
17.01.2019{, 15:30}
Для 3 или 11 пина добавьте в setup
TCCR2B = TCCR2B & 0xF9;
А для 9-10 пина как быть? и не поможет случаем блок Операция умножения (MUL) если поставить на выходе?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Частота ШИМ

#6

Сообщение Sancho » 17.01.2019{, 15:39}

lisenok425 писал(а):
17.01.2019{, 15:37}
Sancho писал(а):
17.01.2019{, 15:30}
Для 3 или 11 пина добавьте в setup
TCCR2B = TCCR2B & 0xF9;
А для 9-10 пина как быть? и не поможет случаем блок Операция умножения (MUL) если поставить на выходе?
TCCR1B = TCCR1B & 0xF9;

Отправлено спустя 1 минуту 24 секунды:
Sancho писал(а):
17.01.2019{, 15:20}
lisenok425, Какой пин? ....
Вроде сразу спросил - нет, диалог затягивается :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

Частота ШИМ

#7

Сообщение RedSky » 17.01.2019{, 15:49}

lisenok425, посмотрите здесь viewtopic.php?f=89&t=2967
Но имейте ввиду - для работы шим (на любой частоте) таймер, который обслуживает шим (один таймер - два пина шим) не должен быть использоватся для других задач (серво, звук, прерывания по таймеру, некоторые блоки пользователя).

lisenok425
Рядовой
Сообщения: 4
Зарегистрирован: 17.01.2019{, 14:03}
Репутация: 0
Имя: Александр

Частота ШИМ

#8

Сообщение lisenok425 » 17.01.2019{, 19:09}

нашел инфу может кому еще пригодится.

Частота ШИМ'а на ногах 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;
...
...

valand
Рядовой
Сообщения: 63
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 13
Имя: Андрей

Частота ШИМ

#9

Сообщение valand » 01.02.2019{, 18:39}

вот вставлял тоже самое в блок, что бы не писать каждый раз вручную
download/file.php?id=11952

vfear
Рядовой
Сообщения: 93
Зарегистрирован: 30.01.2019{, 14:56}
Репутация: 1
Имя: Владимир

Частота ШИМ

#10

Сообщение vfear » 29.08.2019{, 11:30}

Подниму тему, управляю мотором через драйвер BTS7960 и мощным коллекторным двигателем.
На низких скоростях писк.

Если увеличивать частоту шим - то как расчитывать на сколько?
Есть ли какие то негативные последствия от этого?

Как я понял в сетап добавить, например так:
// Пины D9 и D10 - 62.5 кГц
TCCR1A = 0b00000001; // 8bit
TCCR1B = 0b00001001; // x1 fast pwm

Или на максимум лучше не выставлять ШИМ?

Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

Частота ШИМ

#11

Сообщение RedSky » 29.08.2019{, 16:09}

vfear, высокая частота - больше греются ключи. Попробуйте частоту менее 100гц. А для изменения частоты есть готовые блоки viewtopic.php?f=89&t=2967

Ответить

Вернуться в «Помогите, а то я "нимагу"»