l claro tv.
Estou usando esta exemplo para receber dados do controle:
/* * IRremote: IRrecvDump - dump details of IR codes with IRrecv * An IR detector/demodulator must be connected to the input RECV_PIN. * Version 0.1 July, 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com */
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){ Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver}
// based on Print::printNumbervoid printHex64(unsigned long long n){ unsigned char buf[sizeof(unsigned long long) * 2]; unsigned long i = 0;
if (n == 0) { Serial.print('0'); return; }
while (n > 0) { buf[i++] = n & 0xf; n >>= 4; }
for (; i > 0; i--) { Serial.print((char) (buf[i - 1] < 10 ? '0' + buf[i - 1] : 'A' + buf[i - 1] - 10)); }}
// Dumps out the decode_results structure.// Call this after IRrecv::decode()// void * to work around compiler issue//void dump(void *v) {// decode_results *results = (decode_results *)vvoid dump(decode_results *results) { int count = results->rawlen; if (results->decode_type == UNKNOWN) { Serial.print("Unknown encoding: "); } else if (results->decode_type == NEC) { Serial.print("Decoded NEC: "); } else if (results->decode_type == SONY) { Serial.print("Decoded SONY: "); } else if (results->decode_type == RC5) { Serial.print("Decoded RC5: "); } else if (results->decode_type == RC6) { Serial.print("Decoded RC6: "); } printHex64(results->value); Serial.print(" ("); Serial.print(results->bits, DEC); Serial.println(" bits)"); Serial.print("Raw ("); Serial.print(count, DEC); Serial.print("): ");
for (int i = 0; i < count; i++) { if ((i % 2) == 1) { Serial.print(results->rawbuf[i]*USECPERTICK, DEC); } else { Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC); } Serial.print(" "); } Serial.println("");}
void loop() { if (irrecv.decode(&results)) { dump(&results); irrecv.resume(); // Receive the next value }}
E este e o que envia para tv
/* * IRremote: IRsendDemo - demonstra o envio de codigos IR com IRsend * Um LED IR deve ser conectado a porta PWM 3 do Arduino. * Versao 0.1 Julho, 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com */
#include <IRremote.h>
IRsend irsend;
void setup(){ Serial.begin(9600);}
void loop() { char c = Serial.read(); if (c == 'a') { for (int i = 0; i < 1; i++) { irsend.sendRC6(0x80542720, 36); delay(40); } } if (c == 'b') { for (int i = 0; i < 1; i++) { irsend.sendRC6(0x8054A721, 36); delay(40); } }}
…
viu algo assim?
a sketch q estou usando e essa,
// Programa : Teste Controle Remoto IR // Autor : Arduino e Cia #include <IRremote.h> int RECV_PIN = 11; float armazenavalor; int pinoledvermelho = 5; int pinoledverde = 7; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); pinMode(pinoledvermelho, OUTPUT); pinMode(pinoledverde, OUTPUT); digitalWrite(pinoledvermelho , 0); digitalWrite(pinoledverde , 0); irrecv.enableIRIn(); // Inicializa o receptor IR } void loop() { if (irrecv.decode(&results)) { Serial.print("Valor lido : "); Serial.println(results.value, HEX); armazenavalor = (results.value); if (armazenavalor == 0xFF10EF) //Verifica se a tecla 1 foi acionada { digitalWrite(pinoledvermelho, HIGH); //Acende o led vermelho delay(1000); digitalWrite(pinoledvermelho, LOW); } if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada { digitalWrite(pinoledvermelho, LOW); //Apaga o led vermelho } if (armazenavalor == 0xFF30CF) //Verifica se a tecla 4 foi acionada { digitalWrite(pinoledverde, HIGH); //Acende o led verde delay(1000); digitalWrite(pinoledverde, LOW); } if (armazenavalor == 0xFF38C7) //Verifica se a tecla 5 foi acionada { digitalWrite(pinoledverde, LOW); //Apaga o led verde } if (armazenavalor == 0xFF52AD) //Verifica se a tecla 9 foi acionada { digitalWrite(pinoledvermelho, LOW); //Apaga todos os leds digitalWrite(pinoledverde, LOW); } irrecv.resume(); //Le o próximo valor } } …
Adicionado por emerson klebe ao 12:02 em 6 agosto 2014
ricio??
porque esta sketch não funciona normal vc não tem como testar ai ?
// Programa : Teste Controle Remoto IR // Autor : Arduino e Cia #include <IRremote.h> int RECV_PIN = 11; float armazenavalor; int pinoledvermelho = 5; int pinoledverde = 7; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); pinMode(pinoledvermelho, OUTPUT); pinMode(pinoledverde, OUTPUT); digitalWrite(pinoledvermelho , 0); digitalWrite(pinoledverde , 0); irrecv.enableIRIn(); // Inicializa o receptor IR } void loop() { if (irrecv.decode(&results)) { Serial.print("Valor lido : "); Serial.println(results.value, HEX); armazenavalor = (results.value); if (armazenavalor == 0xFF10EF) //Verifica se a tecla 1 foi acionada { digitalWrite(pinoledvermelho, HIGH); //Acende o led vermelho delay(1000); digitalWrite(pinoledvermelho, LOW); } if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada { digitalWrite(pinoledvermelho, LOW); //Apaga o led vermelho } if (armazenavalor == 0xFF30CF) //Verifica se a tecla 4 foi acionada { digitalWrite(pinoledverde, HIGH); //Acende o led verde delay(1000); digitalWrite(pinoledverde, LOW); } if (armazenavalor == 0xFF38C7) //Verifica se a tecla 5 foi acionada { digitalWrite(pinoledverde, LOW); //Apaga o led verde } if (armazenavalor == 0xFF52AD) //Verifica se a tecla 9 foi acionada { digitalWrite(pinoledvermelho, LOW); //Apaga todos os leds digitalWrite(pinoledverde, LOW); } irrecv.resume(); //Le o próximo valor } } …
Adicionado por emerson klebe ao 14:04 em 6 agosto 2014
juntos pelos conduites. Para cada tomada, lâmpada, existe um relé. Utilizo a eeprom para armazenar horários para o liga/desliga automático das luzes e tomadas. Na pci existe um DS1307 para ter o horário correto e não ocorrer sua perda em caso de quedas de luz.
O circuito fica numa caixa escondida em cima do armário. Minha ideia era fazer pra casa inteira, mas dá muito trabalho... hehehe Quem sabe mais pra frente.
Controlo tudo pelo pc. To começando um app android pra poder controlar pelo celular e tbm vou incluir sensor IR pra usar tbm controle remoto.
Enfim, onde, quando, o que usar, são coisas que não existem uma bula, vai da imaginação de cada um.
Pode-se usar até RF se não quiser ficar passando cabos. Faz igual alarmes, os módulos todos se comunicam com a central sem fio.
Não existe regra! Não existem limites! :)
Abraços!
www.efeitonerd.com.br…
Adicionado por Fellipe Couto ao 17:24 em 27 outubro 2012
mesma sequencia infinitamente, ate eu decidir apertar o mesmo botar para parar .
pois ele executa a sequencia e para .. quero executar infinitamente e quanto apertar o mesmo batao ele parar ,
oque fazer ?
qualquer ajuda e bem vinda
segue abaixo como estou fazendo .
----------------------
Void loop () {
if(irrecv.decode&results){
long int hexCode =results.value;
switch (results.value);
case: 1234567891
if (ligado1,ligado2,ligado3 == 0 ) {
Serial.println("ligando Sequencia ");
digitalWrite(led1,HIGH);
delay(100);
digitalWrite(led1,LOW);
delay(100);
digitalWrite(led2,HIGH);
delay(100)
digitalWrite(led2,LOW);
delay(100);
digitalWrite(led3,HIGH);
delay(100)
digitalWrite(led3,LOW);
delay(100);
}
break;
}
irrecv.resume() ;
}
delay(100);
…
ar as vender as peças e componentes que sobravam nas compras (e passei a comprar mais para revender) no Mercado Livre.
Porém no cenário atual do mercado livre, taxas e regras, não fez mais sentido seguir e estou com muitas coisas paradas em casa, novas, lacradas que estão ocupando espaço e gostaria de me desfazer por valores abaixo do praticado.
Se alguém se interessar, meu email é ozirisjunior@gmail.com. Tenho interesse em negociar um pacotão com todos os itens que tenho.
Abaixo lista de alguns itens.
ADAPTADOR MóDULO NRF24L01 2.4 GHZ ARDUINO TRANSCEPTOR
MODULO SENSOR DE CHUVA ARDUINO PIC AUTOMACAO ESTACAO
NRF24L01 2.4 GHZ ARDUINO PIC AVR TRANSCEPTOR
PROTOBOARD 400 FUROS ARDUINO PROTOTIPAçãO BREADBOARD
MODULO MATRIZ 8X8 8*8 MAX7219 ARDUINO LED VERMELHO SMD
SENSOR DE DISTâNCIA ULTRASSONICO PIC ARDUINO AVR HC-SR04 PIC
SENSOR DE TENSãO DC 0 A 25V ARDUINO FONTE
SENSOR MQ-2 GáS METANO BUTANO GLP FUMAçA ARDUINO MQ2 MQ 2
SENSOR PRESENçA E MOVIMENTO ARDUINO SR501 HC-SR501
BASE ACRILICO ARDUINO UNO PROTOBOARD PARAFUSOS ESPAçADORES
CONTROLE REMOTO IR RECEPTOR IR LED IR PARA ARDUINO PIC 17 TC
KIT 75 ENGRENAGENS POLIAS CORREIAS LUVAS - ROBóTICA ARDUINO
MóDULO CARGA BATERIA LITHIUM TP4056 COM PROTEçãO
MóDULO IR SEGUIDOR DE LINHA ARDUINO PIC ROBóTICA
MODULO REGULADOR DC STEP-UP MT3608 USB ARDUINO MóDULO
MODULO RELE 4 CANAIS 5V ARDUINO PIC AUTOMAçãO RELé
MóDULO RTC DS1307 I2C COM EEPROM PRA ARDUINO PIC CLOCK TIME
MOTOR DE PASSO 28BYJ-48 + DRIVER ULN2003 - PRONTA ENTREGA!
PONTA JACARE DE TESTE ELETRONICA ARDUINO CLIP JACARé 10 UN
SENSOR DE UMIDADE DO SOLO HIGRôMETRO IDEAL ARDUíNO PIC
SENSOR DE UMIDADE E TEMPERATURA DHT11 - PIC ARDUINO
SENSOR MAGNETICO REED SWITCH DE PORTA AUTOMAçãO ARDUINO NC
SERVO FUNGWAN S3003 STANDARD 38G
SUPORTE BATERIA 18650…
então no fim tenho que utilizar 4 botões do controle..
resumindo queria que o botão fizesse as duas funções liga e desliga a lampada.. mas sendo cada comando para uma lampada.
alguem teria alguma ideia?
#include <IRremote.h> int RECV_PIN = 11; float armazenavalor; int pinoledvermelho = 5; int pinoledverde = 12; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { pinMode(pinoledvermelho, OUTPUT); pinMode(pinoledverde, OUTPUT); Serial.begin(9600); irrecv.enableIRIn(); // Inicializa o receptor IR } void loop() { if (irrecv.decode(&results)) { Serial.print("Valor lido : "); Serial.println(results.value, HEX); armazenavalor = (results.value); if (armazenavalor == 0xFF30CF) //Verifica se a tecla 1 foi acionada { digitalWrite(pinoledvermelho, HIGH); //Acende o led vermelho } if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada { digitalWrite(pinoledvermelho, LOW); //Apaga o led vermelho } if (armazenavalor == 0x373119) //Verifica se a tecla 4 foi acionada { digitalWrite(pinoledverde, HIGH); //Acende o led verde } if (armazenavalor == 0x36D125) //Verifica se a tecla 5 foi acionada { digitalWrite(pinoledverde, LOW); //Apaga o led verde } if (armazenavalor == 0xFF52AD) //Verifica se a tecla 9 foi acionada { digitalWrite(pinoledvermelho, LOW); //Apaga todos os leds digitalWrite(pinoledverde, LOW); } irrecv.resume(); //Le o próximo valor } }…
lhar a 38kHz. Se o receptor não for o TSOP1838, a freqüência de operação será diferente (exemplo, TSOP1830 com 30kHz, ou TSOP1848, com 48kHz). Assim, haverão muitos erros de decodificação.
Eu estou experimentando alguns problemas com experiências em IR, tenho um projeto que se utiliza de diversos transmissores e um receptor, cada transmissor com um código diferente. Os transmissores são canhões de Infravermelho, extremamente fortes, alimentados com 12v e com 36 LEDs infravermelhos, mas mesmo assim em alguns ambientes o sistema fica instável demais.
Eu trabalho em uma sala com pé direito baixo (2,50m), com 8 lâmpadas de 40W fluorescentes a cada 9 m². Seria uma interferência absurda, e o Arduino tem muita dificuldade em codificação destes sinais, recebendo-os a menos de 2 metros somente. Em ambientes externos ou com pé direito mais alto, o funcionamento é mais satisfatório.
Daí vão dizer "ah, é isso, as lâmpadas estão interferindo". No entanto, no mesmo ambiente, há uma TV Sony posicionada na parede, ao alto, próxima de 4 destas lâmpadas, e o pequeno controle remoto dela funciona mesmo do outro lado da sala, a quase 10 metros de distância, e sem erros: apertou o botão, está feito.
Alguém explica?…
olar meu ar-condicionado, e também minha TV da sala.
Logo no início do projeto, várias dúvidas surgiram.
Eu consigo realizar a leitura dos códigos de IR do meu controle remoto (decodificação tipo NEC), porém quando subo o código para envio do IR, eu não tenho nenhuma resposta do ar-condicionado. E foi aí que eu me deparei com uma dificuldade muito grande de DEBUG, pois não sei se meu LED emissor está enviando sinal, e se está, qual tipo de sinal está enviando.
Preciso de um código, que trabalhe emissor, e receptor juntos! Para que eu consiga ler no próprio ARDUINO, o que o LED emissor de IR está enviando. Por exemplo, se eu digitar algo na serial (serial monitor) ele envia um código NEC pré-cadastrado, e print no monitor serial o código que foi recebido.
Outra dificuldade que me deparei, é que necessito controlar 2 dispositivos, cada um em um cômodo, e em todo lugar que eu vejo, os exemplos dessa biblioteca utilizam a porta digital 3 do arduino para enviar os comandos, e o pior, até onde eu percebi, isso não é customizável. Eu até poderia utilizar uma mesma porta para controlar ambos dispositivos, mas acredito que isso não é o ideial pois o sinal seria enviado aos 2 aparelhos.
Portanto, necessito de um código que trabalhe com amis de uma porta digital para envio dos códigos IR
Seguem os códigos que estou utilizando:
LEITURA
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
delay(100);
}
ENVIO
#include <IRremote.h> IRsend irsend; void setup() { } void loop() { irsend.sendNEC(0x68B92, 32); delay(100);
…
Adicionado por Igor Ayres ao 8:35 em 13 janeiro 2015