// 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);
}
Serial.begin(9600);
}
void loop() {
// Read the sensor value , calculate the temperature, light up the leds
// Read sensor value
int analogValue = analogRead(sensorPin);
// Calculate temperature in Celsius
float celsius = 1 / (log(1 / (1023.0 / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
// Convert temperature (-24°C to 80°C) into LED levels (0 to 10)
int ledLevel = map(celsius, -24, 80, 0, 10);
// Keep LED level within range
ledLevel = constrain(ledLevel, 0, 10);
// Turn LEDs ON/OFF
for(int i = 0; i < 10; i++) {
if(i < ledLevel)
digitalWrite(ledArray[i], HIGH);
else
digitalWrite(ledArray[i], LOW);
}
// Print temperature
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.println(" C");
delay(10); // this speeds up the simulation
}