Anschluss einer Sieben-Segment-Anzeige an einen Arduino

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.

SSD

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:

Gemeinsame Kathode
Gemeinsame 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.

Gemeinsame Anode
Gemeinsame Anode

Die sieben Segmente sind mit a-g beschriftet, wobei der Punkt „dp“ ist, wie in der folgenden Abbildung gezeigt:

SSD-Konfiguration
SSD-Konfiguration

Um eine bestimmte Zahl anzuzeigen, schalten Sie die einzelnen Segmente ein, wie in der Tabelle unten gezeigt:

e

0×7E

aus

aus

ein

ein

ein

0×5B

ein

ein

ein

aus

0×77

ein

ein

aus

ein

aus

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.