Wyświetlacz 8‑segmentowywyświetlacz 8‑segmentowyWyświetlacz 8‑segmentowy (czy też 7‑segmentowy, bez znaku kropki) to tak naprawdę ułożone w specyficzny sposób diody LED. Do wyświetlania danej cyfry służą odpowiednio włączane segmenty (czyli właśnie diody) wyświetlacza. Na zdjęciach poniżej przedstawione są dwa przykładowe wyświetlacze 8‑segmentowe – jednocyfrowy oraz czterocyfrowy.
RVfj89HEUmIz4
Zdjęcie przedstawia wyświetlacz jednocyfrowy, ośmio-segmentowy - siedem identycznych linii tworzy segmenty liczb, ostani segment to kropka.
Wyświetlacz jednocyfrowy
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
RgfQjxkCulwGH
Zdjęcie przedstawia wyświetlacz czterocyfrowy utworzony poprzez połączenie czterech jednocyfrowych wyświetlaczy - jest to jeden element, nie cztery osobne.
Wyświetlacz czterocyfrowy
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Budowa wyświetlacza
Aby można było łatwo zidentyfikować poszczególne segmenty tworzące cyfrę, są one opisane literami: a, b, c, d, e, f, g, natomiast kropka – p lub dp.
RL1LpVZTbI6lc
Rysunek przedstawiający oznaczenie poszczególnych segmentów za pomocą liter. Litery a, b, c , d, e, f oznaczają zewnętrzne fragmenty liczby 8, wewnętrzna belka jest oznaczona literą g. Segmenty mają kształt prostokątów z małymi trójkątami na krótszych bokach, tworzą w całości kształt cyfry 8. Ostatnim ósmym segmentem jest kropka oznaczona dwoma literami dp. Na górze i dole znajduje się po 5 kropek, są to piny.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Przykładowo, jeżeli chcemy wyświetlić cyfrę 1, włączamy segmenty b i c. Dla cyfry 5 włączamy segmenty a, c, d, f, g.
R1dbPRNxyyy4O
Rysunek przedstawiający wyświetlanie cyfr 1 oraz 5 poprzez podświetlanie poszczególnych segmentów. Aby wyświetlić cyfrę 1 podświetlono segmenty b i c, tak aby po lewej stronie ukazała się prosta pionowa linia. Dla cyfry 5 użyto segmentów a, f, g, c i d, tworzy to kształt litery s lub cyfry 5.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
W przypadku wyświetlaczy jednocyfrowych mamy do czynienia z dziesięcioma wyprowadzeniami (spodnia część wyświetlacza). Zazwyczaj pin numer 1 znajduje się z lewej strony u dołu (patrząc od przodu wyświetlacza), a ostatni pin numer 10 umieszczony jest u góry, również po lewej stronie.
R1I8gt6EYjOJq
Rysunek przedstawiający kolejność numeracji poszczególnych pinów w wyświetlaczu jednocyfrowym. Numeracja zaczyna się od dołu z lewej strony, przechodzi poziomo w prawo aż do pięciu, a następnie z prawego górnego rogu rośnie do dziesięciu w lewo.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Aby ograniczyć liczbę pinów, wyświetlacze 8‑segmentowe zbudowane są podobnie jak diody RGB. Mówimy zatem o wyświetlaczu ze wspólną anodą lub wspólną katodą. W zależności od tego, z jakiego typu wyświetlaczem mamy do czynienia, zastosujemy odpowiednie podłączenia.
Przedstawiony tutaj wyświetlacz 8‑segmentowy to wyświetlacz ze wspólną anodą. Jeżeli nie mamy dostępu do karty katalogowej danego wyświetlacza, możemy przyjąć, że większość wyświetlaczy jednocyfrowych ze wspólną anodą będzie miała taki oto schemat wyprowadzeń:
RPSUKF93cFZlM
Schemat elektryczny przedstawia połączenie ośmiu diód do poszczególnych pinów oznaczonych 10 cyframi. Wszystkie diody połączone są do wspólnej anody oznaczonej cyframi 3 i 8 następnie rozgałęziają się na poszczególne diody oznaczone kolejnymi literami alfabetu, gdzie ostatnia oznaczona jest literami dp. Kolejne oznaczenia literowe odpowiadają następującym liczbom oznaczającym piny: 7 do a, 6 do b, 4 do c, 2 do d, 1 do e, 9 do f, 10 do g, 5 do dp.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Ze schematu możemy odczytać, że aby włączyć na przykład segment a, podłączamy plus zasilania do pinu numer 3 (anoda), zaś minus do pinu numer 7 (katoda).
Podłączenie wyświetlacza do Arduino
Wiedząc, z którego typu wyświetlaczem mamy do czynienia (wspólna anoda lub katoda), możemy narysować schemat połączeń.
Ważne!
Pamiętaj, że diody LED w wyświetlaczu muszą być podłączone do Arduino poprzez rezystory ograniczające prąd. W przeciwnym przypadku dioda (segment) ulegnie zniszczeniu. Zastosowany tutaj rezystor ma wartość 220 Ωomega, ale można też użyć większych, na przykład 1 kΩomega.
R1WqUknE2Aeb2
Schemat podłączeń poszczególnych LED do Arduino. Pomiędzy diodami a poszczególnymi portami na płytce umieszczone są rezystory. Połączone są one kolejno od wejścia oznaczonego numerem 1 aż do wejścia oznaczonego numerem 8. Wszystkie poprzez wspólną anodę podłączone są do wejścia 5V.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
W celu podłączenia wyświetlacza do Arduino musimy wykonać następujące kroki:
Najpierw wpinamy wyświetlacz w płytkę stykową tak, aby piny górne i piny dolne były wpięte w oddzielne połówki płytki.
R72lkdk6qGCAD
Zdjęcie przedstawia właściwe wpięcie wyświetlacza w płytkę stykową - górne piny wpięte są do jednej połowy płytki, drugie do pozostałej połowy. Reszta płytki jest pusta.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Teraz, zgodnie ze schematem, do pinu numer 7 wyświetlacza (segment a) podpinamy poprzez rezystor pin numer 1 w Arduino.
REoJH2eXdvjpc
Zdjęcie przedstawia podpięcie pinu numer 7 wyświetlacza do pinu numer 1 w Arduino, pomiędzy nimi na płytce podłączony szeregowo jest rezystor.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Analogicznie postępujemy z kolejnymi wyprowadzeniami:
segment b (pin 6) – rezystor – pin 2 Arduino,
segment c (pin 4) – rezystor – pin 3 Arduino,
segment d (pin 2) – rezystor – pin 4 Arduino,
segment e (pin 1) – rezystor – pin 5 Arduino,
segment f (pin 9) – rezystor – pin 6 Arduino,
segment g (pin 10) – rezystor – pin 7 Arduino,
segment dp (pin 5) – rezystor – pin 8 Arduino.
Rd2XNEsIqnb87
Zdjęcie przedstawia podłączone jest osiem kabli poprzez rezystory do wyświetlacza, środkowe piny u góry jak i u dołu pozostają wolne.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Na koniec podpinamy anodę wyświetlacza do pinu 5 V w Arduino. Warto tutaj zaznaczyć, że zamiast podpinać na stałe zasilanie 5 V, możemy użyć dowolnego pinu cyfrowego do zasilenia wyświetlacza. Takie rozwiązanie ułatwi na przykład miganie daną cyfrą, gdyż będziemy sterować jednym pinem zasilającym, a nie każdym segmentem z osobna. Należy tutaj pamiętać o wydajności prądowej pinu cyfrowego i użyć na przykład rezystorów 1 kΩomega, aby ograniczyć prąd w przypadku cyfr, które będą wyświetlane przy użyciu dużej ilości zapalonych segmentów. Jednak najlepszym rozwiązaniem będzie podłączenie anody poprzez tranzystor i zasilanie wyświetlacza z innego źródła napięcia.
RHmh4ODB52Bzx
Zdjęcie przedstawia podłączone jest osiem kabli poprzez rezystory do wyświetlacza, do środkowego górnego pinu podłączono kabel z pinu 5V arduino.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Obsługa wyświetlacza w Arduino IDE
Teraz możemy przejść do zbudowania układu, który będzie bazą działania naszego wyświetlacza. W pierwszej kolejności otwieramy nowy szkic i przed funkcją setup() definiujemy nazwy pinów. Dzięki temu łatwiej nam będzie odnaleźć się w programie i sterować wyświetlaczem.
Linia 1. kratka define segment podkreślnik A 1.
Linia 2. kratka define segment podkreślnik B 2.
Linia 3. kratka define segment podkreślnik C 3.
Linia 4. kratka define segment podkreślnik D 4.
Linia 5. kratka define segment podkreślnik E 5.
Linia 6. kratka define segment podkreślnik F 6.
Linia 7. kratka define segment podkreślnik G 7.
Linia 8. kratka define segment podkreślnik DP 8.
Pin numer 1 to pin o nazwie segment_A, pin numer 2 to pin o nazwie segment_B itd.
Następnie w funkcji setup() należy określić typ pinów, czyli zdecydować, czy będą to piny wejściowe, czy piny wyjściowe. Oczywiście ustawiamy je na piny wyjściowe.
Linia 1. kratka define segment podkreślnik A 1.
Linia 2. kratka define segment podkreślnik B 2.
Linia 3. kratka define segment podkreślnik C 3.
Linia 4. kratka define segment podkreślnik D 4.
Linia 5. kratka define segment podkreślnik E 5.
Linia 6. kratka define segment podkreślnik F 6.
Linia 7. kratka define segment podkreślnik G 7.
Linia 8. kratka define segment podkreślnik DP 8.
Linia 10. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. pinMode otwórz nawias okrągły segment podkreślnik A przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 12. pinMode otwórz nawias okrągły segment podkreślnik B przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 13. pinMode otwórz nawias okrągły segment podkreślnik C przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 14. pinMode otwórz nawias okrągły segment podkreślnik D przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 15. pinMode otwórz nawias okrągły segment podkreślnik E przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 16. pinMode otwórz nawias okrągły segment podkreślnik F przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 17. pinMode otwórz nawias okrągły segment podkreślnik G przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 18. pinMode otwórz nawias okrągły segment podkreślnik DP przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 19. zamknij nawias klamrowy.
Teraz, wiedząc, że segmenty wyświetlacza są po prostu diodami LED, możemy włączyć każdy z nich za pomocą funkcji digitalWrite(). Pamiętajmy, że korzystamy z wyświetlacza ze wspólną anodą, dlatego aby załączyć dany segment, musimy ustawić stan niski na pinie. Spróbujmy wyświetlić cyfrę 1. W pętli loop ustawiamy odpowiednie stany dla każdego segmentu. Aby wyświetlić cyfrę 1 musimy włączyć segmenty b i c, a resztę segmentów wyłączyć.
Linia 1. kratka define segment podkreślnik A 1.
Linia 2. kratka define segment podkreślnik B 2.
Linia 3. kratka define segment podkreślnik C 3.
Linia 4. kratka define segment podkreślnik D 4.
Linia 5. kratka define segment podkreślnik E 5.
Linia 6. kratka define segment podkreślnik F 6.
Linia 7. kratka define segment podkreślnik G 7.
Linia 8. kratka define segment podkreślnik DP 8.
Linia 10. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. pinMode otwórz nawias okrągły segment podkreślnik A przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 12. pinMode otwórz nawias okrągły segment podkreślnik B przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 13. pinMode otwórz nawias okrągły segment podkreślnik C przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 14. pinMode otwórz nawias okrągły segment podkreślnik D przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 15. pinMode otwórz nawias okrągły segment podkreślnik E przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 16. pinMode otwórz nawias okrągły segment podkreślnik F przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 17. pinMode otwórz nawias okrągły segment podkreślnik G przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 18. pinMode otwórz nawias okrągły segment podkreślnik DP przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 19. zamknij nawias klamrowy.
Linia 21. void loop otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 22. digitalWrite otwórz nawias okrągły segment podkreślnik A przecinek HIGH zamknij nawias okrągły średnik.
Linia 23. digitalWrite otwórz nawias okrągły segment podkreślnik B przecinek LOW zamknij nawias okrągły średnik.
Linia 24. digitalWrite otwórz nawias okrągły segment podkreślnik C przecinek LOW zamknij nawias okrągły średnik.
Linia 25. digitalWrite otwórz nawias okrągły segment podkreślnik D przecinek HIGH zamknij nawias okrągły średnik.
Linia 26. digitalWrite otwórz nawias okrągły segment podkreślnik E przecinek HIGH zamknij nawias okrągły średnik.
Linia 27. digitalWrite otwórz nawias okrągły segment podkreślnik F przecinek HIGH zamknij nawias okrągły średnik.
Linia 28. digitalWrite otwórz nawias okrągły segment podkreślnik G przecinek HIGH zamknij nawias okrągły średnik.
Linia 29. digitalWrite otwórz nawias okrągły segment podkreślnik DP przecinek HIGH zamknij nawias okrągły średnik.
Linia 30. zamknij nawias klamrowy.
Po włączeniu układu zmienna i będzie miała wartość 0, a za sprawą instrukcji switch‑case zostaną włączone odpowiednie segmenty, które utworzą na wyświetlaczu cyfrę 0. Następnie program odczeka sekundę, po czym zmienna i przyjmie wartość 1, a instrukcja switch‑case zadba o włączenie odpowiednich segmentów, aby wyświetlić cyfrę 1.
Po wgraniu szkicu do płytki Arduino efekt działania licznika powinien wyglądać następująco:
R1SOPIrzoJcS2
Film przedstawiający licznik wyświetlający wartości od 0 do 9
Film przedstawiający licznik wyświetlający wartości od 0 do 9
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Film przedstawiający licznik wyświetlający wartości od 0 do 9
Tinkercad
Zróbmy symulację układu z wyświetlaczem ośmiosegmentowym, za pomocą środowiska Tinkercad.
RA3PAH8lyvHuK
Zdjęcie ekranu przedstawia okno przeglądarki z otwartą stroną Tinkercad. Obszar roboczy jest pusty.
Dodaj do głównego okna symulatora płytkę stykową.
R1aLoB9Rqf95P
Zdjęcie ekranu przedstawia okno przeglądarki z otwartą stroną Tinkercad. W obszarze roboczym umieszczono płytkę stykową.
Z listy rozwijanej Komponenty wybierz Wszystko.
R11F8e5NzFuJh
Zdjęcie ekranu przedstawia okno przeglądarki z otwartą stroną Tinkercad. W obszarze roboczym umieszczono płytkę stykową. W menu po prawej stronie oznaczono opcję: "Komponenty: Wszystko".
Znajdź wyświetlacz ośmiosegmentowy i wstaw go na płytkę stykową.
RpEjXK6GMofMB
Zdjęcie ekranu przedstawia okno przeglądarki z otwartą stroną Tinkercad. W obszarze roboczym umieszczono płytkę stykową, a na niej wyświetlacz ośmiosegmentowy.
Do każdej katody diody znajdującej się w wyświetlaczu dodaj rezystory o wartości 220 Ωomega.
ReV38jEU594wu
Zdjęcie ekranu przedstawia okno przeglądarki z otwartą stroną Tinkercad. W obszarze roboczym umieszczono płytkę stykową, a na niej wyświetlacz ośmiosegmentowy, rezystory oraz kable łączące je. Od prawej do lewej: rezystor z wolną nóżką podłączony poprzez kabel do 2 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 2 górnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 górnego pinu. Po lewej stronie, od lewej do prawej: rezystor z wolną nóżką podłączony poprzez kabel do 2 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 2 górnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 górnego pinu.
Dodaj moduł Arduino Uno do okna symulacji.
RqET884u2PSpr
Zdjęcie ekranu przedstawia okno przeglądarki z otwartą stroną Tinkercad. W obszarze roboczym umieszczono arduino uno oraz płytkę stykową, a na niej wyświetlacz ośmiosegmentowy, rezystory oraz kable łączące je. Od prawej do lewej: rezystor z wolną nóżką podłączony poprzez kabel do 2 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 2 górnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 górnego pinu. Po lewej stronie, od lewej do prawej: rezystor z wolną nóżką podłączony poprzez kabel do 2 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 2 górnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 górnego pinu.
Pod dodatnią szynę płytki podepnij piny 3 oraz 8 wyświetlacza oraz pin 5V Arduino. Nie zapomnij o tym by obie szyny połączyć razem.
R1BuzckALI0wi
Zdjęcie ekranu przedstawia okno przeglądarki z otwartą stroną Tinkercad. W obszarze roboczym umieszczono arduino uno oraz płytkę stykową, a na niej wyświetlacz ośmiosegmentowy, rezystory oraz kable łączące je. Od prawej do lewej: rezystor z wolną nóżką podłączony poprzez kabel do 2 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 2 górnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 górnego pinu. Po lewej stronie, od lewej do prawej: rezystor z wolną nóżką podłączony poprzez kabel do 2 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 2 górnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 górnego pinu. Pin 5V arduino podłączono do dodatniej szyny płytki, podobnie jak środkowe piny wyświetlacza.
Teraz musimy podpiąć segmenty wyświetlacza do Arduino. Jeśli nie wiesz jaki pin wyświetlacza odpowiada jakiemu segmentowi, najedź kursorem na pin a informacja z nazwą pinu pojawi się poniżej kursora.
R14mdxxouWecr
Zdjęcie ekranu przedstawia okno przeglądarki z otwartą stroną Tinkercad. W obszarze roboczym umieszczono arduino uno oraz płytkę stykową, a na niej wyświetlacz ośmiosegmentowy, rezystory oraz kable łączące je. Od prawej do lewej: rezystor z wolną nóżką podłączony poprzez kabel do 2 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 2 górnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 górnego pinu. Po lewej stronie, od lewej do prawej: rezystor z wolną nóżką podłączony poprzez kabel do 2 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 dolnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 2 górnego pinu, rezystor z wolną nóżką podłączony poprzez kabel do 1 górnego pinu. Pin 5V arduino podłączono do dodatniej szyny płytki, podobnie jak środkowe piny wyświetlacza. Dodatkowo oznaczono wyskakującą małą ikonkę obok pinu z literą D, określa ona pin wyświetlacza.
Podepnij segmenty wyświetlacza do Arduino Uno:
pin DP (5) wyświetlacza z pinem D8 Arduino,
pin G (10) wyświetlacza z pinem D7 Arduino,
pin F (9) wyświetlacza z pinem D6 Arduino,
pin E (1) wyświetlacza z pinem D5 Arduino,
pin D (2) wyświetlacza z pinem D4 Arduino,
pin C (4) wyświetlacza z pinem D3 Arduino,
pin B (6) wyświetlacza z pinem D2 Arduino,
pin A (7) wyświetlacza z pinem D1 Arduino.
R1Ha2u3KYQI9O
Zdjęcie ekranu przedstawia okno przeglądarki z otwartą stroną Tinkercad. W obszarze roboczym umieszczono arduino uno oraz płytkę stykową, a na niej wyświetlacz ośmiosegmentowy, rezystory oraz kable łączące je. Od prawej do lewej: pin 3 arduino poprzez rezystor podłączony do 2 dolnego pinu, pin 8 arduino poprzez rezystor podłączony do 1 dolnego pinu, pin 1 arduino poprzez rezystor podłączony do 2 górnego pinu, pin 2 arduino poprzez rezystor podłączony do 1 górnego pinu. Po lewej stronie, od lewej do prawej: pin 4 arduino poprzez rezystor podłączony do 2 dolnego pinu, pin 5 arduino poprzez rezystor podłączony do 1 dolnego pinu, pin 6 arduino poprzez rezystor podłączony do 2 górnego pinu, pin 7 arduino poprzez rezystor podłączony do 1 górnego pinu. Pin 5V arduino podłączono do dodatniej szyny płytki, podobnie jak środkowe piny wyświetlacza.
Przejdźmy teraz do pisania kodu. W tym celu klikamy na przycisk Kod, z listy rozwijanej wybieramy Tekst, potwierdzamy chęć zmiany widoku i czyścimy zawartość.
Przepisz kod licznika, dopasuj widok okna i uruchom symulację.