ola eu gostaria e acrecentar um sensor de movimento PIR no meu projeto IR seno que já uso o projeto de IR para acender lâmpada porem eu gostaria e colocar o sensor PIR no corredor para acender a lâmpada do corredor a elétrica já esta feita só falta colocar o PIR no projeto de IR pra roar no arduino
#include <IRremote.h>
#define pirPin 2 // Pino para o PIR
#define lamp1Pin 3 // Define o pino para a lampada 1
#define lamp2Pin 4 // Define o pino para a lampada 2
#define lamp3Pin 5 // Define o pino para a lampada 3
#define lamp4Pin 6 // Define o pino para a lampada 4
#define lamp5Pin 7 // Define o pino para a lampada 5
#define lamp6Pin 8 // Define o pino para a lampada 6
int RECV_PIN = 11; // Entrada do sensor de Infra Red Remote Control
float armazenavalor; // Variavel para guardar valor lido do Remote Control
IRrecv irrecv(RECV_PIN); // Função para receber Remote Control
decode_results results; // Decodifica o resultado
void setup()
{
pinMode(pirPin, INPUT); // Define o Pino PIR com entrada
pinMode(lamp1Pin,OUTPUT); // Define o pino lamp1Pin como saida
pinMode(lamp2Pin, OUTPUT); // Define o pino lamp2Pin como saída
pinMode(lamp3Pin, OUTPUT); // Define o pino lamp3Pin como saída
pinMode(lamp4Pin, OUTPUT); // Define o pino lamp4Pin como saída
pinMode(lamp5Pin, OUTPUT); // Define o pino lamp5Pin como saída
pinMode(lamp6Pin, OUTPUT); // Define o pino lamp6Pin como saída
Serial.begin(9600); // Inicialisa o monitor serial
irrecv.enableIRIn(); // Inicializa o receptor IR
}
// --------------------------------- loop ----------------------------
void loop()
{
int pirVal = digitalRead(pirPin); // Variavel para "status"do PIR
if (irrecv.decode(&results)) // recebe códigos do RC
{
Serial.println(results.value, HEX); // Imprime valor recebido na serial
armazenavalor = (results.value); // Salva este valor em armazena valor
// ----------------------------- lamp1--------------------------------
if (armazenavalor == 0xFF6897)
// verifica se a tecla 12 foi acionada
{
digitalWrite(lamp1Pin,HIGH); // Acende lampada 1
}
if (armazenavalor == 0xFF9867)
// verifica se a tecla 11 foi acionada
{
digitalWrite(lamp1Pin, LOW); // Apaga lampada 1
}
// ----------------------------- lamp3 --------------------------------
if (armazenavalor == 0xFFB04F)
// Verifica se a tecla 8 foi acionada
{
digitalWrite(lamp3Pin, HIGH); // Acende lampada 3
}
if (armazenavalor == 0xFF30CF)
// Verifica se a tecla 7 foi acionada
{
digitalWrite(lamp3Pin, LOW); // Apaga lampada 3
}
// ---------------------------- lamp4 --------------------------------
if (armazenavalor == 0xFF18E7)
// Verifica se a tecla 5 foi acionada
{
digitalWrite(lamp4Pin, HIGH); // Acende lampada 4
}
if (armazenavalor == 0xFF7A85)
// Verifica se a tecla 6 foi acionada
{
digitalWrite(lamp4Pin, LOW); // Apaga lampada 4
}
// ----------------------------- lamp5 --------------------------------
if (armazenavalor == 0xFF10EF)
// Verifica se a tecla 3 foi acionada
{
digitalWrite(lamp5Pin, HIGH); // Acende lampada 5
}
if (armazenavalor == 0xFF38C7)
// Verifica se a tecla 4 foi acionada
{
digitalWrite(lamp5Pin, LOW); // Apaga lampada 5
}
// ----------------------------- lamp6 --------------------------------
if (armazenavalor == 0xFF5AA5)
// Verifica se a tecla 1 foi acionada
{
digitalWrite(lamp6Pin, HIGH); // Acende lampada 6
}
if (armazenavalor == 0xFF42BD)
// Verifica se a tecla 2 foi acionada
{
digitalWrite(lamp6Pin, LOW); // Apaga lampada 6
}
// --------------------------------------------------------------------------------
irrecv.resume(); //Le o próximo valor // le proximo valor do RC
}
if(pirVal == 1) // Se PIR detectou movimento
{ // Faça
Serial.println("Motion Detected"); // Msg no serial
digitalWrite(lamp2Pin, HIGH); // Aqui acende a lampada
}
else // Se PIR detectou movimento
digitalWrite(lamp2Pin, LOW); // Aqui acende a lampada
}
QUERO AGRADECER AO MESTRE ( RUI VIANA ) PORQUE SEM ELE ESTE PROJETO NAO
SERIA VIAVEL , CHAMO ELE DE MESTRE PORQUE O CARA MANJA MUITO , MUITO
OBRIGADO RUI VIANA QUE VC POSSA CONTINUAR AJUNDANDO MUITA GENTE ASSIM COMO
VC ME AJUDOU NESTE PROJETO E AJUDOU SEM PEDIR NADA EM TROCA, VALEU MESMO
MESTRE
Tags:
Oi MLS, boa noite,
veja se este code atende sua necessidade.
Como o seu code não estava comentado, eu supus que esta linha: digitalWrite(led, HIGH);
é a que acende a luz.
Acostume a comentar seus códigos, isto facilita qdo precisa de ajuda e
também o seu entendimento dele no futuro.
Comentei as linhas que adicionei.
code:
Rui
obrigado RV vou testar ok só me tira uma duvida o PIR aciona qual saída digital , já que ele vai acionar uma lâmpada que não funcionar com o IR só vai funcionar com o PIR desse já agradeço pela atenção
ok
#include <IRremote.h>
#define pirPin 2 // Pino para o PIR
#define lamp1Pin 3
#define lamp2Pin 4
#define lamp3Pin 5
#define lamp4Pin 6
#define lamp5Pin 7
#define lamp6Pin 8
#define RECV_PIN 11
float armazenavalor;
IRrecv irrecv(RECV_PIN);
decode_results results;
// -------------------------------- setup ---------------------------
void setup()
{
pinMode(pirPin, INPUT); // Define o Pino PIR com entrada
pinMode(lamp1, OUTPUT);
pinMode(lamp2, OUTPUT);
pinMode(lamp3, OUTPUT);
pinMode(lamp4, OUTPUT);
pinMode(lamp5, OUTPUT);
pinMode(lamp6, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Inicializa o receptor IR
}
// -------------------------------- loop ---------------------------
void loop()
{
int pirVal = digitalRead(pirPin); // Variavel para "ststus"do PIR
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
armazenavalor = (results.value);
if (armazenavalor == 0xFF30CF) //Verifica se a tecla 1 foi acionada
{
if(pirVal == LOW) // Se PIR detectou movimento
{ // Faça
Serial.println("Motion Detected"); // Msg no LCD
digitalWrite(led, HIGH); // Aqui acende a lampada? ????
}
}
if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada
{
digitalWrite(led, LOW);
}
irrecv.resume(); //Le o próximo valor
}
}
obs é 6 lâmpada uma delas sera acendida somente pelo sensor PIRas outras 5 serão acesas pelo IR
fiz essas mudanças porem quando clico em verify aparece uma linha amarela em cima
pinMode(lamp1pin, OUTPUT); // Define o pino lamp1 como saida
pinMode(lamp2pin, OUTPUT); // Define o pino lamp2 como saida
pinMode(lamp3pin, OUTPUT); // Define o pino lamp3 como saida
pinMode(lamp4pin, OUTPUT); // Define o pino lamp4 como saida
pinMode(lamp5pin, OUTPUT); // Define o pino lamp5 como saida
pinMode(lamp6pin, OUTPUT); // Define o pino lamp6 como saida
na próxima resposta vou colocar o programa inteiro
#include <IRremote.h>
#define pirPin 2 // Pino para o PIR
#define lamp1Pin 3
#define lamp2Pin 4
#define lamp3Pin 5
#define lamp4Pin 6
#define lamp5Pin 7
#define lamp6Pin 8
#define RECV_PIN 11
float armazenavalor;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(pirPin, INPUT); // Define o Pino PIR com entrada
pinMode(lamp1pin, OUTPUT); // Define o pino lamp1 como saida
pinMode(lamp2pin, OUTPUT); // Define o pino lamp2 como saida
pinMode(lamp3pin, OUTPUT); // Define o pino lamp3 como saida
pinMode(lamp4pin, OUTPUT); // Define o pino lamp4 como saida
pinMode(lamp5pin, OUTPUT); // Define o pino lamp5 como saida
pinMode(lamp6pin, OUTPUT); // Define o pino lamp6 como saida
Serial.begin(9600);
irrecv.enableIRIn(); // Inicializa o receptor IR
}
void loop()
{
int pirVal = digitalRead(pirPin); // Variavel para "ststus"do PIR
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
armazenavalor = (results.value);
if (armazenavalor == 0xFF30CF) //Verifica se a tecla 1 foi acionada
digitalWrite(lamp1, HIGH); // Aqui acende a lampada
if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada
{
digitalWrite(lamp1, LOW);
}
irrecv.resume(); //Le o próximo valor
}
}
if(pirVal == LOW) // Se PIR detectou movimento
{ // Faça
Serial.println("Motion Detected"); // Msg no LCD
digitalWrite(lamp2, HIGH); // Aqui acende a lampada
irrecv.resume(); //Le o próximo valor
}
}
Serial.println(results.value, HEX);
armazenavalor = (results.value);
if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada
{
digitalWrite(lamp3, HIGH);
}
if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada
{
digitalWrite(lamp3, LOW);
}
irrecv.resume(); //Le o próximo valor
}
}
Serial.println(results.value, HEX);
armazenavalor = (results.value);
if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada
{
digitalWrite(lamp4, HIGH); //Acende lampada
}
if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada
{
digitalWrite(lamp4, LOW); // Apaga lampada
}
irrecv.resume(); //Le o próximo valor
}
}
Serial.println(results.value, HEX);
armazenavalor = (results.value);
if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada
{
digitalWrite(lamp5, HIGH); //Acende lampada
}
if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada
{
digitalWrite(lamp5, LOW); // Apaga lampada
}
irrecv.resume(); //Le o próximo valor
}
}
Serial.println(results.value, HEX);
armazenavalor = (results.value);
if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada
{
digitalWrite(lamp6, HIGH); //Acende lampada
}
if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada
{
digitalWrite(lamp6, LOW); // Apaga lampada
}
irrecv.resume(); //Le o próximo valor
}
}
depois a faixa amarela que disse aparecer , aparece essa fraze em baixo
was not declared in this scope
Oi MLS
você definiu os pinos com P maiúsculos e definiu o pinMode com p minusculo.
Rui
poxa a difícil nossa
Oi MLS,
não entendi seu ultimo comentário?
Rui
disse que esta difícil , porque não estou conseguindo
MLS, primeira conselho.
Se conselho fosse bom , não se dava, vendia-se.
Mas desta vez não vou vender.
Comente seu código e "identi" ele.
fica mais fácil encontrar problemas.
Agora estou organizando ele, e vi que tem vários "}"fora do lugar.
Rui
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por