Диммирование RGB светодиодов
- Сообщения: 26
- Зарегистрирован: Сб май 16, 2015 22:42:01
Ребята делаю RGB лампу с сенсорным управлением на attiny45, т.е. уже сделал, но заметил одну проблему. В режиме перебора цветов особенно на медленной скорости заметно ступенчатое регулирование светодиодов, особенно когда один из цветов гаснет или разгорается. При высокой скорости такой эффект не заметен. ШИМ аппаратный частотой 490Гц, выходные мосфеты LR120N, rgb светодиоды 5050 выпаяны из светодиодной ленты, может проблема в светодиодах из-за их инерционности?
- Реклама
а частоту шима поднять? Сколько раз имел дело с RGB, все более менее плавно было
- Сообщения: 26
- Зарегистрирован: Сб май 16, 2015 22:42:01
Пробовал, не помогает
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Светодиоды - не лампочка, у них нет инерции.может проблема в светодиодах из-за их инерционности?
Проверьте, корректно ли реализован сам перебор значений ШИМ. Возможно, из-за какой-либо ошибки интервал перебора больше, чем надо.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 26
- Зарегистрирован: Сб май 16, 2015 22:42:01
Имел ввиду малую инерционность светодиодовYS писал(а):Светодиоды - не лампочка, у них нет инерции.может проблема в светодиодах из-за их инерционности?![]()
- Реклама
- Сообщения: 26
- Зарегистрирован: Сб май 16, 2015 22:42:01
Попробую в основном цикле оставить только функцию перебора цветовYS писал(а):Проверьте, корректно ли реализован сам перебор значений ШИМ. Возможно, из-за какой-либо ошибки интервал перебора больше, чем надо.
- Сообщения: 26
- Зарегистрирован: Сб май 16, 2015 22:42:01
Оставил только цикл перебора, все равно разгорается ступеньками
проблема в малой разрядности ШИМа. наверняка используете 8-битный режим - этого неостаточно.
характеристика яркости светодиода весьма нелинейна, причем особенно в области малых токов, поэтому изменение ШИМ-а на 1 приводит к существенному скачку яркости, заметному на глаз.
по-моему, побороть это при 8-битном ШИМе не получится.
характеристика яркости светодиода весьма нелинейна, причем особенно в области малых токов, поэтому изменение ШИМ-а на 1 приводит к существенному скачку яркости, заметному на глаз.
по-моему, побороть это при 8-битном ШИМе не получится.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 26
- Зарегистрирован: Сб май 16, 2015 22:42:01
Вот кусок кода, может что не так делаю
Код: Выделить всё
#define F_CPU 8000000
#include <avr/io.h>
#include <avr/interrupt.h>
uint8_t H, S, V;
volatile uint8_t color_update;
uint8_t r, g, b;
void hsv_to_rgb(void)
{
uint8_t i, f, p, q, t;
if( S == 0 )
{
OCR0A = OCR1B = OCR1A = V;
}
else
{
i = H/43;
f = H%43;
p = (V * (255 - S))/256;
q = (V * ((10710 - (S * f))/42))/256;
t = (V * ((10710 - (S * (42 - f)))/42))/256;
switch(i)
{
case 0:
r = V; g = t; b = p; break;
case 1:
r = q; g = V; b = p; break;
case 2:
r = p; g = V; b = t; break;
case 3:
r = p; g = q; b = V; break;
case 4:
r = t; g = p; b = V; break;
case 5:
default:
r = V; g = p; b = q; break;
}
}
cli();
OCR0A = r; OCR1B = g; OCR1A = b;
sei();
}
ISR(TIM0_OVF_vect)
{
color_update++;
}
int main(void)
{
DDRB |= (1 << PB4)|(1 << PB1)|(1 << PB0);
TCCR0A |= (1 << COM0A1)|(1<<WGM00)|(1<<WGM01);
TCCR0B |= (1<<CS01)|(1<<CS00);
OCR1C = 0xFF;
TCCR1 |= (1 << COM1A1)|(1<<PWM1A)|(1<<CS12)|(1<<CS11)|(1<<CS10);
GTCCR |= (1 << COM1B1)|(1<<PWM1B)|(1<<PSR1)|(1<<PSR0);
TIMSK |= (1 << TOIE0);
OCR0A = 0;
OCR1B = 0;
OCR1A = 0;
sei();
V = 255;
S = 255;
H = 0;
while(1)
{
if(color_update > 100)
{
color_update = 0;
H++;
hsv_to_rgb();
}
}
}
Странно, что Вы не заметили предыдущего сообщения :AntonChip писал(а):может что не так делаю
ARV писал(а):проблема в малой разрядности ШИМа. наверняка используете 8-битный режим - этого неостаточно.
- Сообщения: 26
- Зарегистрирован: Сб май 16, 2015 22:42:01
Решил проблему использовав модель HSV->RGB на 768 цветов вместо 255, регулирование ступеньками исчезло, причем ШИМ 8 битный
Тему можно закрывать
Тему можно закрывать


