const float BETA = 3950;
int analogValue = analogRead(A0);
float calculateTemperature(int analogVal) {
float celsius = 1 / (log(1 / (1023.0 / analogVal - 1)) / BETA + 1.0 / 298.15) - 273.15;
return celsius;
}
void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
Serial.begin(9600);
}
void loop() {
int sel = map(analogRead(A1), 0, 1023, 0, 3);
switch (sel) {
case 0:
ch0();
break;
case 1:
ch1();
break;
case 2:
ch2();
break;
case 3:
ch3();
break;
default:
ch3();
break;
}
int val = analogRead(A0);
float temp = calculateTemperature(val);
Serial.print("Temperature=");
Serial.println(temp);
delay(1000);
}
void ch0() {Serial.print("Channe0=");
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}
void ch1() {Serial.print("Channe1=");
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
}
void ch2() {Serial.print("Channel2=");
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
}
void ch3() {Serial.print("Channel3=");
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
}
void tep1(){
Serial.print("Temperature1=");
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
}
void tep2(){
Serial.print("Temperature2=");
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
}
Loading
cd74hc4067
cd74hc4067