เริ่มต้นใช้งาน 7-Segment (1 Digit)
หลอดแสดงผล LED 7-Segment เป็นอุปกรณ์อิเล็กทรอนิกส์ที่ใช้ในการแสดงผลเช่นเดียวกับหลอดแสดงผล LED ทั่วไป แต่ต่างตรงที่หลอดแสดงผล LED 7 ส่วน เป็นการนำเอาหลอดแสดงผล LED จำนวน 7 ตัวมาต่อกันเป็นรูปตัวเลข เพื่อนำมาแสดงผลเป็นตัวเลข 0 ถึง 9 โดยในบทความนี้จะพูดถึงการเขียนโปรแกรมควบคุมการทำงานของหลอดแสดงผล LED 7 ส่วน ด้วย Arduino UNO R3
1. รู้จักกับโครงสร้างและการทำงานของ 7-Segment
2. ต่อวงจรตามภาพ
3. จะได้ผังวงจร ดังนี้
4. เขียนโปรแกรมแสดงผลตัวเลข (ตัวอย่าง โปรแกรมแสดงผลเลข 5)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define A 2 | |
#define B 3 | |
#define C 4 | |
#define D 5 | |
#define E 6 | |
#define F 8 | |
#define G 9 | |
#define DP 10 | |
void setup() | |
{ | |
pinMode(A, OUTPUT); | |
pinMode(B, OUTPUT); | |
pinMode(C, OUTPUT); | |
pinMode(D, OUTPUT); | |
pinMode(E, OUTPUT); | |
pinMode(F, OUTPUT); | |
pinMode(G, OUTPUT); | |
pinMode(DP, OUTPUT); | |
} | |
void loop() { | |
digitalWrite(A,HIGH); | |
digitalWrite(B, LOW); | |
digitalWrite(C, HIGH); | |
digitalWrite(D, HIGH); | |
digitalWrite(E, LOW); | |
digitalWrite(F, HIGH); | |
digitalWrite(G, HIGH); | |
} |
5. ตัวอย่างโปรแกรม นับ 1 - 10
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define A 2 | |
#define B 3 | |
#define C 4 | |
#define D 5 | |
#define E 6 | |
#define F 8 | |
#define G 9 | |
#define DP 10 | |
void setup() | |
{ | |
pinMode(A, OUTPUT); | |
pinMode(B, OUTPUT); | |
pinMode(C, OUTPUT); | |
pinMode(D, OUTPUT); | |
pinMode(E, OUTPUT); | |
pinMode(F, OUTPUT); | |
pinMode(G, OUTPUT); | |
pinMode(DP, OUTPUT); | |
} | |
// functions to display digits | |
void digit0 () { | |
// for 0 needed to turn ON F A B C D E segments, so: | |
digitalWrite(A, HIGH); | |
digitalWrite(B, HIGH); | |
digitalWrite(C, HIGH); | |
digitalWrite(D, HIGH); | |
digitalWrite(E, HIGH); | |
digitalWrite(F, HIGH); | |
//////////////////////// G segment should be turn OFF | |
digitalWrite(G, LOW); | |
} | |
void digit1 () { | |
digitalWrite(A,LOW); | |
digitalWrite(B, HIGH); | |
digitalWrite(C, HIGH); | |
digitalWrite(D, LOW); | |
digitalWrite(E, LOW); | |
digitalWrite(F, LOW); | |
digitalWrite(G, LOW); | |
} | |
void digit2 () { | |
digitalWrite(A,HIGH); | |
digitalWrite(B, HIGH); | |
digitalWrite(C, LOW); | |
digitalWrite(D, HIGH); | |
digitalWrite(E, HIGH); | |
digitalWrite(F, LOW); | |
digitalWrite(G, HIGH); | |
} | |
void digit3 () { | |
digitalWrite(A,HIGH); | |
digitalWrite(B, HIGH); | |
digitalWrite(C, HIGH); | |
digitalWrite(D, HIGH); | |
digitalWrite(E, LOW); | |
digitalWrite(F, LOW); | |
digitalWrite(G, HIGH); | |
} | |
void digit4 () { | |
digitalWrite(A,LOW); | |
digitalWrite(B, HIGH); | |
digitalWrite(C, HIGH); | |
digitalWrite(D, LOW); | |
digitalWrite(E, LOW); | |
digitalWrite(F, HIGH); | |
digitalWrite(G, HIGH); | |
} | |
void digit5 () { | |
digitalWrite(A,HIGH); | |
digitalWrite(B, LOW); | |
digitalWrite(C, HIGH); | |
digitalWrite(D, HIGH); | |
digitalWrite(E, LOW); | |
digitalWrite(F, HIGH); | |
digitalWrite(G, HIGH); | |
} | |
void digit6 () { | |
digitalWrite(A,HIGH); | |
digitalWrite(B, LOW); | |
digitalWrite(C, HIGH); | |
digitalWrite(D, HIGH); | |
digitalWrite(E, HIGH); | |
digitalWrite(F, HIGH); | |
digitalWrite(G, HIGH); | |
} | |
void digit7 () { | |
digitalWrite(A,HIGH); | |
digitalWrite(B, HIGH); | |
digitalWrite(C, HIGH); | |
digitalWrite(D, LOW); | |
digitalWrite(E, LOW); | |
digitalWrite(F, LOW); | |
digitalWrite(G, LOW); | |
} | |
void digit8 () { | |
digitalWrite(A, HIGH); | |
digitalWrite(B, HIGH); | |
digitalWrite(C, HIGH); | |
digitalWrite(D, HIGH); | |
digitalWrite(E, HIGH); | |
digitalWrite(F, HIGH); | |
digitalWrite(G, HIGH); | |
}; | |
void digit9 () { | |
digitalWrite(A, HIGH); | |
digitalWrite(B, HIGH); | |
digitalWrite(C, HIGH); | |
digitalWrite(D, HIGH); | |
digitalWrite(E, LOW); | |
digitalWrite(F, HIGH); | |
digitalWrite(G, HIGH); | |
} | |
//function to display digit from inputed int | |
void showdigit (int digit) | |
{ | |
switch (digit) { | |
case 0: | |
digit0 (); | |
break; | |
case 1: | |
digit1 (); | |
break; | |
case 2: | |
digit2 (); | |
break; | |
case 3: | |
digit3 (); | |
break; | |
case 4: | |
digit4 (); | |
break; | |
case 5: | |
digit5 (); | |
break; | |
case 6: | |
digit6 (); | |
break; | |
case 7: | |
digit7 (); | |
break; | |
case 8: | |
digit8 (); | |
break; | |
case 9: | |
digit9 (); | |
break; | |
default: | |
break; | |
} | |
} | |
void loop () | |
{ | |
for (int i=0;i<10;i++) { //counting from 0 to 9 | |
showdigit(i); | |
delay (1000); // 1000ms= 1s delay | |
} | |
} |
***************************************************
Montien Ngamkaew
***************************************************
ไม่มีความคิดเห็น:
แสดงความคิดเห็น