// code c++ setup Arduino UNO R3 control to 7segment display 4digits mission shownumber system.
int A = 2;
int B = 3;
int C = 4;
int D = 5;
int E = 6;
int F = 7;
int G = 8;
int DP= 9;
int DIG4 = 10;
int DIG3 = 11;
int DIG2 = 12;
int DIG1 = 13;
//const int COMMON[2] ={anode , cathone}; // ระบุโหมดที่ใช้งาน
const int DIG[4] ={DIG1, DIG2, DIG3, DIG4}; // ขาควบคุมหลัก
const int PIN[7] ={A, B, C, D, E, F, G}; // ขาควบคุม Segment
const int NUMBER[10] = {//เรียงลำดับตัวแปรดังนี้ G F E D C B A
0b1000000, // 0
0b1111001, // 1
0b0100100, // 2
0b0110000, // 3
0b0011001, // 4
0b0010010, // 5
0b0000010, // 6
0b1111000, // 7
0b0000000, // 8
0b0010000, // 9
};
const int CLEAR[6] ={//เรียงลำดับตัวแปรดังนี้ G F E D C B A
0b0000000, // set 0
0b1111111, // set 1
0b0000011, // B
0b0000110, // E
0b0001000, // R
0b0011111, // b
};
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(PIN[i], OUTPUT); // ตั้งค่าขา Segment เป็น Output
}
for (int i = 0; i < 4; i++) {
pinMode(DIG[i], OUTPUT); // ตั้งค่าขาควบคุมหลักเป็น Output
}
}
void loop() {
for(int n=0;n<10;n++) {
/*{
Number(3,9);
}*/
for (int d=0; d<4; d++) {
digitalWrite(DIG[1], HIGH);
}
for (int p=0; p<7; p++){
digitalWrite(PIN[p],bitRead(NUMBER[0],p));
}
delay(10);
}
}
void Number(int digit , int number) {
for (int i = 0; i < 7; i++) {
digitalWrite(PIN[i],bitRead(NUMBER[number],i)); //ปรับค่าเพื่อBitการแสดงผลที่ถูกต้อง
}
// เลือกหลักที่ต้องการแสดง
for (int i = 0; i < 4; i++) {
digitalWrite(DIG[i], i == digit);
}
delay(10);
}
/*
void showNumber() {
for(int num : NUMBER){
digitalRead(num) ;
}
}
*/
/*
void displayNumber(int digit, int number) {
// ทำให้ Segment แสดงตัวเลขตามที่ต้องการ
for (int i = 0; i < 7; i++) {
digitalWrite(PIN[i],bitRead(NUMBER[number],i)); //ปรับค่าเพื่อBitการแสดงผลที่ถูกต้อง
}
// เลือกหลักที่ต้องการแสดง
for (int i = 0; i < 4; i++) {
digitalWrite(DIG[i], i == digit);
}
delay(10); // ปรับเวลา delay ตามต้องการ
}
void loop() {
int count = 0;
while (true) {
displayNumber(3, count / 1000); // หลักพัน
displayNumber(2, (count % 1000) / 100); // หลักร้อย
displayNumber(1, (count % 100) / 10); // หลักสิบ
displayNumber(0, count % 10); // หลักหน่วย
count++;
if (count == 10000) {
count = 0;
}
}
}
*/