วันอาทิตย์ที่ 23 ตุลาคม พ.ศ. 2559

เริ่มต้นใช้งาน 7-Segment (1 Digit)

เริ่มต้นใช้งาน 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)

#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);
}
view raw digit5.ino hosted with ❤ by GitHub

       5. ตัวอย่างโปรแกรม นับ 1 - 10

#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
}
}
view raw Count1-10.ino hosted with ❤ by GitHub





***************************************************
Montien Ngamkaew
***************************************************

ไม่มีความคิดเห็น:

แสดงความคิดเห็น