Hello there. I am currently working on my fire extinguisher project. I am using a servo and 5 fire sensors. Everything works just fine for a few times. However after a few on and off, whenever I restarted it, the servo turns 360 degrees and it goes to all direction even though there is no fire. Can anyone help me with this issue?
Here's my code:
#include<Servo.h>
Servo servo1;
int pos = 0;
int flame[5];
int relay = 13;
void setup() {
Serial.begin(9600);
servo1.attach(9);
pinMode(13, OUTPUT);
}
void loop() {
flame[0] = analogRead(A0);
flame[1] = analogRead(A1);
flame[2] = analogRead(A2);
flame[3] = analogRead(A3);
flame[4] = analogRead(A4);
Serial.print("0 = ");
Serial.println(flame[0]);
Serial.print("1 = ");
Serial.println(flame[1]);
Serial.print("2 = ");
Serial.println(flame[2]);
Serial.print("3 = ");
Serial.println(flame[3]);
Serial.print("4 = ");
Serial.println(flame[4]);
Serial.println(" ");
Serial.println(" ");
if(flame[0] >= 500){
servo1.write(20);
delay(2000);
digitalWrite(13, LOW);
delay(1000);
digitalWrite(13, HIGH);
delay(1000);
}
else if(flame[1] >= 500){
servo1.write(60);
delay(2000);
digitalWrite(13, LOW);
delay(1000);
digitalWrite(13, HIGH);
delay(1000);
}
else if(flame[2] >= 500){
servo1.write(90);
delay(2000);
digitalWrite(13, LOW);
delay(1000);
digitalWrite(13, HIGH);
delay(1000);
}
else if(flame[3] >= 500){
servo1.write(120);
delay(2000);
digitalWrite(13, LOW);
delay(1000);
digitalWrite(13, HIGH);
delay(1000);
}
else if(flame[4] >= 500){
servo1.write(160);
delay(2000);
digitalWrite(13, LOW);
delay(1000);
digitalWrite(13, HIGH);
delay(1000);
}
else if(flame[0] <500 && flame[1] <500 && flame[2] <500 && flame[3] <500 && flame[4] <500){
servo1.write(90);
delay(1000);
digitalWrite(13, HIGH);
delay(1000);
}
delay(1000);
}
