Você está na página 1de 5

/*------ Arduino Fire Fighting Robot Code----- */

//Inclui Biblioteca do Servo

#include <Servo.h>

// Inicia o Servo

Servo myservo;

//Cria as Variaveis

int pos = 0;

boolean fire = false;

//Define as Entradas

#define Left_S 9 //Sensor Esquero

#define Right_S 10 //Sensor Direito

#define Forward_S 8 //Sensor Frente

//Define as Saidas

#define LM1 2 //Motor Esquerdo

#define LM2 3 //Motor Esquerdo

#define RM1 4 //Motor Direito

#define RM2 5 //Motor Direito

#define pump 6 //Bomba

void setup()

//Tudo que o arduino ira fazer uma unica vez

//Define os pinos como entrada e saida

pinMode(Left_S, INPUT);

pinMode(Right_S, INPUT);
pinMode(Forward_S, INPUT);

pinMode(LM1, OUTPUT);

pinMode(LM2, OUTPUT);

pinMode(RM1, OUTPUT);

pinMode(RM2, OUTPUT);

pinMode(pump, OUTPUT);

//Define o pino do Servo

myservo.attach(11);

//Coloca o Servo no angulo de 90 Graus

myservo.write(90);

// Void que apaga o fogo

void put_off_fire()

//Gera um atraso de 500 Milissegundo

delay (500);

//Anda para frente reto

digitalWrite(LM1, HIGH);

digitalWrite(LM2, HIGH);

digitalWrite(RM1, HIGH);

digitalWrite(RM2, HIGH);

//Liga a Bomba

digitalWrite(pump, HIGH);

//Atraso de 500 milissegundos

delay(500);
//Vai girar 80 Graus para a direita

for (pos = 50; pos <= 130; pos += 1) {

myservo.write(pos);

delay(10);

//Vai Girar 80 Graus para a esquerdo

for (pos = 130; pos >= 50; pos -= 1) {

myservo.write(pos);

delay(10);

//Desliga a bomba

digitalWrite(pump,LOW);

//Retorna para 90 Graus

myservo.write(90);

//Define que acabou o fogo

fire=false;

void loop()

//Define o servo em 90 Graus

myservo.write(90); //Sweep_Servo();

if (digitalRead(Left_S) ==1 && digitalRead(Right_S)==1 && digitalRead(Forward_S) ==1) //Se


não tiver fogo

digitalWrite(LM1, HIGH);

digitalWrite(LM2, HIGH);
digitalWrite(RM1, HIGH);

digitalWrite(RM2, HIGH);

else if (digitalRead(Forward_S) ==0) //Se o fogo estiver na frente

digitalWrite(LM1, HIGH);

digitalWrite(LM2, LOW);

digitalWrite(RM1, HIGH);

digitalWrite(RM2, LOW);

fire = true;

else if (digitalRead(Left_S) ==0) //Se o fogo estiver na esquerda

digitalWrite(LM1, HIGH);

digitalWrite(LM2, LOW);

digitalWrite(RM1, HIGH);

digitalWrite(RM2, HIGH);

else if (digitalRead(Right_S) ==0) //Se o fogo estiver na direita

digitalWrite(LM1, HIGH);

digitalWrite(LM2, HIGH);

digitalWrite(RM1, HIGH);

digitalWrite(RM2, LOW);

delay(300); //Velocidade de Leitura dos Sensores

while (fire == true)

put_off_fire();
}

}]

Você também pode gostar