#define sensorPin A0
#define BETA 3950
#define SERIES_RESISTOR 10000 // 10k ohm series resistor
int ledArray[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
void setup() {
for (int i = 0; i < 10; i++) {
pinMode(ledArray[i], OUTPUT); // Initialize LED pins as output
}
Serial.begin(9600); // Initialize serial communication for debugging
}
void loop() {
int analogValue = analogRead(sensorPin);
float temperature = calculateTemperature(analogValue);
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
displayTemperature(temperature);
delay(10);
}
float calculateTemperature(int analogValue) {
float resistance = SERIES_RESISTOR / (1023.0 / analogValue - 1.0);
float temperature = 1.0 / (log(resistance / SERIES_RESISTOR) / BETA + 1.0 / 298.15) - 273.15;
return temperature;
}
void displayTemperature(float temperature) {
int numLEDs = map(temperature, -24, 80, 0, 10);
numLEDs = constrain(numLEDs, 0, 10);
for (int i = 0; i < 10; i++) {
if (i < numLEDs) {
digitalWrite(ledArray[i], HIGH);
} else {
digitalWrite(ledArray[i], LOW);
}
}
}