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.
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:
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.
Siedem segmentów jest oznaczonych literami a-g, a kropką jest „dp”, jak pokazano na poniższym rysunku:
Aby wyświetlić konkretną liczbę, włączamy poszczególne segmenty, jak pokazano w poniższej tabeli:
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.