Pouzitie prudoveho zdroja je sice pekne, ale pri znamej zatazi a znamom napati uplne zbytocne. Prudovy zdroj by mohol mat zmysel, ak by napatie kolisalo napr. medzi 10 - 14V. Ale ak je napatie rovnych 12V(+/-) a je po celu dobu prevadzky +/- rovnake prudove zdroje akosi postradaju zmysel lebo na nastavenie prudu stacia odpory. Iba ak by si mal hrozne vela prachov za suciastky, ktore inak nepotrebujes. A to sa tyka aj desatinnej bodky, len hodnota odporu bude ina. Ak chces robit dosku pre rozne displaye, potom na nu naletujes s inym displayom aj ine odpory.
Ak by Ti aj kolisalo napatie v nejakych inteciach alebo by bol nerovnomerny svit nejakeho segmentu (co nemusi odstranit ani pouzitie zdroja prudu), jednoduchsie a lacnejsie riesenie je nasledovne:
Nech je display 4 miesny 7 segmentovy
Nech display riadi MCU.
Potom, nech kazdy segment dostane prideleny cas na svietenie 2.5ms, t.j. cely display sa bude refresovat 100x za sekundu.
Nech ma prosecor prerusenie od niektoreho z casovacov tak raz za 250us. Potom ma do 2.5ms desat casovych krokov v ramci ktorych moze pre kazdy segment samostatne a dokonca pre kazdy prvok segmentu samostatne regulovat jas od 0 do 100% v desiatich krokoch. 250us nie je velmi kratky cas, ak mcu slape na 18.432MHz a program je napisany rozumne. Podla kvalifikovaneho odhadu individualne nastavenie svietivosti kazdeho prvku v segmente samostatne nemusi zaberat viac casu ako 50us -100us, takze mcu bude mat este 80% - 60% na vykonavanie inej cinnosti, co je celkom dost casu ak predpokladam, ze bude stacit ak tato cinnost sa bude vykonavat maximalne 1x za 2-10ms.
Predpokladam,ze do 100us mcu moze jas riadit nie len po jednotlivych prvkoch segmentu v zavislosti od ich svietivosti, ale aj od aktualnej velkosti napatia pre LED (jasne ze sa AD prevod nebude vykonavat 1x za 250us ) a este sa da zvazit aj velkost okoliteho osvetlenia.
Ak by 10krokov nestcilo, kludne este mozes zbehnut na 50Hz refres a pocet krokov na riadenie jasu budes mat 20. Ak by mcu nemusel robit nic ine, ib riadit 4 segmenty LED, potom moze byt zakladna sw frekvencia pre PWM miesto 250us trebars 125us a pocet krokov sa zvysi na 40. A to je uz celkom slusny pocet.
PWM sa robi este aj tak, ze sice sa segmenty prepinaju pod 2.5ms (napriklad napnenim 74HC595 cez ktoru sa potom riadia tranzistoy typu ULN2830), ael na 74HC595 na signal OE je vyvedeny signal PWM z MCU a tym sa riadi jas vsetkych prvkov segmentu sucasne. Potom je granularita dana granularitou PWM co nemusi byt pod 256 krokov (0-2.5ms). No a casovac po preteceni moze vyvolat prerusenie, ktore zabezpeci prepnutie na dalsi segment.
Jednoduchych moznosti je vela, ale v ziadnej z nich nevidim zdroj prudu