View difference between Paste ID: M8KLTRTN and PvkY5CQg
SHOW: | | - or go back to the newest paste.
1
//Programa : Sensores de presenca com rele
2-
//Autor : Matheus Mazotto
2+
//Autor : Alberio LIma
3-
int pinosensor = 2; //Pino ligado ao sensor PIR
3+
//use resistores pull-down ou pull-up nas portas de entradas
4-
int pinosensor1 = 3; //Pino ligado ao sensor PIR
4+
5
#define SENSOR1  2     //Pino ligado ao sensor PIR
6-
int pinorele = 8; //Pino ligado ao rele
6+
#define SENSOR2  3     //Pino ligado ao sensor PIR
7-
int pinorele1 = 9; //Pino ligado ao rele
7+
#define RELE1    8     //Pino ligado ao rele
8
#define RELE2    9     //Pino ligado ao rele
9-
int acionamento; //Variavel para guardar valor do sensor
9+
#define TEMPO1   1000  //1 segundo, tempo que o rele1 ficara ativo
10-
int acionamento1; //Variavel para guardar valor do sensor
10+
#define TEMPO2   10000 //10 segundos, tempo que o rele2 ficara ativo
11
 
12
unsigned long tempo_final1 = 0;
13
unsigned long tempo_final2 = 0;
14-
  pinMode(pinorele, OUTPUT); //Define pino rele como saida
14+
 
15-
  pinMode(pinorele1, OUTPUT); //Define pino rele1 como saida
15+
16-
  pinMode(pinosensor, INPUT); //Define pino sensor como entrada
16+
17-
  pinMode(pinosensor1, INPUT); //Define pino sensor1 como entrada
17+
  pinMode(RELE1, OUTPUT); //Define pino rele como saida
18
  pinMode(RELE2, OUTPUT); //Define pino rele1 como saida
19
  pinMode(SENSOR1, INPUT); //Define pino sensor como entrada
20
  pinMode(SENSOR2, INPUT); //Define pino sensor1 como entrada
21-
void loop()
21+
 
22
  digitalWrite( RELE1, LOW );
23-
  acionamento = digitalRead(pinosensor); //Le o valor do sensor PIR
23+
  digitalWrite( RELE2, LOW );
24-
  acionamento1 = digitalRead(pinosensor1); //Le o valor do sensor PIR2
24+
25
}
26-
  if (acionamento == LOW) //Sem movimento, mantem rele desligado
26+
 
27-
  {
27+
void loop(){
28-
    digitalWrite(pinorele, LOW);
28+
 
29-
    Serial.println("Parado");
29+
  
30
  //Bloco do rele1
31-
  else //Caso seja detectado um movimento, aciona o rele
31+
  if ( digitalRead(RELE1) == HIGH ) { //Verifica se o rele esta ligado para entao desligar
32-
  {
32+
    if ( millis() >= tempo_final1  ){
33-
    {
33+
      digitalWrite( RELE1, LOW );
34-
      digitalWrite(pinorele, HIGH);
34+
      Serial.println("rele 1 desligado");
35-
      Serial.println("Movimento !!!");
35+
36
  }
37
  
38-
  if (acionamento1 == LOW) //Sem movimento, mantem rele desligado
38+
  if( ( digitalRead(SENSOR1) == HIGH ) && ( digitalRead(RELE1) == LOW )) { //Se o sensor for ativado e o rela ainda nao estiver ativo, ativa e inicia a contagem
39-
  {
39+
    digitalWrite( RELE1, HIGH );
40-
    digitalWrite(pinorele1, LOW);
40+
    tempo_final1 = millis() + TEMPO1;
41-
    Serial.println("Parado2");
41+
    Serial.println("rele 1 ligado e contagem iniciada");
42
  }    
43-
  else //Caso seja detectado um movimento, aciona o rele
43+
  
44-
  {
44+
  //Bloco do rele2
45-
    {
45+
  if ( digitalRead(RELE2) == HIGH ) { //Verifica se o rele esta ligado para entao desligar
46-
      digitalWrite(pinorele1, HIGH);
46+
    if ( millis() >= tempo_final2  ){
47-
      Serial.println("Movimento2 !!!");
47+
      digitalWrite( RELE2, LOW );
48
      Serial.println("rele 2 desligado");
49
    }
50
  }
51
  
52
  if( ( digitalRead(SENSOR2) == HIGH ) && ( digitalRead(RELE2) == LOW )) { //Se o sensor for ativado e o rela ainda nao estiver ativo, ativa e inicia a contagem
53
    digitalWrite( RELE2, HIGH );
54
    tempo_final2 = millis() + TEMPO2;
55
    Serial.println("rele 2 ligado e contagem iniciada");
56
  }    
57
  
58
}