// Test Code C++ || Mission Config x2 Projects.
// ตัวแปร ใช้สำหรับอุปกรณ์ HC-SR04
int trigger = 2 ;
int echo = 13 ;
long duration = 0;
int cm = 0;
int inch = 0;
// ตัวแปร ใช้สำหรับ ควบคุมการเปิด/ปิด segment
int A = 6 ;
int B = 7 ;
int C = 8 ;
int D = 9 ;
int E = 10 ;
int F = 11 ;
int G = 12 ;
//int DP = ;
// ตัวแปร สำหรับ ควบคุมการแสดงผลตามตำแหน่ง 4digits
int DIG4 = 5 ;
int DIG3 = 4 ;
int DIG2 = 3 ;
//int DIG1 = ;
const int PIN[7] ={A,B,C,D,E,F,G}; //อาร์เรย์ เก็บข้อมูลsegmentและควบคุมการเปิด/ปิดไฟ
const int DIG[3] ={DIG4,DIG3,DIG2}; // อาร์เรย์ ควบคุมการใช้งานแสดงผลในแต่ละคำแหน่ง
const int NUMBER[10] ={//เรียงลำดับดังนี้ >> พิม 0b ตามด้วย 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
};
void setup() {
Serial.begin(9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
//pinMode(DP, OUTPUT);
pinMode(DIG4, OUTPUT);
pinMode(DIG3, OUTPUT);
pinMode(DIG2, OUTPUT);
//pinMode(DIG1, OUTPUT);
}
void loop() {
sensorReview();
delay(10);
digitalWrite(A, !HIGH);
digitalWrite(B, !HIGH);
digitalWrite(C, !HIGH);
digitalWrite(D, !HIGH);
digitalWrite(E, !HIGH);
digitalWrite(F, !HIGH);
digitalWrite(G, !HIGH);
digitalWrite(DIG4, HIGH);
digitalWrite(DIG3, HIGH);
digitalWrite(DIG2, HIGH);
//digitalWrite(DIG1, LOW);
}
void sensorReview() {
digitalWrite(trigger, LOW);
digitalWrite(trigger, HIGH);
digitalWrite(trigger, LOW);
duration = pulseIn(echo,HIGH);
cm = duration*0.034/2;
inch = duration*0.0133/2;
Serial.print("CM: ");
Serial.println(cm);
delay(1000);
}
/*
void insteadNumber() {
DIG[0]
}
*/
int showNumber(int count) {
count = 0;
while (true) {
displayNumber(2, (count % 1000) / 100); // หลักร้อย
displayNumber(1, (count % 100) / 10); // หลักสิบ
displayNumber(0, count % 10); // หลักหน่วย
count++;
if (count == 10000) {
count = 0;
};
};
}
void displayNumber(int digit , int number) {
for(int i=0; i<7; i++){
digitalWrite(PIN[i],bitRead(NUMBER[number],i));
}
for(int i=0; i<4; i++){
digitalWrite(DIG[i],i==digit);
}
delayMicroseconds(1000);
}