// Reference https://docs.wokwi.com/parts/wokwi-ntc-temperature-sensor
#include <math.h>
#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 < sizeof(ledArray) / sizeof(ledArray[0]); i++) {
pinMode(ledArray[i], OUTPUT);
}
pinMode(sensorPin, INPUT); // Initialize sensor pin
}
void loop() {
// Read the sensor value, calculate the temperature, light up the LEDs
int analogValue = analogRead(sensorPin);
float voltage = (analogValue / 1023.0) * 5.0;
float resistance = (1000.0 * voltage) / (5.0 - voltage);
float temperatureK = 1.0 / (1.0 / 298.15 + (1.0 / BETA) * log(resistance / 1000.0)); // Use BETA value and correct resistance calculation
float temperatureC = temperatureK - 273.15;
int ledLevel = map(temperatureC, -24, 80, 0, sizeof(ledArray) / sizeof(ledArray[0]));
for (int i = 0; i < sizeof(ledArray) / sizeof(ledArray[0]); i++) {
digitalWrite(ledArray[i], i < ledLevel ? HIGH : LOW);
}
delay(100); // Adjust delay for better visualization
}