// coding by team technical romboz
// tutorial video https://youtu.be/1t2AhUNXxMI
#include <Servo.h> //include servo.h library
Servo myservo;
int pos = 0;
boolean fire = false;
#define flame 8 //flame sesnor
#define LM1 2 // left motor
#define LM2 3 // left motor
#define RM1 4 // right motor
#define RM2 5 // right motor
#define fire_motor 6
void setup()
{
pinMode(flame, INPUT);
pinMode(LM1, OUTPUT);
pinMode(LM2, OUTPUT);
pinMode(RM1, OUTPUT);
pinMode(RM2, OUTPUT);
pinMode(fire_motor, OUTPUT);
myservo.attach(9);
myservo.write(90);
digitalWrite(fire_motor, 1);
}
void put_off_fire()
{
delay (500);
digitalWrite(LM1, HIGH);
digitalWrite(LM2, HIGH);
digitalWrite(RM1, HIGH);
digitalWrite(RM2, HIGH);
digitalWrite(fire_motor, 0);
delay(500);
for (pos = 50; pos <= 130; pos += 1) {
myservo.write(pos);
delay(30);
}
for (pos = 130; pos >= 50; pos -= 1) {
myservo.write(pos);
delay(30);
}
digitalWrite(fire_motor, 1);
myservo.write(90);
fire = false;
}
void loop()
{
myservo.write(90); //Sweep_Servo();
if (digitalRead(flame) == 1)
{
digitalWrite(LM1, HIGH);
digitalWrite(LM2, HIGH);
digitalWrite(RM1, HIGH);
digitalWrite(RM2, HIGH);
}
else if (digitalRead(flame) == 0)
{
digitalWrite(LM1, HIGH);
digitalWrite(LM2, LOW);
digitalWrite(RM1, HIGH);
digitalWrite(RM2, LOW);
fire = true;
}
delay(0);//change this value to increase the distance
while (fire == true)
{
put_off_fire();
}
}
Comments