#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is connected to Arduino pin 2
#define ONE_WIRE_BUS 3
#define LED_PIN 5
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
// Pass the oneWire reference to DallasTemperature library
DallasTemperature sensors(&oneWire);
void setup(void)
{
Serial.begin(9600);
sensors.begin(); // Start up the library
pinMode(LED_PIN, OUTPUT);
}
void loop(void)
{
sensors.requestTemperatures(); // Send command to get temperatures
float tempC = sensors.getTempCByIndex(0); // Read the temperature in Celsius
int delay_interval = 1000;
if (tempC != DEVICE_DISCONNECTED_C)
{
Serial.print("Temperature: ");
Serial.print(tempC);
Serial.println("°C");
delay_interval = 1000 - tempC * 10;
if (delay_interval < 0) {
delay_interval = 0;
}
Serial.print("delay: ");
Serial.println(delay_interval);
ledBlinking(delay_interval, LED_PIN);
}
else
{
Serial.println("Error: Could not read temperature data. Is the device connected?");
ledBlinking(10000, LED_PIN); // 10 seconds interval
}
}
void ledBlinking(int delay_interval, int led_pin) {
digitalWrite(led_pin, HIGH);
delay(50);
digitalWrite(led_pin, LOW);
delay(delay_interval);
}