Arquivado
Este tópico foi arquivado e está fechado para novas respostas.
- 0
ARDUINO NANO + RELE + LEITOR IR
Perguntado por
JPMOFARDINI
Este tópico foi arquivado e está fechado para novas respostas.
Perguntado por
JPMOFARDINI
Ao usar o fórum, você concorda com nossos Termos e condições.
Boa noite,
Fiz um código no Arduíno está funcionando tudo normalmente só gostaria de saber como eu faço um comando para desligar e um para ligar todos os reles
#include <IRremote.h>
const int RECV_PIN = 2; // INCUI O PINO QUE SERÁ USADO NO LED RECEPTOR
IRrecv irrecv(RECV_PIN);
decode_results results;
const int RelayIn1Pin = 3; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN1
const int RelayIn2Pin = 4; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN2
const int RelayIn3Pin = 5; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN3
const int RelayIn4Pin = 6; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN4
const int RelayIn5Pin = 7; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN5
const int RelayIn6Pin = 8; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN6
const int RelayIn7Pin = 9; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN7
const int RelayIn8Pin = 10; // INCUI O PINO QUE SERÁ USADO NO RELÉ IN8
int statusRelayIn1Pin = 0;
int statusRelayIn2Pin = 0;
int statusRelayIn3Pin = 0;
int statusRelayIn4Pin = 0;
int statusRelayIn5Pin = 0;
int statusRelayIn6Pin = 0;
int statusRelayIn7Pin = 0;
int statusRelayIn8Pin = 0;
void setup() {
irrecv.enableIRIn();
irrecv.blink13(true);
pinMode(RelayIn1Pin, OUTPUT); //DEFINE O PINO COMO SAÍDA
pinMode(RelayIn1Pin, INPUT_PULLUP); //DEFINE O PINO COMO ENTRADA / "_PULLUP" É PARA ATIVAR O RESISTOR INTERNO
//DO ARDUINO PARA GARANTIR QUE NÃO EXISTA FLUTUAÇÃO ENTRE 0 (LOW) E 1 (HIGH)
pinMode(RelayIn1Pin, HIGH); //MÓDULO RELÉ INICIA DESLIGADO
pinMode(RelayIn2Pin, OUTPUT);
pinMode(RelayIn2Pin, INPUT_PULLUP);
pinMode(RelayIn2Pin, HIGH);
pinMode(RelayIn3Pin, OUTPUT);
pinMode(RelayIn3Pin, INPUT_PULLUP);
pinMode(RelayIn3Pin, HIGH);
pinMode(RelayIn4Pin, OUTPUT);
pinMode(RelayIn4Pin, INPUT_PULLUP);
pinMode(RelayIn4Pin, HIGH);
pinMode(RelayIn5Pin, OUTPUT);
pinMode(RelayIn5Pin, INPUT_PULLUP);
pinMode(RelayIn5Pin, HIGH);
pinMode(RelayIn6Pin, OUTPUT);
pinMode(RelayIn6Pin, INPUT_PULLUP);
pinMode(RelayIn6Pin, HIGH);
pinMode(RelayIn7Pin, OUTPUT);
pinMode(RelayIn7Pin, INPUT_PULLUP);
pinMode(RelayIn7Pin, HIGH);
pinMode(RelayIn8Pin, OUTPUT);
pinMode(RelayIn8Pin, INPUT_PULLUP);
pinMode(RelayIn8Pin, HIGH);
}
void loop() {
if (irrecv.decode(&results)) {
switch (results.value) {
case 0x807F728D: //Keypad button "1"
if ((digitalRead(RelayIn1Pin) == HIGH) && (statusRelayIn1Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
digitalWrite(RelayIn1Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
statusRelayIn1Pin = 1; //VARIÁVEL RECEBE O VALOR 1
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
} else { //SENÃO, FAZ
if ((digitalRead(RelayIn1Pin) == LOW) && (statusRelayIn1Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
digitalWrite(RelayIn1Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
statusRelayIn1Pin = 0; //VARIÁVEL RECEBE O VALOR 0
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
}
}
}
switch (results.value) {
case 0x807FB04F: //Keypad button "2"
if ((digitalRead(RelayIn2Pin) == HIGH) && (statusRelayIn2Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
digitalWrite(RelayIn2Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
statusRelayIn2Pin = 1; //VARIÁVEL RECEBE O VALOR 1
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
} else { //SENÃO, FAZ
if ((digitalRead(RelayIn2Pin) == LOW) && (statusRelayIn2Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
digitalWrite(RelayIn2Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
statusRelayIn2Pin = 0; //VARIÁVEL RECEBE O VALOR 0
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
}
}
}
switch (results.value) {
case 0x807F30CF: //Keypad button "3"
if ((digitalRead(RelayIn3Pin) == HIGH) && (statusRelayIn3Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
digitalWrite(RelayIn3Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
statusRelayIn3Pin = 1; //VARIÁVEL RECEBE O VALOR 1
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
} else { //SENÃO, FAZ
if ((digitalRead(RelayIn3Pin) == LOW) && (statusRelayIn3Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
digitalWrite(RelayIn3Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
statusRelayIn3Pin = 0; //VARIÁVEL RECEBE O VALOR 0
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
}
}
}
switch (results.value) {
case 0x807F52AD: //Keypad button "4"
if ((digitalRead(RelayIn4Pin) == HIGH) && (statusRelayIn4Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
digitalWrite(RelayIn4Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
statusRelayIn4Pin = 1; //VARIÁVEL RECEBE O VALOR 1
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
} else { //SENÃO, FAZ
if ((digitalRead(RelayIn4Pin) == LOW) && (statusRelayIn4Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
digitalWrite(RelayIn4Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
statusRelayIn4Pin = 0; //VARIÁVEL RECEBE O VALOR 0
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
}
}
}
switch (results.value) {
case 0x807F906F: //Keypad button "5"
if ((digitalRead(RelayIn5Pin) == HIGH) && (statusRelayIn5Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
digitalWrite(RelayIn5Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
statusRelayIn5Pin = 1; //VARIÁVEL RECEBE O VALOR 1
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
} else { //SENÃO, FAZ
if ((digitalRead(RelayIn5Pin) == LOW) && (statusRelayIn5Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
digitalWrite(RelayIn5Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
statusRelayIn5Pin = 0; //VARIÁVEL RECEBE O VALOR 0
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
}
}
}
switch (results.value) {
case 0x807F10EF: //Keypad button "6"
if ((digitalRead(RelayIn6Pin) == HIGH) && (statusRelayIn6Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
digitalWrite(RelayIn6Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
statusRelayIn6Pin = 1; //VARIÁVEL RECEBE O VALOR 1
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
} else { //SENÃO, FAZ
if ((digitalRead(RelayIn6Pin) == LOW) && (statusRelayIn6Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
digitalWrite(RelayIn6Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
statusRelayIn6Pin = 0; //VARIÁVEL RECEBE O VALOR 0
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
}
}
}
switch (results.value) {
case 0x807F629D: //Keypad button "7"
if ((digitalRead(RelayIn7Pin) == HIGH) && (statusRelayIn7Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
digitalWrite(RelayIn7Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
statusRelayIn7Pin = 1; //VARIÁVEL RECEBE O VALOR 1
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
} else { //SENÃO, FAZ
if ((digitalRead(RelayIn7Pin) == LOW) && (statusRelayIn7Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
digitalWrite(RelayIn7Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
statusRelayIn7Pin = 0; //VARIÁVEL RECEBE O VALOR 0
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
}
}
}
switch (results.value) {
case 0x807FA05F: //Keypad button "8"
if ((digitalRead(RelayIn8Pin) == HIGH) && (statusRelayIn8Pin == 0)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
digitalWrite(RelayIn8Pin, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
statusRelayIn8Pin = 1; //VARIÁVEL RECEBE O VALOR 1
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
} else { //SENÃO, FAZ
if ((digitalRead(RelayIn8Pin) == LOW) && (statusRelayIn8Pin == 1)) { //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
digitalWrite(RelayIn8Pin, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
statusRelayIn8Pin = 0; //VARIÁVEL RECEBE O VALOR 0
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
}
}
}
irrecv.resume();
}
}
Se alguém puder me ajudar agradeço desde já!
Compartilhar este post
Link para o post
Compartilhar em outros sites