Increase PWM frequency for MOSFET
По умолчанию частота ШИМ 480 Гц, что даёт ощутимые мерцания. Поднятие частоты решает проблему

Попробовал твой фикс, но лучше не стало. всё, что не постоянный сигнал - сплошной стробоскоп.
При частоте 4кГц (этот патч делает именно такую) мерцаний нет – инфа 100% Может зависеть от платформы Ардуино и используемого мосфета. Проверь, что частота реально изменилась и на затворе и на стоке мосфета, если есть чем :)
а как реализовать поддержку 65536 уровней яркости? реально ли в текущей прошивке?
Если ардуино на STM32, то там АЦП 16-битный и, соответственно будет 65536 градаций.
А если прикрутить программный 16-битный ШИМ? Вот этот вариант у меня работал в моей упрощенной версии рассвета, но что-то не получается к этому умному рассвету прикрутить:
void setup()
{
cli();
DDRB |= 1<<1 | 1<<2;
PORTB &= ~(1<<1 | 1<<2);
TCCR1A = 0b00000010;
//TCCR1A = 0b10100010;
TCCR1B = 0b00011001;
ICR1H = 255;
ICR1L = 255;
sei();
Serial.begin(9600);
}
void loop()
{
if(Serial.available())
{
char c = Serial.read();
uint16_t pwm = Serial.parseInt();
if(c == 'A')
{
pwm ? TCCR1A|=1<<7 : TCCR1A&=~(1<<7);
OCR1AH = highByte(pwm);
OCR1AL = lowByte(pwm);
}
if(c == 'B')
{
pwm ? TCCR1A|=1<<5 : TCCR1A&=~(1<<5);
OCR1BH = highByte(pwm);
OCR1BL = lowByte(pwm);
}
}
}
Я не так силён в этом вопросе, потому сходу подсказать не смогу – нужно разбираться. Вопрос из интереса: зачем столько градаций?
Это позволяет более плавно менять яркость, а не рывками. В промежутке 1-50 из 255 это очень заметно и не в полной мере имитирует рассвет: каждые 12 сек (при получасовом рассвете) яркость меняется рывком. При использовании 16-битного ШИМ (использую обычную светодиодную ленту 12В, которая наклеена по периметру окна) оптимальный по ощущениям диапазон при линейном изменении яркости – это 1-25000 из 65535 на 30 минут рассвета. В идеале, конечно, скважность ШИМ вообще стоит менять по некой кривой, т.к. восприятие яркости человеком нелинейно, но и простое увеличение уровней яркости тоже даёт хороший эффект.
Да, я замечал что рывками получается, но когда спишь, это не заметно :)