Экспериментирую с частотой ШИМ на Arduino Nano. Ардуинка китайская, но довольно качественная (RobotDyn).
Попробовал как с записью в регистры:
TCCR1A = 0b00000001; // 8bit
TCCR1B = 0b00000001; // x1 phase correct Пины D9 и D10 - 31.4 кГц
так и с помощью библиотеки GyverPWM.h:
PWM_prescaler(9, 1); // установить частоту ШИМ на пине D9 равной 7.8 кГц (см. таблицу №2 в GyverPWM.h)
или так:
PWM_frequency(9, 20000, FAST_PWM); // запустить ШИМ на D9 с частотой 20000 Гц, режим FAST_PWM
также пробовал и другие настройки библиотеки.
Частота меняется (осциллографа нет, но я ШИМ-ом регулирую яркость LED ленты и вижу мерцание через камеру на низких частотах). Но не могу понять, почему при повышении частоты, разрешение падает до буквально 10 шагов. То есть, если по дефолту у меня есть регулировка в диапазоне 0-255, то при повышении частоты регулировка ШИМ работает, например, от 0 до 12 (на 12 лента уже светит на максимум). Пробовал повышать битность с помощью библиотеки, вроде что-то меняется, но все равно работает как-то не предсказуемо.
Грешил на саму плату, но даже на относительно невысокой частоте:
PWM_frequency(9, 1000, FAST_PWM); // частота 1000 Гц (с помощью библиотеки GyverPWM)
или даже на 500 Гц, регулировка все равно неадекватная: при 8 бит глубине регулировка яркости ленты идет от 0 до 100 (при 100 лента светит примерно на половину мощности), дальше от 100 до 255 ничего не меняется, а потом только на 255 включается на полную.
Для регулировки использую модуль c MOSFET IRF540N.
Подскажите, в чем может быть дело?
Попробовал как с записью в регистры:
TCCR1A = 0b00000001; // 8bit
TCCR1B = 0b00000001; // x1 phase correct Пины D9 и D10 - 31.4 кГц
так и с помощью библиотеки GyverPWM.h:
PWM_prescaler(9, 1); // установить частоту ШИМ на пине D9 равной 7.8 кГц (см. таблицу №2 в GyverPWM.h)
или так:
PWM_frequency(9, 20000, FAST_PWM); // запустить ШИМ на D9 с частотой 20000 Гц, режим FAST_PWM
также пробовал и другие настройки библиотеки.
Частота меняется (осциллографа нет, но я ШИМ-ом регулирую яркость LED ленты и вижу мерцание через камеру на низких частотах). Но не могу понять, почему при повышении частоты, разрешение падает до буквально 10 шагов. То есть, если по дефолту у меня есть регулировка в диапазоне 0-255, то при повышении частоты регулировка ШИМ работает, например, от 0 до 12 (на 12 лента уже светит на максимум). Пробовал повышать битность с помощью библиотеки, вроде что-то меняется, но все равно работает как-то не предсказуемо.
Грешил на саму плату, но даже на относительно невысокой частоте:
PWM_frequency(9, 1000, FAST_PWM); // частота 1000 Гц (с помощью библиотеки GyverPWM)
или даже на 500 Гц, регулировка все равно неадекватная: при 8 бит глубине регулировка яркости ленты идет от 0 до 100 (при 100 лента светит примерно на половину мощности), дальше от 100 до 255 ничего не меняется, а потом только на 255 включается на полную.
Для регулировки использую модуль c MOSFET IRF540N.
Подскажите, в чем может быть дело?
Изменено: