Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [ hier ] und treten Sie heute bei!

7-Segment-Anzeige

Überblick

Eine 7-Segment-Anzeige ist ein Gerät, das Zahlen und Buchstaben darstellen kann. Sie besteht aus sieben in Parallelschaltung verbundenen LEDs. Verschiedene Buchstaben/Zahlen können angezeigt werden, indem die Pins der Anzeige mit der Stromquelle verbunden und die entsprechenden Pins aktiviert werden, wodurch die entsprechenden LED-Segmente eingeschaltet werden. In dieser Lektion lernen wir, wie man bestimmte Zeichen darauf anzeigt.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein komplettes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Elite Explorer Kit

300+

Elite Explorer Kit

Sie können die Komponenten auch separat über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

Arduino Uno R4 WiFi

-

Steckbrett

KAUFEN

Jumperkabel

KAUFEN

Widerstand

KAUFEN

7-Segment-Anzeige

KAUFEN

Verdrahtung

../_images/13-7_segment_display_bb.png

Schaltplan

In diesem Experiment verbinden Sie jeden Pin a-g der 7-Segment-Anzeige jeweils mit einem 1000-Ohm-Strombegrenzungswiderstand und dann mit Pin 4-11. GND verbindet sich mit GND. Durch die Programmierung können wir einen oder mehrere der Pins 4-11 als High-Level setzen, um die entsprechende(n) LED(s) zu beleuchten.

../_images/13-7_segment_display_schematic.png

Code

Bemerkung

  • Sie können die Datei 13-7_segment.ino direkt unter dem Pfad elite-explorer-kit-main\basic_project\13-7_segment öffnen.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

13-7_segment.ino
  1/*
  2  The code is designed to control a 7-segment display using an Arduino. 
  3  It sequentially displays numbers 1-9 and letters A-F on the 7-segment 
  4  display, with each symbol displayed for one second.
  5
  6  Board: Arduino Uno R4 
  7  Component: 7-segment Display
  8*/
  9
 10// Define pins for each segment of the 7-segment display
 11const int a = 7;
 12const int b = 6;
 13const int c = 5;
 14const int d = 11;
 15const int e = 10;
 16const int f = 8;
 17const int g = 9;
 18const int dp = 4;  // Decimal point
 19
 20void setup() {
 21  // Set pins 4 to 11 as output
 22  for (int thisPin = 4; thisPin <= 11; thisPin++) {
 23    pinMode(thisPin, OUTPUT);
 24  }
 25  // Initialize display by turning off all segments
 26  turnOffAllSegments();
 27}
 28
 29void loop() {
 30  // Display numbers 1 to 9 and letters A to F sequentially
 31  digital_1(); delay(1000);
 32  digital_2(); delay(1000);
 33  digital_3(); delay(1000);
 34  digital_4(); delay(1000);
 35  digital_5(); delay(1000);
 36  digital_6(); delay(1000);
 37  digital_7(); delay(1000);
 38  digital_8(); delay(1000);
 39  digital_9(); delay(1000);
 40  digital_A(); delay(1000);
 41  digital_b(); delay(1000);
 42  digital_C(); delay(1000);
 43  digital_d(); delay(1000);
 44  digital_E(); delay(1000);
 45  digital_F(); delay(1000);
 46}
 47
 48void digital_1()  //display 1 to the 7-segment
 49{
 50  turnOffAllSegments();
 51  digitalWrite(b, HIGH);
 52  digitalWrite(c, HIGH);
 53}
 54
 55void digital_2()  //display 2 to the 7-segment
 56{
 57  turnOffAllSegments();
 58  digitalWrite(a, HIGH);
 59  digitalWrite(b, HIGH);
 60  digitalWrite(g, HIGH);
 61  digitalWrite(e, HIGH);
 62  digitalWrite(d, HIGH);
 63}
 64
 65void digital_3()  //display 3 to the 7-segment
 66{
 67  turnOffAllSegments();
 68  digitalWrite(a, HIGH);
 69  digitalWrite(b, HIGH);
 70  digitalWrite(c, HIGH);
 71  digitalWrite(d, HIGH);
 72  digitalWrite(g, HIGH);
 73}
 74void digital_4()  //display 4 to the 7-segment
 75{
 76  turnOffAllSegments();
 77  digitalWrite(b, HIGH);
 78  digitalWrite(c, HIGH);
 79  digitalWrite(f, HIGH);
 80  digitalWrite(g, HIGH);
 81}
 82
 83void digital_5()  //display 5 to the 7-segment
 84{
 85  turnOffAllSegments();
 86  digitalWrite(a, HIGH);
 87  digitalWrite(f, HIGH);
 88  digitalWrite(g, HIGH);
 89  digitalWrite(c, HIGH);
 90  digitalWrite(d, HIGH);
 91}
 92
 93void digital_6()  //display 6 to the 7-segment
 94{
 95  turnOffAllSegments();
 96  digitalWrite(a, HIGH);
 97  digitalWrite(f, HIGH);
 98  digitalWrite(e, HIGH);
 99  digitalWrite(d, HIGH);
100  digitalWrite(c, HIGH);
101  digitalWrite(g, HIGH);
102}
103
104void digital_7()  //display 7 to the 7-segment
105{
106  turnOffAllSegments();
107  digitalWrite(a, HIGH);
108  digitalWrite(b, HIGH);
109  digitalWrite(c, HIGH);
110}
111
112void digital_8()  //display 8 to the 7-segment
113{
114  turnOffAllSegments();
115  digitalWrite(a, HIGH);
116  digitalWrite(b, HIGH);
117  digitalWrite(c, HIGH);
118  digitalWrite(d, HIGH);
119  digitalWrite(e, HIGH);
120  digitalWrite(f, HIGH);
121  digitalWrite(g, HIGH);
122}
123
124void digital_9()  //display 9 to the 7-segment
125{
126  turnOffAllSegments();
127  digitalWrite(a, HIGH);
128  digitalWrite(b, HIGH);
129  digitalWrite(c, HIGH);
130  digitalWrite(d, HIGH);
131  digitalWrite(f, HIGH);
132  digitalWrite(g, HIGH);
133}
134
135void digital_A()  //display A to the 7-segment
136{
137  turnOffAllSegments();
138  digitalWrite(a, HIGH);
139  digitalWrite(b, HIGH);
140  digitalWrite(c, HIGH);
141  digitalWrite(e, HIGH);
142  digitalWrite(f, HIGH);
143  digitalWrite(g, HIGH);
144}
145
146void digital_b()  //display b to the 7-segment
147{
148  turnOffAllSegments();
149  digitalWrite(c, HIGH);
150  digitalWrite(d, HIGH);
151  digitalWrite(e, HIGH);
152  digitalWrite(f, HIGH);
153  digitalWrite(g, HIGH);
154}
155
156void digital_C()  //display C to the 7-segment
157{
158  turnOffAllSegments();
159  digitalWrite(a, HIGH);
160  digitalWrite(f, HIGH);
161  digitalWrite(e, HIGH);
162  digitalWrite(d, HIGH);
163}
164
165void digital_d()  //display d to the 7-segment
166{
167  turnOffAllSegments();
168  digitalWrite(b, HIGH);
169  digitalWrite(c, HIGH);
170  digitalWrite(d, HIGH);
171  digitalWrite(e, HIGH);
172  digitalWrite(g, HIGH);
173}
174
175void digital_E()  //display E to the 7-segment
176{
177  turnOffAllSegments();
178  digitalWrite(a, HIGH);
179  digitalWrite(d, HIGH);
180  digitalWrite(e, HIGH);
181  digitalWrite(f, HIGH);
182  digitalWrite(g, HIGH);
183}
184
185void digital_F()  //display F to the 7-segment
186{
187  turnOffAllSegments();
188  digitalWrite(a, HIGH);
189  digitalWrite(e, HIGH);
190  digitalWrite(f, HIGH);
191  digitalWrite(g, HIGH);
192}
193
194void turnOffAllSegments() {
195  // Turn off all segments of the 7-segment display
196  for (int thisPin = 4; thisPin <= 11; thisPin++) {
197    digitalWrite(thisPin, LOW);
198  }
199}


Code-Analyse

Der Code könnte für dieses Experiment etwas lang erscheinen. Aber die Syntax ist einfach. Lassen Sie uns einen Blick darauf werfen.

Aufrufen der Funktion in loop()

digital_1(); //diaplay 1 to the 7-segment

delay(1000); //wait for a second

digital_2(); //diaplay 2 to the 7-segment

delay(1000); //wait for a second

digital_3(); //diaplay 3 to the 7-segment

delay(1000); //wait for a second

digital_4(); //diaplay 4 to the 7-segment

Durch den Aufruf dieser Funktionen in der loop()-Funktion wird die 7-Segment-Anzeige 0-F anzeigen. Die Funktionen werden nachfolgend gezeigt. Nehmen wir digital_2() als Beispiel:

Detaillierte Analyse von digital_2()

void digital_2()  //diaplay 2 to the 7-segment
{
  turnOffAllSegments();
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(g, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(d, HIGH);
}
../_images/13_7segment.jpeg

Zuerst müssen wir verstehen, wie die Zahl 2 auf der 7-Segment-Anzeige erscheint. Dies wird erreicht, indem die Segmente a, b, d, e und g eingeschaltet werden. In der Programmierung werden Pins, die mit diesen Segmenten verbunden sind, auf ein hohes Niveau gesetzt, während c und f auf ein niedriges Niveau gesetzt werden. Wir beginnen mit der Funktion turnOffAllSegments(), um alle Segmente auszuschalten, und beleuchten dann die benötigten.

Nachdem dieser Teil ausgeführt wurde, zeigt die 7-Segment-Anzeige 2 an. Ähnlich ist es mit der Anzeige anderer Zeichen. Da die Buchstaben b und d in Großbuchstaben, nämlich B und D, gleich aussehen würden wie 8 und 0 auf der Anzeige, werden sie stattdessen in Kleinbuchstaben dargestellt.