wtorek, 12 listopada 2013

Commit: obsługa wyświetlaczy segmentowych oraz zmiany w projekcie

Dotąd większość commitów dotyczyła podstawowych zagadnień typu: wiersz poleceń (nieukończony), rozbudowa jądra systemu, czy mini diagnostyki urządzeń - odczyt napięć poprzez pin analogowy kontrolera.
Teraz postaram się dodać obsługę dużej ilości sprzętu i interfejsów. Aktualnie pracuję nad ukończeniem obsługi wyświetlaczy segmentowych oraz nad przepisaniem ich do języka C.
Zasada działania takich wyświetlaczy nie jest skomplikowana: Jest 7 LEDów i w zależności od tego do
 którego LEDa wyślemy sygnał, ten się zaświeci. Wyświetlacze segmentowe dzielą sie na:

> Ze wspólną anodą
> Ze wspólną katodą

W wyświetlaczach ze wspólną anodą, występują dwa piny odpowiedzialne za zasilanie wyświetlacza(wspólna anoda) a reszta odpowiada za wysterowanie odpowiedniego segmentu. Aby takim wyświetlaczem sterować wykorzystując Arduino potrzeba podłączyć wspólną anodę do pinu 5V a resztę do pinów wejścia/wyjścia. Mając tak podłączony wyświetlacz możemy przystąpić do pisania kodu. Nie będzie to trudne, zwykłe wyprowadzanie sygnałów, jednak trzeba mieć na uwadze, to że w wyświetlaczach ze wspólną anodą stan niski zapali dany segment a wysoki zgasi. Wynika to, z budowy pinu. Może on będąc w stanie niskim może "ciągnąć ładunek", czyli pełnić rolę pinu GND.
Kod będzie wyglądał tak(zapalenie segmentu A):


Jak widać steruje się nim tak jak LED RGB ale z wspólną anodą. Sytuacja się odwraca w wyświetlaczach ze wspólną katodą. Tutaj podłączamy wspólną katodę do GND a resztę to pinów we/wy. Jeśli stan jest wysoki to segment się zapali, jak niski - zgaśnie. Tutaj zamiast "ciągnąć ładunek", Arduino oddaje, tworząc pełny obwód elektryczny. Kod nie zmieni się znacznie:


Link do commita(niedługo dodam jeszcze jeden): Klik me!  










 Co do zmian w projekcie dodałem nowe gałęzie: Release---C i Debug---C. Będe tam umieszczał kod w czystym C. Bez bibliotek od Arduino. Pozwoli mi to na zmniejszenie rozmiaru projektu, przez co więcej będe mógł dodać.

Brak komentarzy:

Prześlij komentarz