const float BETA = 3950;
int d1pin = 9;
int d2pin = 10;
int echoPin = 11;
int trigPin = 12;
void zero() { digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,LOW); digitalWrite(7,LOW); digitalWrite(8,HIGH); }
void one() { digitalWrite(2,HIGH); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,HIGH); }
void two() { digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,HIGH); digitalWrite(5,LOW); digitalWrite(6,LOW); digitalWrite(7,HIGH); digitalWrite(8,LOW); }
void three() { digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,LOW); }
void four() { digitalWrite(2,HIGH); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,LOW); digitalWrite(8,LOW); }
void five() { digitalWrite(2,LOW); digitalWrite(3,HIGH); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,HIGH); digitalWrite(7,LOW); digitalWrite(8,LOW); }
void six() { digitalWrite(2,LOW); digitalWrite(3,HIGH); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,LOW); digitalWrite(7,LOW); digitalWrite(8,LOW); }
void seven() { digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,HIGH); }
void eight() { digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,LOW); digitalWrite(7,LOW); digitalWrite(8,LOW); }
void nine() { digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,HIGH); digitalWrite(7,LOW); digitalWrite(8,LOW); }
int getDigit(int number, int position) {
number = (number < 0) ? -number : number;
int divisor = 1;
for (int i = 0; i < position; ++i) {
divisor *= 10;
}
int digit = (number / divisor) % 10;
return digit;
}
typedef void (*DigitFunction)();
DigitFunction digitFunctions[] = {zero, one, two, three, four, five, six, seven, eight, nine};
void displayNumber(int number) {
int digit1 = getDigit(number, 1);
int digit2 = getDigit(number, 0);
digitFunctions[digit1]();
digitalWrite(d1pin, HIGH);
digitalWrite(d2pin, LOW);
delay(15);
digitalWrite(d1pin, LOW);
digitFunctions[digit2]();
digitalWrite(d2pin, HIGH);
delay(15);
digitalWrite(d2pin, LOW);
}
void setup() {
Serial.begin(9600);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(d1pin,OUTPUT);
pinMode(d2pin,OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
int analogValue = analogRead(A1);
float volt = (analogValue/1023)* 5;
float Temp = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
int duration = pulseIn(echoPin, HIGH);
Serial.print("Distance in CM: ");
Serial.println(duration / 58);
// Serial.print("Temperature: ");
// Serial.print(Temp);
// Serial.println(" ℃");
displayNumber((int)Temp);
delay(150);
}