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 | } |