Mostrando postagens com marcador if. Mostrar todas as postagens
Mostrando postagens com marcador if. Mostrar todas as postagens

segunda-feira, 29 de dezembro de 2014

Central de alarme com Arduino UNO ( SECURITY SYSTEM V1.0 )

   A partir de uma necessidade pessoal, desenvolvi uma central de alarme residencial com um Arduino UNO. Um sistema básico com dois setores e sem nenhum led indicador ou display, porque necessitava de algo rápido e prático.
   Analisando os componentes que eu tinha em mãos, constatei que seria possível dar inicio ao projeto.

Abaixo os componentes utilizados:

Fonte AC/DC 12V 1A:



Sirene 12V (genérica):




Controle remoto RF 4 canais + receptor <<<(clique para ver tutorial)





Shield Xbee com dois relés



Arduino UNO R3 <<<(clique para ler sobre Arduino UNO R3)



2 Interruptores para simular os sensores na prototipagem, que neste caso eu utilizei dois módulos da iriel.



A respeito do Shield Xbee, ele pode ser dissubstituído por um simples modulo relé de 1 canal, utilizei este por ser o que eu tinha disponível no momento.

Código:
---------------------------------------------------------------------------------------------------------------------

//CENTRAL DE ALARME 1.0
//POR: MICHEL BACK
//INICIO DA PROTOTIPAGEM 29/12/2014

boolean sirene = 4; // define saida do relé que irá acionar a sirene (padrão da shield é o pino 4 para relé 1)
boolean armaset1 = A0; // define entrada que recebe comando do controle remoto (setor1)
boolean armaset2 = A1; // define entrada que recebe comando do controle remoto (setor1)
boolean setor1 = 8; // define entrada do setor 1
boolean setor2 = 7; // define entrada do setor 2
boolean x1; // variavel de entretravamento
boolean x2; // variável de entretravamento

void setup(){
  
  pinMode(sirene, OUTPUT);
  pinMode(armaset1, INPUT);
  pinMode(armaset2, INPUT);
  pinMode(setor1, INPUT);
  pinMode(setor2, INPUT);
  
  x1 = 0 ; // iguala a zero para iniciar setor desarmado
  x2 = 0 ; // iguala a zero para iniciar setor desarmado
}
void loop() {
  
  if(digitalRead(armaset1) == HIGH & x1 == 0){ // se setor 1 estiver desarmado e pressionar botao A
    digitalWrite(sirene, HIGH); // sinal sonoro 1 beep
    delay(150);
    digitalWrite(sirene, LOW);
    x1 = 1; // arma setor 1
    
    }
    
   if(digitalRead(armaset1) == HIGH & x1 == 1){ // se setor 1 estiver armado e pressionar botao A
    digitalWrite(sirene, HIGH); // sinal sonoro 2 beep
    delay(150);
    digitalWrite(sirene, LOW);
    delay(150);
    digitalWrite(sirene, HIGH);
    delay(150);
    digitalWrite(sirene, LOW);
    x1 = 0; // desarma setor 1
    }
    
  if(digitalRead(armaset2) == HIGH & x2 == 0){ // se setor 2 estiver desarmado e pressionar botao B
    digitalWrite(sirene, HIGH); // sinal sonoro 1 beep
    delay(150);
    digitalWrite(sirene, LOW);
    x2 = 1; // arma setor 2
   }
     if(digitalRead(armaset2) == HIGH & x2 == 1){ // se setor 2 estiver armado e pressionar botao B
    digitalWrite(sirene, HIGH);// sinal sonoro 2 beep
    delay(150);
    digitalWrite(sirene, LOW);
    delay(150);
    digitalWrite(sirene, HIGH);
    delay(150);
    digitalWrite(sirene, LOW);
    x2 = 0; // desarma setor 2
   }
if( x1 == 1 & digitalRead(setor1 ) == LOW){ // se setor 1 estiver armado e setor 1 estiver aberto
 digitalWrite(sirene, HIGH); //dispara alarme. Para silenciar basta desarmar setor
}

if( x2 == 1& digitalRead(setor2 ) == LOW ){ // se setor 1 estiver armado e setor 1 estiver aberto
   digitalWrite(sirene, HIGH); //dispara alarme. Para silenciar basta desarmar setor
}

}
--------------------------------------------------------------------------------------------------------------------------
Ligação do receptor RF


Como utilizei apenas 2 setores, será necessário ligar apenas os pinos D0 e D1 do receptor nas entradas A0 e A1 respectivamente.


Ligação de sensores de presença



Ligação de sensores magnéticos ( reed switch )



Setor 1 = Pino 8
Setor 2 = Pino 7


CONTINUA....

segunda-feira, 7 de julho de 2014

Condição if e operadores de comparação.

O que é o "if" ?


 "if " que traduzido para o Português significa "se". É o nome da condição que testa uma comparação entre duas ou mais variáveis ou valores constantes. As comparações a serem feitas, são representadas através dos operadores de comparação citados abaixo.

Operadores de comparação:


  [1] x == y (x é igual a y)
  [2] x! = y (x não é igual a y)
  [3] x <y (x é menor que y)
  [4] x> y (x é maior que y)
  [5] x <= y (x é menor ou igual a y)
  [6] x> = y (x é maior  ou igual a y)
  [7] (x & y) = 1 (x e y forem igual a 1) [ lógica AND ]
  [8] (x | y) = 1 (x ou y for igual a 1) [ lógica OR]


   O programa testa a condição imposta dentro do if, caso esta for verdadeira, serão executados os comandos contidos entre as chaves do if {}. Caso for falsa, o programa ignora os comandos.

Exemplo [1]:                              Exemplo [2]:    


if( x == 1){                                             if( x != 1){
digitalWrite(led,HIGH);                          digitalWrite(led,HIGH);
}                                                            }

Que quer dizer:                                      Que quer dizer:

Se x for igual a 1. Liga o led.                  Se x for diferente de 1. Liga o led.

===============================================================

Exemplo [3]:                              Exemplo [4]:    


if( x < 1){                                               if( x > 1){
digitalWrite(led,HIGH);                          digitalWrite(led,HIGH);
}                                                            }

Que quer dizer:                                      Que quer dizer:

Se x for menor que 1. Liga o led.           Se x for maior que 1. Liga o led.

===============================================================

Exemplo [5]:                              Exemplo [6]:  


if( x <= 1){                                             if( x >= 1){
digitalWrite(led,HIGH);                          digitalWrite(led,HIGH);
}                                                            }

Que quer dizer:                                      Que quer dizer:

Se x for menor ou igual 1. Liga o led.     Se x for maior ou igual a 1. Liga o led.

===============================================================

Exemplo [7]:                              Exemplo [8]:


if((x & y) = 1){                                       if((x | y) = 1){
digitalWrite(led,HIGH);                          digitalWrite(led,HIGH);
}                                                            }

Que quer dizer:                                      Que quer dizer:

Se x e y forem igual a 1. Liga o led.        Se x ou y for igual a 1. Liga o led.

===============================================================

   Caso você omitir as chaves após a declaração do if, apenas uma instrução será executada apos o teste condicional, veja os exemplos:

if (x > 120) digitalWrite(pinoLED, HIGH);
/*notem que não existem chaves, isto implica que caso a
condição x>120 for verdadeira, apenas o comando digitalWrite será executado  */

if (x > 120)
digitalWrite(pinoLED, HIGH);

if (x > 120){ digitalWrite(pinoLED, HIGH); }

if (x > 120){
  digitalWrite(LEDpino1, HIGH);
  digitalWrite(LEDpino2, HIGH);
}                                 // todas as formas estão corretas

Atenção!

   Cuidado para não utilizar acidentalmente um único igual (=) (exemplo: if (x = 10) ), para efetuar comparações. O igual sozinho é utilizado para efetuar atribuições e seta por exemplo x igual a 10. O correto é utilizar o sinal duplo (==).

else


   Como complemento do " if " podemos utilizar o "else", que traduzido para o português significa "senão". Para entender como funciona, veja o exemplo abaixo:

If ( condição){
comando1;
}
else{
comando2
}

Que quer dizer:

Se a condição for verdadeira, executa o comando 1. Senão, executa o comando 2.


Fonte : http://ads.tt/15OGK