|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:40 am
|
Страница 1 от 1
|
[ 5 мнения ] |
|
| Автор |
Съобщение |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 RGB LED
Имам принципен въпрос, относно начините за управление на цветовете на RGB светодиоди. Опитвах различни варианти, но нито един не дава достатъчно добър резултат. Последното, на което се спрях, беше следното: един PWM, целият цикъл е с продължителност 255 импулса. Така всеки от цветовете може да има стойност 0-255. На всеки цикъл се прави проверка за всеки цвят, дали е достигнал зададената стойност. Ако например R=20, G=50, B=200, то на 20-ия цикъл се изключва червеният цвят, на 50-тия - зеленият, а на 200 - синият. Броячът завършва цикъла до края, така че от 201 до 255 ще бъде пауза. Но не се получават много смислено цветовете при този вариант.
Искам да питам, дали някой знае по-удачен начин за постигане на цветове с RGB LED?
|
| Вто Май 18, 2010 12:57 pm |
|
 |
|
kasparov
Ранг: Почетен член
Регистриран на: Сря Апр 05, 2006 9:52 pm Мнения: 877 Местоположение: Разград
|
|
| Вто Май 18, 2010 1:50 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
Благодаря за препратката. Все пак, най-сносното предложено решение е подобно на моето. Обаче, само с чисто математическо преобразуване няма да стане... Доста теми изчетох, а и доста си поиграх, преди да питам тук. Промяната на цвета при LED е най-забележима при стойности 0-128. От 128 до 255 почти не се забелязва разлика. Значи, самата промяна не е линейна. Не искам да правя преливане на цветове, а да повторя прочетения цвят от сензор за цветове ADJD-S371-Q999 на LED. Първоначално опитах да зададавам времената за всеки цвят, като го разделя на 4 (данните от сензора са 10-битови). Но резултатът е далеч от истината. Някой работил ли е с такъв сензор? Използвах базовата програма от примера и я преведох на MikroC. Работи, макар че не "познава" цветвете по най-добрия начин, защото има нужда от калибриране, което нещо не успявам да схвана как да направя. Сега имам два проблема: как да калибрирам сензора и как да получа копие на прочетения цвят.
|
| Вто Май 18, 2010 3:28 pm |
|
 |
|
sv_shady
Ранг: Популярен
Регистриран на: Сря Окт 11, 2006 8:19 pm Мнения: 373 Местоположение: София/Edinburgh, UK
|
Успях да видя само че сензора е цифров, не успях да намеря какво може да си приказваш с него. Та в този ред на мисли каква информация получаваш за цвета от сензора ? Попринцип за фиксиране на цветове се ползва гама корекция. Друго нещо, което мога да предложа е да пробваш да минеш в HSL color space, има разказано в уикито подробно как става. И да си поиграеш с нюанса, пък после осветеността и сатурацията лесно ще ги докараш.
|
| Вто Май 18, 2010 4:37 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
Получавам 10-битова стойност за всеки цвят + осветеност, която е записана в по два регистъра. Комуникацията е през I2C. Работата със сензора е доста завъртяна и има малко използваема информация по въпроса. Изисква се калибриране на сензора, спрямо околната светлина. Трябваше ми месец, преди да започна да го чета. Все не искаше да отговаря на опитите за комуникация. Сега получавам стойности и на моменти точно реагира за даден основен цвят. Но като цяло не се държи прецизно, вероятно заради калибрирането.
-----------
Открих доста наивна грешка в програмата. Всъщност, в момента резултатът, макар и далеч от идеалното, е доста поносим.
|
| Вто Май 18, 2010 5:43 pm |
|
|
|
Страница 1 от 1
|
[ 5 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|