reparar codigos por dinero

Necesito reparar este codigo por que en ocaciones al inicio enciende los tres reles si es por dienero que sea en mexico solo pago por intermedio de oxxo transferencia mi correo riegosnaturalel@gmail.com este codigo es uno de varios que quiero reparar y necesito crear varios

#define R1 8
#define R2 9 
#define R3 10
#define pinFlama 2
int flama;

void setup() {
  pinMode(R1,OUTPUT);
  pinMode(R2,OUTPUT);
  pinMode(R3,OUTPUT);
  pinMode(pinFlama,INPUT);
  
}

void loop() {
  delay(5000);  
  digitalWrite(R1,HIGH);  
  digitalWrite(R2,HIGH);
  delay(5000);  

  flama=digitalRead(pinFlama);
    
  if(flama==HIGH){
  digitalWrite(R3,HIGH);
  digitalWrite(R2,HIGH);  
  delay(10000);
  digitalWrite(R1,LOW);  
  }

  do{
    flama=digitalRead(pinFlama);
    }while(flama==HIGH);

  if(flama==LOW){
    digitalWrite(R1,LOW);  
    digitalWrite(R2,LOW);
    digitalWrite(R3,LOW);
    delay(9000);
    }
}

saludos desde queretaro

Y porque no pides ayuda antes de nada por aqui como hacemos todos? seguramente obtendrás la solucion, pues no es un codigo muy complicado (según se ve, y sin saber lo que realmente pretendes hacer).

Explícanos que ha de hacer y que arduino usas, deberías empezar a leer sobre el uso de millis en vez de usar delays.
Tienes conectada una resistencia de pullup o pulldown en la entrada flama? Si no la pones tendrás lecturas aleatorias que te dispararan la entrada sin que lo este.

Si tiene una resistencia pullup externa uso un arduino uno y si me encantaria hace lo con millis pero no se usar millis