Interfejs wyświetlacza siedmiosegmentowego do Arduino

W wielu zastosowaniach nie ma potrzeby używania droższego wyświetlacza ciekłokrystalicznego do wyświetlania danych. Wystarczy zwykły wyświetlacz siedmiosegmentowy.

Jeśli Twoja aplikacja Arduino musi wyświetlać tylko liczby, rozważ użycie wyświetlacza siedmiosegmentowego. Wyświetlacz siedmiosegmentowy ma siedem diod LED ułożonych w kształt cyfry osiem. Są one łatwe w użyciu i efektywne kosztowo. Poniższy rysunek przedstawia typowy wyświetlacz siedmiosegmentowy.

SSD

Wyświetlacze siedmiosegmentowe są dwóch typów: wspólna anoda i wspólna katoda. Struktura wewnętrzna obu typów jest prawie taka sama. Różnica polega na polaryzacji diod LED i wspólnego zacisku. W przypadku wyświetlacza siedmiosegmentowego ze wspólną katodą (takiego jak ten, którego używaliśmy w naszych eksperymentach), wszystkie siedem diod LED oraz dioda punktowa mają katody podłączone do pinów 3 i 8. Aby użyć takiego wyświetlacza, musimy podłączyć do pinów 3 i 8 napięcie stałe (GROUND), a do pozostałych pinów napięcie +5V, aby poszczególne segmenty zaczęły świecić. Poniższy schemat przedstawia budowę wewnętrzną wyświetlacza siedmiosegmentowego typu common-cathode:

Wspólna katoda
Wspólna katoda

Wyświetlacz ze wspólną anodą jest dokładnym przeciwieństwem. W wyświetlaczu typu common-anode, dodatnie zaciski wszystkich ośmiu diod LED są połączone razem, a następnie podłączone do pinów 3 i 8. Aby włączyć pojedynczy segment, należy uziemić jeden z pinów. Poniższy schemat przedstawia wewnętrzną strukturę wyświetlacza siedmiosegmentowego typu common-anode.

Wspólna anoda
Wspólna anoda

Siedem segmentów jest oznaczonych literami a-g, a kropką jest „dp”, jak pokazano na poniższym rysunku:

Konfiguracja dysku twardego
Konfiguracja dysku twardego

Aby wyświetlić konkretną liczbę, włączamy poszczególne segmenty, jak pokazano w poniższej tabeli:

on

on

.

on

on

Cyfra gfedcba

abcdefg

a

b

c

d

e

f

g

0 0×3F

0×7E

on

on

on

on

on

on

off

1 0×06

0×30

off

on

on

on

off

off

off

off

2 0×5B

0×6D

on

on

off

on

on

on

off

on

3 0×4F

0×79

on

on

on

on

off

off

on

4 0×66

0×33

off

on

on

off

off

on

on

on

5 0×6D

0×5B

on

off

on

on

off

on

on

on

6 0×7D

0×5F

on

off

on

on

on

on

on

7 0×07

0×70

on

on

on

off

off

off

off

8 0×7F

0×7F

on

on

on

on

on

on

on

9 0×6F

0×7B

włączony

włączony

włączony

wyłączony

włączony

włączony

on

A 0×77

0×77

on

.

on

on

off

on

on

on

B 0×7C

0×1F

off

off

off

on

on

on

on

on

C 0×39

0×4E

on

off

off

on

on

on

off

D 0×5E

0×3D

off

on

on

on

on

on

off

on

E 0×79

0×4F

on

off

off

on

on

on

on

F 0×71

0×47

on

on

off

off

off

on

on

on

Doświadczenie 1

W tym eksperymencie, będziemy po prostu włączać i wyłączać diody LED, aby zapoznać się z działaniem wyświetlacza siedmiosegmentowego.

Wymagany sprzęt

  • 1 x wyświetlacz siedmiosegmentowy (wspólna katoda)
  • 1 x Arduino MEGA 2560
  • 1 x breadboard
  • 7 x rezystory 220 ohm (1/4 W)
  • przewody zworki

Schemat połączeń

W tym układzie, piny wyświetlacza siedmiosegmentowego są podłączone do pinów Arduino 2-9, jak pokazano w poniższej tabeli. Piny wspólne (pin 3 i pin 8) są podłączone do GND, a dp pozostawiono niepodłączone, ponieważ nie jest on używany w tym eksperymencie

Siedem pinów segmentu Piny Arduino pins Wire Color
1(e) 6 orange
2(d) 5 white
3,8(COM) GND n/a
c 4 żółty
5(dp)
6(b) 3 czerwony
7(a) 2 niebieski
9(f) 7 cyan
10(g) 8 green

Kod

void setup(){ // define pin modes pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); }void loop() { // loop to turn leds od seven seg ON for(int i=2;i<9;i++) { digitalWrite(i,HIGH); delay(600); } // loop to turn leds od seven seg OFF for(int i=2;i<9;i++) { digitalWrite(i,LOW); delay(600); } delay(1000);}

Interface_Seven_Segment.zip

Doświadczenie 2

Opis

W tym tutorialu, będziemy łączyć wyświetlacz siedmiosegmentowy z Arduino mega i nauczymy się wyświetlać odliczanie od dziewięciu z opóźnieniem sekundowym na wyświetlaczu siedmiosegmentowym.

Wymagany sprzęt

Sprzęt wymagany do tego eksperymentu jest taki sam jak w eksperymencie 1.

Schemat połączeń

Schemat połączeń dla tego eksperymentu jest taki sam, jak dla eksperymentu 1.

Kod

// make an array to save Sev Seg pin configuration of numbersint num_array = { { 1,1,1,1,1,1,0 }, // 0 { 0,1,1,0,0,0,0 }, // 1 { 1,1,0,1,1,0,1 }, // 2 { 1,1,1,1,0,0,1 }, // 3 { 0,1,1,0,0,1,1 }, // 4 { 1,0,1,1,0,1,1 }, // 5 { 1,0,1,1,1,1,1 }, // 6 { 1,1,1,0,0,0,0 }, // 7 { 1,1,1,1,1,1,1 }, // 8 { 1,1,1,0,0,1,1 }}; // 9 //function headervoid Num_Write(int);void setup() { // set pin modes pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); }void loop() { //counter loop for (int counter = 10; counter > 0; --counter) { delay(1000); Num_Write(counter-1); } delay(3000);}// this functions writes values to the sev seg pins void Num_Write(int number) { int pin= 2; for (int j=0; j < 7; j++) { digitalWrite(pin, num_array); pin++; }}

aac_interface_a_seven_segment.zip

Wideo

Spróbuj sam tego projektu! Pobierz BOM.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *