int a = 2; //ขา a ต่อเข้ากับ Pin 2
int b = 3; //ขา b ต่อเข้ากับ Pin 3
int c = 4; //ขา c ต่อเข้ากับ Pin 4
int d = 5; //ขา d ต่อเข้ากับ Pin 5
int e = 6; //ขา e ต่อเข้ากับ Pin 6
int f = 7; //ขา f ต่อเข้ากับ Pin 7
int g = 8; //ขา g ต่อเข้ากับ Pin 8
int point = 9; //ขา h หรือจุด ต่อเข้ากับ Pin 9
void setup() {
pinMode(a, OUTPUT); //a
pinMode(b, OUTPUT); //b
pinMode(c, OUTPUT); //c
pinMode(d, OUTPUT); //d
pinMode(e, OUTPUT); //e
pinMode(f, OUTPUT); //f
pinMode(g, OUTPUT); //g
pinMode(point, OUTPUT); //point
}
void showNumber(int number) //สร้าง Function ชื่อ showNumber ที่ใช้ในการแสดงผลตัวเลข โดยรับค่า number จาก void loop มาอีกที การสร้าง fuction จะช่วยให้ประหยัดพื้นที่และทำให้ไม่สับสนในการเรียกใช้งานโปรแกรม
{
//เงื่อนไขที่ Segment a ไฟติด เมื่อไม่ใช่เลข 1 และเลข 4
if(number != 1 && number != 4)
digitalWrite(a,LOW);
//เมื่อมีสถานะเป็น LOW ไฟจะติด เพราะเป็นแบบ Common Anode
//เงื่อนไขที่ Segment b ไฟติด
if(number != 5 && number != 6)
digitalWrite(b,LOW);
//เงื่อนไขที่ Segment c ไฟติด
if(number != 2)
digitalWrite(c,LOW);
//เงื่อนไขที่ Segment d ไฟติด
if(number != 1 && number != 4 && number != 7)
digitalWrite(d,LOW);
//เงื่อนไขที่ Segment e ไฟติด เมื่อเป็นเลข 2 หรือ 6 หรือ 8 หรือ 0
if(number == 2 || number == 6 || number == 8 || number == 0)
digitalWrite(e,LOW);
//เงื่อนไขที่ Segment f ไฟติด
if(number != 1 && number != 2 && number != 3 && number != 7)
digitalWrite(f,LOW);
//เงื่อนไขที่ Segment g ไฟติด
if (number != 0 && number != 1 && number != 7)
digitalWrite(g,LOW);
}
void turnOff() //สร้าง Function ชื่อ turnOff ที่ใช้ในการดับไฟทั้งหมด เพื่อ Reset เมื่อกำลังจะเปลี่ยนเป็นอีกตัวเลขหนึ่ง
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
digitalWrite(point,LOW);
}
void loop() { //ทำการแสดงผลเลข 0 - 9 วนไปเรื่อยๆจนกว่าจะหยุดจ่ายไฟ
for(int i=0;i<10;i++)
{
showNumber(i); //เรียกใช้ Function showNumber โดยส่งค่า i ไปให้ตัวแปร Number ใช้ในการประมวลผล
delay(1000);
turnOff(); //ทำการดับไฟทั้งหมดเมื่อกำลังจะเปลี่ยนตัวเลข เพื่อไม่ให้ไฟดวงเดิมค้างสถานะติดไว้
}
}