//Mission Test mix 2project to config and design code C++
//setup code C++ Control to Arduino UNO R3
//Design Systems Config x2Project
//**เน้นทฤษฎีระบบเป็นหลัก** ของมันต้องมี == INPUT >> PROCESS >> OUTPUT
//กำหนดตัวแปรและการแทนค่า Variables to HC-SR04 Ultrasonic Distance Sensor
int trigger = 2 ;
int echo = 13 ;
long duration = 0;
int cm = 0;
int inch = 0;
// กำหนดตัวแปรและะแทนค่า Variables to 7segment 4 digits
int A = 6 ;
int B = 7 ;
int C = 8 ;
int D = 9 ;
int E = 10 ;
int F = 11 ;
int G = 12 ;
//int DP = ;
int DIG4 = 5 ;
int DIG3 = 4 ;
int DIG2 = 3 ;
int DIG1 = 0 ;
const int PIN[7] ={A,B,C,D,E,F,G}; // สถานะการแสดงผล HIGH=0 , LOW=1
const int DIG[4] ={DIG1,DIG2,DIG3,DIG4}; // สถานะการแสดงผล HIGH=1 , LOW=0
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(cm, OUTPUT);
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() {
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);
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, LOW);
digitalWrite(DIG2, 0);
digitalWrite(DIG1, !LOW);
// showNumber()
}
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(1);
}
void showNumber(int count) {
count = 0;
while (true) {
displayNumber(0, count / 1000); // หลักพัน
displayNumber(1, (count % 1000) / 100); // หลักร้อย
displayNumber(2, (count % 100) / 10); // หลักสิบ
displayNumber(3, count % 10); // หลักหน่วย
count++;
if (count == 10000) {
count = 0;
};
};
}