5.10 ShiftOut(Segmentanzeige)¶
In einem früheren Beispiel haben wir die Funktion shiftout()
verwendet, um acht LEDs zu beleuchten. Hier verwenden wir sie, um die Zahlen 0-9 auf der 7-Segment-Anzeige darzustellen.
Die 7-Segment-Anzeige ist im Grunde ein Gerät, das aus 8 LEDs besteht. 7 davon sind streifenförmige LEDs, die eine „8“ formen, und es gibt eine etwas kleinere LED als Dezimalpunkt. Diese LEDs sind als a, b, c, d, e, f, g und dp markiert. Sie verfügen über eigene Anoden-Pins und teilen sich Kathoden. Ihre Pin-Positionen sind in der untenstehenden Abbildung dargestellt.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Bauteile.
Es ist durchaus praktisch, ein komplettes Set zu kaufen. Hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
---|---|---|
3 in 1 Starter Kit |
380+ |
Sie können diese auch einzeln über die folgenden Links erwerben.
KOMPONENTENVORSTELLUNG |
KAUF-LINK |
---|---|
Schaltplan
Verdrahtung
74HC595 |
LED Segmentanzeige |
---|---|
Q0 |
a |
Q1 |
b |
Q2 |
c |
Q3 |
d |
Q4 |
e |
Q5 |
f |
Q6 |
g |
Q7 |
dp |
Code
Bemerkung
Öffnen Sie die Datei
5.10.shiftout_segment.ino
im Pfad3in1-kit\basic_project\5.10.shiftout_segment
.Oder kopieren Sie diesen Code in die Arduino IDE.
Oder laden Sie den Code über den Arduino Web Editor hoch.
Nachdem der Code erfolgreich hochgeladen wurde, können Sie beobachten, wie die LED Segmentanzeige die Zahlen 0~9 nacheinander anzeigt.
Wie funktioniert das?
shiftOut()
lässt den 74HC595 8 digitale Signale ausgeben.
Es gibt das letzte Bit der Binärzahl an Q0 aus
und das erste Bit an Q7. Das bedeutet,
dass das Schreiben der Binärzahl „00000001“ dazu führt, dass Q0 ein hohes Signal und Q1~Q7 ein niedriges Signal ausgibt.
Angenommen, die 7-Segment-Anzeige zeigt die Zahl „2“ an, wir müssen ein hohes Signal für a, b, d, e und g schreiben und ein niedriges Signal für c, f und dp. Das bedeutet, die Binärzahl „01011011“ muss geschrieben werden. Zur besseren Lesbarkeit verwenden wir die hexadezimale Notation als „0x5b“.
Ebenso können wir die 7-Segment-Anzeige auf die gleiche Weise andere Zahlen anzeigen lassen. Die folgende Tabelle zeigt die Codes, die diesen Zahlen entsprechen.
Zahlen |
Binär Code |
Hex Code |
---|---|---|
0 |
00111111 |
0x3f |
1 |
00000110 |
0x06 |
2 |
01011011 |
0x5b |
3 |
01001111 |
0x4f |
4 |
01100110 |
0x66 |
5 |
01101101 |
0x6d |
6 |
01111101 |
0x7d |
7 |
00000111 |
0x07 |
8 |
01111111 |
0x7f |
9 |
01101111 |
0x6f |
Geben Sie diese Codes in shiftOut()
ein, um die LED Segmentanzeige die entsprechenden Zahlen anzeigen zu lassen.