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