// Reference https://docs.wokwi.com/parts/wokwi-ntc-temperature-sensor
#define sensorPin A0
#define BETA 3950
int ledArray[] = {4,5,6,7,8,9,10,11,12,13};
void setup() {
// initialize LEDs and sensor pin
for (int i = 0; i < 10; i++) {
pinMode(ledArray[i], OUTPUT);
digitalWrite(ledArray[i], LOW); // Start with LED OFF
}
}
void loop() {
// Read the sensor value , calculate the temperature, light up the leds
int analogValue = analogRead(sensorPin);
// Convert analog value to temprature in Celsius using BETA foumula
float tempC = 1 / (log(1.0 * (1023 - analogValue) / analogValue) / BETA + 1.0 / 298.15) -273.15;
// Map temperature from -24'C to 80'C into 0-10 LED levels
int ledCount = map(tempC, -24, 80, 0, 10);
// Clamp ledCount to valid range
ledCount = constrain(ledCount, 0, 10);
// Light up LED according to temperature levle
for(int i = 0; i < 10; i++) {
if (i < ledCount){
digitalWrite(ledArray[i], HIGH);
}
else {
digitalWrite(ledArray[i], LOW);
}
}
delay(10); // this speeds up the simulation
}