| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| RGB LED http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=7822 |
Страница 1 от 1 |
| Автор: | E1 [ Вто Май 18, 2010 12:57 pm ] |
| Заглавие: | RGB LED |
Имам принципен въпрос, относно начините за управление на цветовете на RGB светодиоди. Опитвах различни варианти, но нито един не дава достатъчно добър резултат. Последното, на което се спрях, беше следното: един PWM, целият цикъл е с продължителност 255 импулса. Така всеки от цветовете може да има стойност 0-255. На всеки цикъл се прави проверка за всеки цвят, дали е достигнал зададената стойност. Ако например R=20, G=50, B=200, то на 20-ия цикъл се изключва червеният цвят, на 50-тия - зеленият, а на 200 - синият. Броячът завършва цикъла до края, така че от 201 до 255 ще бъде пауза. Но не се получават много смислено цветовете при този вариант. Искам да питам, дали някой знае по-удачен начин за постигане на цветове с RGB LED? |
|
| Автор: | kasparov [ Вто Май 18, 2010 1:50 pm ] |
| Заглавие: | |
дискусия за RGB алгоритъм |
|
| Автор: | E1 [ Вто Май 18, 2010 3:28 pm ] |
| Заглавие: | |
Благодаря за препратката. Все пак, най-сносното предложено решение е подобно на моето. Обаче, само с чисто математическо преобразуване няма да стане... Доста теми изчетох, а и доста си поиграх, преди да питам тук. Промяната на цвета при LED е най-забележима при стойности 0-128. От 128 до 255 почти не се забелязва разлика. Значи, самата промяна не е линейна. Не искам да правя преливане на цветове, а да повторя прочетения цвят от сензор за цветове ADJD-S371-Q999 на LED. Първоначално опитах да зададавам времената за всеки цвят, като го разделя на 4 (данните от сензора са 10-битови). Но резултатът е далеч от истината. Някой работил ли е с такъв сензор? Използвах базовата програма от примера и я преведох на MikroC. Работи, макар че не "познава" цветвете по най-добрия начин, защото има нужда от калибриране, което нещо не успявам да схвана как да направя. Сега имам два проблема: как да калибрирам сензора и как да получа копие на прочетения цвят. |
|
| Автор: | sv_shady [ Вто Май 18, 2010 4:37 pm ] |
| Заглавие: | |
Успях да видя само че сензора е цифров, не успях да намеря какво може да си приказваш с него. Та в този ред на мисли каква информация получаваш за цвета от сензора ? Попринцип за фиксиране на цветове се ползва гама корекция. Друго нещо, което мога да предложа е да пробваш да минеш в HSL color space, има разказано в уикито подробно как става. И да си поиграеш с нюанса, пък после осветеността и сатурацията лесно ще ги докараш. |
|
| Автор: | E1 [ Вто Май 18, 2010 5:43 pm ] |
| Заглавие: | |
Получавам 10-битова стойност за всеки цвят + осветеност, която е записана в по два регистъра. Комуникацията е през I2C. Работата със сензора е доста завъртяна и има малко използваема информация по въпроса. Изисква се калибриране на сензора, спрямо околната светлина. Трябваше ми месец, преди да започна да го чета. Все не искаше да отговаря на опитите за комуникация. Сега получавам стойности и на моменти точно реагира за даден основен цвят. Но като цяло не се държи прецизно, вероятно заради калибрирането. ----------- Открих доста наивна грешка в програмата. Всъщност, в момента резултатът, макар и далеч от идеалното, е доста поносим. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|