#define RED_LED_ENABLE_N 11
#define GREEN_LED_ENABLE_N 10
#define BLUE_LED_ENABLE_N 9
#define BUTTON_IN 7
#define ANALOG_IN A0
const float BETA = 3950; // should match the Beta Coefficient of the thermistor
int count = 0;
void setup() {
// put your setup code here, to run once:
pinMode(RED_LED_ENABLE_N, OUTPUT);
pinMode(GREEN_LED_ENABLE_N, OUTPUT);
pinMode(BLUE_LED_ENABLE_N, OUTPUT);
pinMode(BUTTON_IN, INPUT_PULLUP);
digitalWrite(RED_LED_ENABLE_N, HIGH);
digitalWrite(GREEN_LED_ENABLE_N, HIGH);
digitalWrite(BLUE_LED_ENABLE_N, HIGH);
Serial.begin(9600);
}
void loop() {
// Read from temperature sensor
int analogValue = analogRead(ANALOG_IN);
// See: https://docs.wokwi.com/parts/wokwi-ntc-temperature-sensor
float celsius = 1.0f / (log(1.0f / (1023.0f / analogValue - 1)) / BETA + 1.0f / 298.15f) - 273.15f;
// print every 1 second
if (count == 10)
{
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.println(" ℃");
count = 0;
}
count++;
if (celsius > 40.0f)
{
digitalWrite(RED_LED_ENABLE_N, digitalRead(BUTTON_IN));
}
else if (celsius < 0.0f)
{
digitalWrite(BLUE_LED_ENABLE_N, digitalRead(BUTTON_IN));
}
else
{
digitalWrite(GREEN_LED_ENABLE_N, digitalRead(BUTTON_IN));
}
delay(100);
}