Wstęp
Wyświetlacz 7 segmentowy to moduł pozwalający na wyświetlanie liczb dziesiętnych. Z takimi wyświetlaczami spotkać się można w zegarach cyfrowych, prostych stacjach pogodowych, prostych kalkulatorach czy innych urządzeniach gdzie wyświetlane są liczby dziesiętne.
Do prezentacji liczby służą segmenty, jest ich 7 (w niektórych wyświetlaczach może ich być 9,14, a nawet 17), a odpowiednie ich zapalenie w rezultacie da nam pożądaną cyfrę. Na poniższym zdjęciu można zobaczyć jak wygląda taki wyświetlacz oraz jak przedstawiony on jest na schemacie.
Jak widać na powyższym zdjęciu wyświetlacz ten składa się z 7 diod led (kolory mogą być różne: czerwone, zielone, niebieskie, białe, itp.), które w zależności od rodzaju wyświetlacza mają wspólny plus (anodę) lub minus (katodę). Jeśli planujemy użyć wyświetlacza o wspólnej np. anodzie będzie on działać jeśli pin segmentu zostanie zwarty do masy (podajemy niski sygnał na pin sterujący). Dla wspólnej katody sygnał sterujący musi być sygnałem wysokim. W sklepach dostępne są również moduły składające się z kilku wyświetlaczy, dzięki czemu mamy możliwość wyświetlenia kilku cyfr. Można również natrafić na wyświetlacze, które mają dodatkowy znak w postaci kropki.
Sterowanie
Najprostszą metodą jest bezpośrednie połączenie pinów segmentów do pinów mikroprocesora z użyciem rezystorów ograniczających. Ma to jednak swoją wadę, ponieważ zajmuje dużo pinów. Jeśli będziemy chcieli użyć modułu mającego możliwość wyświetlania np. 4 cyfr to potrzebowalibyśmy aż 32 wolnych pinów (każdy wyświetlacz posiada 8 pinów). Dlatego warto skorzystać z metody np. multipleksowania. Celem multipleksowania jest połączenie wszystkich pinów odpowiadających tym samym segmentom (np. łączymy ze sobą wszystkie segmenty A, następnie łączymy wszystkie segmenty B, itd.). W danej chwili możemy podać sygnał, aby świeciła tylko jedna cyfra. Co więc mamy zrobić, abyśmy zobaczyli 4 cyfry? Kluczem do sukcesu jest szybkie przełączanie pomiędzy cyframi (sterujemy wspólne elektrody wyświetlaczy). Te małe oszustwo jeśli wykonane dobrze, spowoduje, że nasze oko nie wyłapie tego przełączania i w rezultacie zobaczymy 4 cyfrową liczbę, albo np. godzinę na zegarku. Jak to będzie działać w zwolnionym tempie? Otóż włączamy pierwszy wyświetlacz i wyświetlamy pierwszą cyfrę, następnie wyłączamy pierwszy wyświetlacz i włączamy drugi. Wyświetlamy drugą cyfrę i wyłączamy drugi wyświetlacz. Czynność powtarzamy w zależności ile cyfr mamy na naszym wyświetlaczu. Jak wspomnieliśmy wcześniej przełączanie pomiędzy wyświetlaczami musi odbywać się z dużą częstotliwością, aby nie było widać mrugania.
Jeszcze mniej przewodów
Jeśli zależy nam na jeszcze mniejszej liczbie przewodów, którymi będziemy mogli sterować wyświetlaczem, warto rozejrzeć się za sterowaniem I2C. Ta metoda pozwala nam na sterowanie za pomocą 2 przewodów (nie licząc przewodów do zasilania). Jest jednak mały haczyk, w sieci można natrafić na gotowe moduły, które takie coś oferują, jednak po bliższym przyjrzeniu można zobaczyć, że układem sterującym jest mały mikroprocesor (często Attiny). Szukając głębiej można również natrafić na moduły posiadające np. układ Holtek HT16K33, który jest sterownikiem LED (można go oczywiście zastosować z powodzeniem) komunikującym się po szynie I2C.
Inną metodą jest zastosowanie rejestru przesuwnego np. 74HC595. HC595 posiada 8 wyjść równoległych. Zadaniem rejestru przesuwnego jest po zmianie sygnału zegara na wejściu, zmiana stanu kolejnego wyjścia o jeden (np. stan wyjścia 1 jest przepisywany do wyjścia 2, 2 do 3, itd.). Stan wejścia 1 jest ustalany na podstawie stanu wejścia szeregowego. Co nam to daje w praktyce? Otóż oprócz możliwości sterowania wyświetlaczem, możemy też łatwo i szybko zwiększyć liczbę pinów np. w Arduino.
Przydatne linki:
Obsługa wyświetlaczy 7 segmentowych
74hc595 - przesuwane diody