You are on page 1of 4

char val;

int ledpin = 13;


String liga = "l";
String ligar_carro = "i";
String dados = "";
//variaveis alarme - entrada
int porta = 4; //pegar porta
//variaveis alarme - saida
int sirene = 2; //sirene do alarme
int rele_setas = 6;
int bomba = 8;
//variavel ligar ignicao
int ignicao = 7;
int sensor_porta = 0;

// variable for reading the door

boolean alarme_ligado;
boolean alarme_tocando; //para chavear o pisca
int cont;
void setup() {
pinMode(ledpin, OUTPUT); // pin
pinMode(porta, INPUT); // pin X sensor porta
digitalWrite (porta,HIGH); //ativa a porta em pull up
pinMode(sirene, OUTPUT);
pinMode(rele_setas, OUTPUT);
pinMode(bomba, OUTPUT);

pinMode(ignicao, OUTPUT);
alarme_ligado = true;
alarme_tocando = false;
cont = 0;
Serial.begin(9600);

// start serial communication at 9600bps

}
void loop() {
while( Serial.available() )
{
val = Serial.read();

dados+=val;
Serial.println("\n\nLendo a porta serial: ");
Serial.println("Valor dos dados: " + val);
}
ativacao();
//Testa se tem dados na variavel e verifica se recebeu mensagem
para ativar ou desativar
acionaAlarme(); //Verifica se sirene esta ativa // ou ativa ela
chaveamentoLanterna(); // faz a lanterna do carro piscar
delay(200);

// wait 100ms for next reading

}
void chaveamentoLanterna(){
if(alarme_tocando){
cont ++;
if(cont<10)
digitalWrite(rele_setas, HIGH);
else
digitalWrite(rele_setas, LOW);
}
if(cont >28)
cont =0;
}
void ativacao(){
Serial.println("\n\nDentro do metodo Ativacao: ");
Serial.println("Valor dos dados: " + dados);
if(dados!= ""){
if( dados.equalsIgnoreCase(liga) )

// if string dados was rece

ived
{
alarme_ligado = !alarme_ligado;
digitalWrite(ledpin, !digitalRead(ledpin)); // turn ON the LED
if(digitalRead(sirene) == LOW){
digitalWrite(sirene, HIGH); // Toque na sirene
digitalWrite(rele_setas, HIGH);
delay(500);
digitalWrite(sirene, LOW); // Toque na sirene
digitalWrite(rele_setas, LOW);
}
}
else {
if( dados.equalsIgnoreCase(ligar_carro) ){
s was received

// if string dado

//COLOCAR IF COM VARIAVEL LEITURA DE MARCHA EM PONTO MORTO


// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- digitalWrite(ignicao, HIGH); // otherwise turn it OFF
delay(2300);
digitalWrite(ignicao, LOW); // otherwise turn it OFF
// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- }
}
recetaDados();
}
}
void recetaDados(){
// Serial.println("\n\nDentro do metodo Receta Dados: ");
// Serial.println("Valor dos dados: " + dados);
dados = "";
//Serial.println("\nValor novo dos dados recet: " + dados);
}
void acionaAlarme(){
if(alarme_ligado){
sensor_porta = digitalRead(porta);
if (sensor_porta == HIGH) {
if(digitalRead(sirene) == LOW){
digitalWrite(sirene, HIGH); // turn ON the LED
digitalWrite(bomba, HIGH); // turn ON the LED
alarme_tocando = true;
//
digitalWrite(rele_setas, HIGH);
}
}
}
else{
if(digitalRead(sirene) == HIGH){
digitalWrite(sirene, LOW); // turn ON the LED
digitalWrite(bomba, LOW); // turn ON the LED
// digitalWrite(rele_setas, LOW);
alarme_tocando = false;
cont =0;
}
}
}

You might also like