Für viele Anwendungen ist es nicht notwendig, eine teurere Flüssigkristallanzeige zur Darstellung von Daten zu verwenden. Eine einfache Sieben-Segment-Anzeige ist ausreichend.
Wenn Ihre Arduino-Anwendung nur Zahlen anzeigen muss, sollten Sie eine Sieben-Segment-Anzeige in Betracht ziehen. Die Sieben-Segment-Anzeige hat sieben LEDs, die in der Form der Zahl Acht angeordnet sind. Sie sind einfach zu verwenden und kostengünstig. Das Bild unten zeigt eine typische Sieben-Segment-Anzeige.
Sieben-Segment-Anzeigen gibt es in zwei Typen: gemeinsame Anode und gemeinsame Kathode. Der interne Aufbau ist bei beiden Typen nahezu gleich. Der Unterschied liegt in der Polarität der LEDs und der gemeinsamen Klemme. Bei einer Sieben-Segment-Anzeige mit gemeinsamer Kathode (die wir in den Experimenten verwendet haben), haben alle sieben LEDs plus eine Punkt-LED die Kathoden an Pin 3 und Pin 8 angeschlossen. Um diese Anzeige zu verwenden, müssen wir GROUND an Pin 3 und Pin 8 anschließen und die anderen Pins mit +5V verbinden, damit die einzelnen Segmente aufleuchten. Das folgende Diagramm zeigt den internen Aufbau der Sieben-Segment-Anzeige mit gemeinsamer Kathode:
Die gemeinsame Anodenanzeige ist das genaue Gegenteil. Bei einer Common-Anode-Anzeige werden die Pluspole aller acht LEDs miteinander verbunden und dann an Pin 3 und Pin 8 angeschlossen. Um ein einzelnes Segment einzuschalten, erden Sie einen der Pins. Das folgende Diagramm zeigt den internen Aufbau der Common-anode-Sieben-Segment-Anzeige.
Die sieben Segmente sind mit a-g beschriftet, wobei der Punkt „dp“ ist, wie in der folgenden Abbildung gezeigt:
Um eine bestimmte Zahl anzuzeigen, schalten Sie die einzelnen Segmente ein, wie in der Tabelle unten gezeigt:
Digit gfedcba |
abcdefg |
a |
b |
c |
d |
f |
g |
||
0 0×3F |
on |
ein |
ein |
ein |
ein |
ein |
aus |
||
1 0×06 |
0×30 |
ein |
ein |
aus |
aus |
aus |
|||
2 0×5B |
0×6D |
ein |
aus |
ein |
ein |
aus |
ein |
||
3 0×4F |
0×79 |
ein |
ein |
ein |
aus |
aus |
|||
4 0×66 |
0×33 |
aus |
ein |
ein |
aus |
aus |
ein |
an |
5 0×6D |
an |
aus |
ein |
aus |
ein |
ein |
6 0×7D |
0×5F |
ein |
aus |
ein |
ein |
ein |
ein |
||
7 0×07 |
0×70 |
ein |
ein |
ein |
aus |
aus |
aus |
aus |
|
8 0×7F |
0×7F |
ein |
ein |
ein |
ein |
ein |
|||
9 0×6F |
0×7B |
ein |
ein |
ein |
ein |
ein |
an |
||
A 0×77 |
an |
ein |
ein |
aus |
ein |
ein |
|||
B 0×7C |
0×1F |
aus |
aus |
ein |
ein |
ein |
ein |
||
C 0×39 |
0×4E |
ein |
aus |
ein |
ein |
aus |
|||
D 0×5E |
0×3D |
aus |
ein |
ein |
ein |
ein |
aus |
ein |
|
E 0×79 |
0×4F |
ein |
aus |
aus |
ein |
ein |
ein |
ein |
|
F 0×71 |
0×47 |
ein |
aus |
aus |
ein |
ein |
ein |
Experiment 1
In diesem Experiment, werden wir einfach die LEDs ein- und ausschalten, um uns mit der Funktionsweise einer Siebensegmentanzeige vertraut zu machen.
Erforderliche Hardware
- 1 x Siebensegmentanzeige (gemeinsame Kathode)
- 1 x Arduino MEGA 2560
- 1 x Breadboard
- 7 x 220-Ohm-Widerstände (1/4 W)
- Überbrückungsdrähte
Schaltplan
In dieser Schaltung, werden die Pins der Siebensegmentanzeige mit den Arduino-Pins 2-9 verbunden, wie in der Tabelle unten gezeigt. Die gemeinsamen Pins (Pin 3 und Pin 8) sind mit GND verbunden und dp bleibt unverbunden, da es in diesem Experiment nicht verwendet wird
Sieben-Segment-Pins | Arduino Pins | Drahtfarbe |
---|---|---|
1(e) | 6 | orange |
2(d) | 5 | weiß |
3,8(COM) | GND | n/a | c | 4 | gelb | 5(dp) | – | 6(b) | 3 | rot | 7(a) | 2 | blau |
9(f) | 7 | cyan |
10(g) | 8 | grün |
Code
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
Experiment 2
Beschreibung
In diesem Tutorial werden wir eine Sieben-Segment-Anzeige mit dem Arduino mega verbinden und lernen, einen Countdown von neun mit einer Verzögerung von einer Sekunde auf der Sieben-Segment-Anzeige anzuzeigen.
Erforderliche Hardware
Die für dieses Experiment benötigte Hardware ist die gleiche wie bei Experiment 1.
Schaltplan
Der Schaltplan für dieses Experiment ist derselbe wie der für Experiment 1.
Code
// 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
Video
Versuchen Sie dieses Projekt selbst! Holen Sie sich die Stückliste.