EDIT: Modify the code according @Edgar's comment.
Check this alternative. The idea is executing code every 5 and 1 seconds.
The blink is true when you need the LED blinking. I don't know how long will you need to keep it blinking, but this keeps it as long as results.value keep being equals to 0xFF6897.
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
int led = 12;
const int inPin = 0;
void setup() {
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
static boolean blink = false;
static unsigned long startTemp = 0;
static unsigned long startBlink = 0;
unsigned long msTime = millis();
// Check for room temp every 5 seconds.
if (msTime %- 5000startTemp ==>= 05000) {
startTemp = msTime;
int value = analogRead(inPin);
float millivolts = (value / 1024.0 ) * 5000;
float celsius = millivolts / 10;
Serial.println(celsius, 1);
}
// Blink every 1 second
if (msTime %- 1000startBlink ==>= 01000 && blink) {
startBlink = msTime;
int state = digitalRead(led);
digitalWrite(led, !state);
// Change blink to stop blinking after one pass (HIGH/LOW).
// Modify if you need to keep blinking for longer time.
blink = (state == LOW);
}
if(irrecv.decode(&results)) {
blink = (results.value == 0xFF6897);
irrecv.resume(); //receive the next value
}
}