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+ |
Sie können die Komponenten auch separat über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
|---|---|
- |
|
Verdrahtung
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.
Code
Bemerkung
Sie können die Datei
13-7_segment.inodirekt unter dem Pfadelite-explorer-kit-main\basic_project\13-7_segmentöffnen.Oder kopieren Sie diesen Code in die Arduino IDE.
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);
}
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.