Celem projektu jest zaprezentowanie techniki zmian jasności wyświetlaczy LED w zależności od natężenia oświetlenia zewnętrznego. W urządzeniu zastosowano fotorezystor, który w sposób ciągły mierzy natężenie oświetlenia i pozwala dostosować jasność wyświetlaczy. Układ docelowo służy do pomiaru temperatury i wilgotności i bazuje na urządzeniu opisywanym przez tego samego autora.
W układzie użyto 8 wyświetlaczy 7-seg. sterowanych układem MAX7219. Całością steruje 8-bitowy mikrokontroler PIC12F683 o 8 wyprowadzeniach. Dostosowanie jasności wyświetlaczy pozwala na wygodny ich odczyt w różnych warunkach oświetlenia.
Do rejestrowania zmian natężenia oświetlenia użyto fotorezystora połączonego szeregowo z rezystorem 10kΩ i włączonego pomiędzy dodatnią a ujemną szynę zasilania – w ten sposób uzyskano dzielnik napięcia. Oporność typowego fotorezystora wynosi mniej niż 1kΩ przy bardzo jasnym świetle i rośnie do kilkuset kΩ w ciemności. Dlatego też napięcie na rezystorze 10Ωk będzie proporcjonalne do warunków oświetlenia i dla danego układu wyniesie od 0,1V (w ciemności) do 4,0V (przy bardzo jasnym świetle). Mikrokontroler PIC12F683 odczytuje wartość napięcia podawaną na wyprowadzenie AN3 (GP4) – wejście przetwornika A/D – i wysyła odpowiednie sygnały do sterownika wyświetlaczy MAX7219.
Układ MAX7219 jest sterownikiem wyśw. 7-seg. (ze wspólną katodą) sterowanym przez interfejs szeregowy; może obsłużyć do 8 wyświetlaczy i „zajmuje” tylko trzy piny mikroprocesora. W układzie zintegrowano dekoder BCD, multiplekser, drivery dla cyfr i segmentów oraz statyczną pamięć RAM 8x8 do przechowywania czcionki. Prąd każdego segmentu jest ustalany poprzez zewnętrzny rezystor wpięty pomiędzy pin ISET i plus zasilania. Układ również pozwala na kontrolę jasności wyświetlaczy (w 16 krokach) poprzez wbudowany PWM. Szersze zastosowanie układu MAX7219 autor zawarł w innym artykule.
Oprogramowanie procesora zostało napisane w języku C. Podprogramy sterujące układem MAX7219 napisano tak, aby były proste, zrozumiałe i łatwe do zaimplementowania w innych urządzeniach. Sterowanie jasnością odbywa się poprzez zapis 4 bitów (D3-D0) rejestru jasności (0x0A) układu. Do automatycznej regulacji jasności wartość odczytana z przetwornika A/D (10 bitów) procesora jest dzielona przez 100 – uzyskuje się 11 poziomów jasności.
Kod: C / C++
Sposób działania urządzenia był testowany w różnych warunkach oświetlenia i wartości na wyświetlaczach były cały czas łatwe do odczytania i komfortowe dla oka.
Wyświetlacze przy pełnym oświetleniu...
... i w ciemności.
Źródło
Fajne? Ranking DIY
