SUPORTE TÉCNICO
De segunda à sexta pelo e-mail:
suporte@robocore.net
CENTRAL DE ATENDIMENTO
De segunda à sexta das 8:00 às 17:30
(11) 3522-7626 / vendas@robocore.net
Retornar
ao topo

Classifique este tópicoPéssimoRuimMedianoBomÓtimo
Ir para página Anterior  1 2 3
Autor
Mensagem

Francois

Level 2
2910175 xp

Registrado em:
08/04/2013



Equipe:
Submarino URC

Mensagens:
74

Francois

Responder com citações
Mensagem Ter Abr 08, 2014 7:41 pm
Acionando ar-condicionado
Leotronica,

O controle do ar-condicionado Midea é o R06/BGE (http://midea.hu/wp-content/uploads/2013/10/Midea-R06.jpg).


Comentário:
Eu recentemente encontrei um programa na internet que usa a interrupção para gerar os valores de tempo e pude descobrir que na verdade o que eu estou recebendo é um raw com 279 valores e não com 74 com tinha visto anteriormente
Esta quantidade de valores faz mais sentido. Agora é preciso descobrir por que a biblioteca está ignorando o 75o valor e adiante. Este programa que você usou informa o tempo entre cada pulso? Pode ser que do 74o ao 75o exista um pulso muito comprido que a biblioteca assume como fim do sinal. Contudo, isto deveria ter sido identificado quando você alterou a constante _GAP. Se você tiver o vetor de duração dos pulsos poderemos entender melhor o que está acontecendo. De qualquer maneira, para ler o sinal inteiro você teria de alterar a constante RAWBUF para 300.
Comentário:
o que estou achando é que pode existir mais sinais a serem coletado só que a memoria SRAM do arduino pode não estar suportando e infelizmente não tenho uma placa Arduino MEGA para testar se realmente é isso e comprar um chip atmega2560 é praticamente o preço de uma placa MEGA
Se você estiver executando somente o programa do IR, acredito que não ocupe toda a memória SRAM do ATmega. Para verificar a memória disponível você pode utilizar a função AvailableMemory() da biblioteca Memory (https://github.com/RoboCore/Memory).
Comentário:
Com respeito ao buffer raw com 279 valores eu fiz um teste usando outro atmega como receptor para verificar se um está transmitindo os 279 valores e se o outro está recebendo os 279 valores e ambos estão ok sem corte de sinais nem perda de dados.
Que valores você transmitiu? Os mesmo recebidos pelo programa que encontrou na internet ou valores randômicos? ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Rauppluizfr,
Comentário:
Mas na época que estava na labuta para fazer o negócio funcionar, a biblioteca insiste em dizer que o codigo é NEC, precebi q é um problema recorrente, e que o pessoal ou resolvia aumentando o buffer (meu caso) ou mexendo na "sensibilidade" da biblioteca (não lembro o parâmetro agora e não estou em casa).
Aumentar o buffer (RAWBUF) costuma melhorar a leitura, mas notamos também que alguns valores são confundidos como fim de sinal, por isso pode-se incrementar a constante _GAP. Quanto à "sensibilidade", sei que tem uma constante (MARK_EXCESS) para ajustar a duração dos pulsos. O que você tiver de informação que possa nos ajudar é muito bem-vinda.

leotronica

Level 13
13191315 xp

Registrado em:
02/01/2005



Equipe:
Mecatron

Mensagens:
291

leotronica

Responder com citações
Mensagem Ter Abr 08, 2014 8:03 pm
Acionando ar-condicionado
Comentário:
Este programa que você usou informa o tempo entre cada pulso? Pode ser que do 74o ao 75o exista um pulso muito comprido que a biblioteca assume como fim do sinal. Contudo, isto deveria ter sido identificado quando você alterou a constante _GAP. Se você tiver o vetor de duração dos pulsos poderemos entender melhor o que está acontecendo. De qualquer maneira, para ler o sinal inteiro você teria de alterar a constante RAWBUF para 300.
Sim, o programa utiliza interrupção para obter os pulsos da mesma maneira que a biblioteca irremote faz, só que ele não corta o ultimo sinal como você disse que a biblioteca irremote faz. O meu RAWBUF está configurado para 350 acima disso meu arduino para de responder. O meu MARK_EXCESS continua com o valor em 100 e _GAP em 7000.
Comentário:
Que valores você transmitiu? Os mesmo recebidos pelo programa que encontrou na internet ou valores randômicos?
Transmitir exatamente os valores que o arduino coletou do meu controle de ar condicionado. Código: Vou partir para a ignorância vou desmontar o meu controle e ligar direto no arduino para ver se ele coleta exatamente esses valores. Mas qualquer outra sugestão é bem vinda.

santocyber

Level 0
84243 xp

Registrado em:
17/01/2014





Mensagens:
3

santocyber

Responder com citações
Mensagem Sex Abr 11, 2014 1:19 pm
Acionando ar-condicionado
Ola galera!

Estou com o albatross master com um arduino mega 2560 ligado na rede e o TouchOSC fluindo qnd clico no botão “/RoboCore/IR/record”

O LED verde começa a piscar em azul, e depois da timeout no serial monitor!

Estou testando com os controles do meu ar condicionado e da TV Philips, ambos dão timeout.

Ja tentei aumentar o RAWBUF (300 e 400 )e colocar pra 7000 o _GAP no arquivo IRremoteint.h


helpppppiiiii!!!please!

 Rolling Eyes

santocyber

Level 0
84243 xp

Registrado em:
17/01/2014





Mensagens:
3

santocyber

Responder com citações
Mensagem Sab Abr 12, 2014 1:39 am
Acionando ar-condicionado
Ola bom dia,

Na linha 98 do albatross_master, setei essa variavel, 

const int pinIRreceiver = 11;

No pino 11 coloquei um outro IR Receiver, consegui gravar o sinal do controle da TV, mas o sinal do controle do ar condicionado nao esta fluindo.



Ja modifiquei de muitas maneiras os valores :


#define USECPERTICK 50  // microseconds per clock interrupt tick
#define RAWBUF 300 // Length of raw duration buffer (originally 100)

// Marks tend to be 100us too long, and spaces 100us too short
// when received due to sensor lag.
#define MARK_EXCESS 100


Usei o IRrecvDump e o controle do ar condicionado mostra esses valores:

7FB09DA
Unknown encoding: 7FB09DA (32 bits)
Raw (194): -7300 650 -1550 600 -1600 600 -1600 600 -1600 600 -1600 550 -1650 600 -1550 650 -1550 650 -500 600 -550 600 -500 600 -550 600 -500 600 -550 550 -550 600 -550 600 -1600 550 -1650 600 -1550 650 -1550 600 -1600 600 -1600 600 -1600 600 -1600 600 -500 650 -500 600 -500 650 -500 550 -600 600 -500 550 -600 600 -500 600 -1600 550 -1650 600 -1600 500 -1700 500 -1700 600 -1600 600 -1550 650 -1550 650 -500 550 -550 650 -500 550 -550 650 -500 550 -600 600 -500 550 -600 600 -1600 600 -500 550 -600 600 -1600 600 -1550 650 -1550 650 -500 600 -1600 500 -600 600 -1600 600 -1600 600 -550 500 -600 600 -550 500 -1700 500 -600 600 -550 550 -1650 500 -650 550 -550 500 -1700 500 -600 600 -1600 600 -1600 600 -1600 550 -600 550 -1600 600 -1600 600 -550 500 -1700 500 -600 600 -550 500 -600 600 -1600 600 -550 600 -1600 600 -500 600 -1600 550 -600 600 -500 550 -1650 550 -600 600 -1550 650 -500 600 -1600 600 -500 600 -1600 600 -1600 550 


CFD42A5E
Unknown encoding: CFD42A5E (32 bits)
Raw (194): -7350 550 -1650 550 -1650 550 -1650 550 -1650 500 -1650 600 -1600 550 -1650 550 -1700 550 -550 550 -600 500 -600 550 -600 500 -600 550 -600 550 -600 500 -600 550 -1650 500 -1700 550 -1600 550 -1650 550 -1650 550 -1650 550 -1650 550 -1650 550 -600 500 -600 550 -550 550 -600 550 -600 500 -650 500 -600 500 -600 550 -1650 550 -600 550 -1650 550 -1600 550 -1650 550 -1650 550 -1650 550 -1650 550 -600 550 -1600 600 -550 550 -600 500 -600 550 -600 550 -550 550 -600 550 -1600 600 -550 550 -600 550 -1600 550 -1650 550 -1650 550 -650 450 -1700 550 -600 500 -1650 550 -1650 550 -600 500 -600 550 -600 550 -1650 550 -550 550 -1650 550 -600 550 -550 550 -600 550 -1600 600 -550 550 -1650 550 -1650 550 -550 550 -1650 550 -1650 550 -1650 550 -600 500 -1700 500 -600 550 -600 500 -650 500 -1650 550 -600 500 -1700 500 -650 500 -1650 550 -600 500 -650 500 -1650 550 -600 500 -1650 550 -600 500 -1700 500 -600 550 -1650 550 -1650 550 

CE98AF5D
Unknown encoding: CE98AF5D (32 bits)
Raw (194): -7300 600 -1600 550 -1650 600 -1600 600 -1600 600 -1550 650 -1550 600 -1600 600 -1600 600 -550 600 -500 600 -600 500 -550 650 -500 600 -550 550 -550 600 -550 500 -1700 550 -1650 600 -1550 650 -1550 550 -1650 600 -1600 600 -1600 600 -1600 550 -550 600 -550 550 -550 650 -500 600 -500 550 -600 600 -550 550 -550 550 -600 600 -500 600 -1600 600 -1600 600 -1600 600 -1600 600 -1600 600 -1550 650 -1550 600 -1600 600 -550 600 -550 600 -500 600 -500 600 -550 600 -550 550 -1650 600 -500 600 -550 600 -1550 600 -1600 600 -1600 600 -550 600 -1600 600 -500 600 -1600 600 -1600 550 -550 650 -500 600 -550 550 -1650 550 -550 600 -550 600 -1550 600 -550 600 -550 550 -1600 650 -500 600 -1600 600 -1600 550 -1650 600 -500 600 -1600 600 -1600 600 -550 600 -1550 650 -500 600 -550 550 -550 600 -1600 600 -500 650 -1550 600 -550 600 -1600 600 -500 650 -500 600 -1600 600 -550 600 -1550 600 -550 600 -1600 550 -550 650 -1550 600 -1600 600 

Como fazer para ele enviar o comando pro ar

 Idea  Idea  Idea  Idea 


Gratidão

leotronica

Level 13
13191315 xp

Registrado em:
02/01/2005



Equipe:
Mecatron

Mensagens:
291

leotronica

Responder com citações
Mensagem Sab Abr 12, 2014 10:15 pm
Acionando ar-condicionado
É pessoal realmente esta complicado controlar ar condicionado com a biblioteca irremote, mesmo usando os códigos RAW. Estou garimpando atras de uma solução mas nada de novo até o momento. Por favor se alguém ai tiver um osciloscópio e um controle de ar por favor poste o resultado dos testes se possível beleza?
3
markame

Level 0
243554 xp

Registrado em:
25/07/2013





Mensagens:
3
3
markame

Responder com citações
Mensagem Qua Jul 30, 2014 2:18 pm
Acionando ar-condicionado
Boa tarde eu posso ajudar consigo clonar qualquer controle  com um código que tenho mas é uma via de ida e volta eu to querendo guardar os códigos copiados na memoria do Arduíno  ! e aew quem sabe como fazer !
3
wbh16

Level 0
0 xp

Registrado em:
01/03/2015





Mensagens:
1
3
wbh16

Responder com citações
Mensagem Dom Mar 01, 2015 9:47 pm
Acionando ar-condicionado
Tenho um ar condicionado Consul bem estar 12000btus e passei o final de semana todo tentando decifrar estes códigos, até achar a solução com a ajuda deste forum.
No arquivo IRremote.h da biblioteca alterei:
        define RAWBUF 100   para   define RAWBUF 300

E em IRremoteint.h alterei:
        #define _GAP 5000   para   #define _GAP 50000

Capturei novamente os códigos raw depois de enviar novamente os códigos ao arduino com as alterações, ficando assim:


/*   
  --------------------------------------------------------------------------------------------------  
  Projeto: Como fazer um controle remoto de TV com arduino    
  ---------------------------------------------------------------------------------------------------  
 */    
  #include <IRremote.h> // Biblioteca para controlar o led infravermelho   
  IRsend irsend; //variável para poder enviar o código a TV   
  //variáveis constantes para o controle remoto   
  const int maisvolume = 9;     
  const int menosvolume = 10;   
  const int maiscanal = 11;   
  const int menoscanal = 12;   
  const int led = 13;    
  const int ledIR = 3;   
  //inicia o botão com o status 0    
  int buttonState = 0;

//Decoded NEC: C1602042 (32 bits) - Lig/Desl com temperatura de 22°
  unsigned int raw_ar_22[229] = {9150,4450,650,1650,600,1650,650,550,600,550,600,550,600,550,550,550,600,1650,650,550,600,1600,650,1650,600,600,600,500,600,550,600,550,600,550,600,550,600,550,600,1650,600,550,600,550,600,550,600,550,600,550,600,550,600,1650,600,550,600,550,600,550,600,550,600,1650,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,550,600,600,550,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,7950,650,500,650,500,650,500,650,550,600,550,600,550,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,550,600,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,550,600,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,550,600,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,600,600,550,600,1650,600,1650,600,600,600,500,600,550,600,1650,650,550,600};
  
//Decoded NEC: C160204A (32 bits) - Lig/Desl com temperatura de 23°
  unsigned int raw_ar_23[229] = {9150,4450,650,1600,700,1600,650,450,700,500,650,450,700,450,650,500,650,1650,650,500,650,1600,650,1600,700,450,700,450,700,450,650,500,650,500,650,500,650,500,650,1600,650,500,700,450,650,500,650,500,650,500,650,500,650,1600,650,500,650,500,650,1650,650,500,650,1600,650,500,650,500,650,500,650,500,650,500,650,500,650,450,700,450,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,7950,800,350,700,450,650,500,650,500,650,500,650,500,650,500,650,450,700,450,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,450,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,450,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,450,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,550,650,500,650,1600,650,1600,650,500,650,1650,650,500,650,1600,650,500,650};

//Decoded NEC: C1602046 (32 bits) - Lig/Desl com temperatura de 24°
  unsigned int raw_ar_24[229] = {9150,4450,650,1650,600,1650,650,500,650,500,650,500,650,500,600,550,600,1650,650,500,650,1650,600,1650,650,500,650,500,650,500,600,550,600,550,600,550,600,550,600,1650,600,550,650,500,600,550,600,550,600,550,600,550,600,1650,600,550,600,550,600,550,600,1700,600,1600,650,500,650,500,650,500,650,500,650,500,650,500,650,500,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,7950,650,500,650,500,650,500,650,500,650,500,650,500,650,500,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,500,650,500,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,500,650,500,600,550,600,550,600,600,550,600,550,550,600,550,600,550,600,550,600,550,600,550,600,550,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,500,600,600,550,600,550,600,600,550,600,1650,650,1650,600,550,600,500,650,1650,600,1650,650,500,650};

//Decoded NEC: C1602041 (32 bits) - Lig/Desl com temperatura de 26°
  unsigned int raw_ar_26[229] = {9200,4450,650,1650,650,1600,650,500,650,500,650,500,650,500,650,500,650,1600,650,500,650,1650,650,1600,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,1650,600,550,600,500,650,500,650,500,650,500,650,500,650,1650,600,550,600,550,600,550,600,500,650,500,650,1650,600,550,600,550,600,550,600,550,600,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,600,550,600,550,600,8000,650,500,650,500,650,450,700,450,650,500,650,500,650,550,600,550,600,550,600,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,600,550,600,550,600,550,600,550,600,550,600,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,600,550,600,550,600,550,600,550,600,550,600,550,600,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,600,550,600,550,600,550,600,550,600,550,600,550,600,500,650,500,650,500,650,500,650,550,650,500,650,1650,600,1650,600,550,650,500,600,550,600,550,600,1650,650};
  
  void setup() {   
  pinMode(led, OUTPUT); // saida led     
  pinMode(ledIR ,OUTPUT); // saída do infravermelho   
  Serial.begin(9600);   
  //configurando a entrada dos botoes   
  pinMode(maisvolume, INPUT);
  digitalWrite(maisvolume, HIGH);// liga o resistor de elevação (pullup)  
  pinMode(menosvolume, INPUT);
  digitalWrite(menosvolume, HIGH);// liga o resistor de elevação (pullup)  
  pinMode(maiscanal, INPUT);
  digitalWrite(maiscanal, HIGH);// liga o resistor de elevação (pullup)
  pinMode(menoscanal, INPUT);
  digitalWrite(menoscanal, HIGH);// liga o resistor de elevação (pullup)
  }   
  void loop(){   
  //se o botão maisvolume for pressionado ele ira enviar o código para aumentar o volume na tv   
  if (digitalRead(maisvolume) == LOW) {     
   digitalWrite(led, HIGH);    
   irsend.sendNEC(0x20DF10EF, 32);// Lig/Desl TV
   delay(400);
   irsend.sendNEC(0x404050AF, 32);// Lig/Desl Recep
   delay(3000);
   irsend.sendNEC(0x404040BF, 32);// numero 2 Recep
   delay(400);
   irsend.sendNEC(0x4040609F, 32);// numero 6 Recep
  }   
  else {   
   digitalWrite(led, LOW);    
  }    
  //se o botão menosvolume for pressionado ele irá enviar o código para Lig/Desl Ar consul   
  if (digitalRead(menosvolume) == LOW) {     
    digitalWrite(led, HIGH);    
    irsend.sendRaw(raw_ar_24,229,3Cool;// Lig/Desl Ar consul a 24°
    delay(500);
  }    
  else {   
   digitalWrite(led, LOW);    
  }   
  //se o botão maiscanal for pressionado ele ira enviar o código para aumentar o canal na tv   
  if (digitalRead(maiscanal) == LOW) {     
   digitalWrite(led, HIGH);   
   irsend.sendNEC(0x39C6E817, 32); // código que sera enviado a tv para aumentar o canal    
  }    
  else {   
   digitalWrite(led, LOW);    
  }   
  //se o botão menoscanal for pressionado ele irá enviar o código para diminuir o canal na tv   
  if (digitalRead(menoscanal) == LOW) {     
   digitalWrite(led, HIGH);    
   irsend.sendNEC(0x39C6C837, 32); // código que sera enviado a tv para diminuir o canal    
  }   
  else {   
   digitalWrite(led, LOW);    
  }    
  }   



Desta forma funcionou o controle, se alguem descobrir como usar hexadecimal favor postem.
3
JefersonDut

Level 0
266805 xp

Registrado em:
25/11/2015





Mensagens:
7
3
JefersonDut

Responder com citações
Mensagem Sab Dez 26, 2015 9:12 pm
Acionando ar-condicionado
Boa noite Pessoal, tenho um projeto hoje em funcionamento aqui em minha casa, no qual aciono duas cargas através do meu Iphone Utilizando o Aplicativo TOUCH OSC possuo um Arduino MEGA um Shield Ethernet e um módulo Relé, acabei de comprar o Arduino Shield Albatross Master juntamente com cabo IR, minha idéia é controlar minha TV no mesmo Projeto, porem não sei como criar o código e adicionar ao código do meu projeto atual, alguem poderia me ajudar? grato desde já

Segue o código:

#include <SPI.h>
#include <Ethernet.h>
#include <Z_OSC.h>
 
byte myMac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte myIp[]  = { 192, 168, 0, 50 }; // Specify your arduino  IP here
int  serverPort  = 8000; // and listening port as well
 
byte destIp[] =  { 192, 168, 0, 2 }; // Your iPad/Android IP here
int  destPort = 9000;
 
float lightone;
float lighttwo;

int light1 = 6;
int light2 = 7;

Z_OSCClient client;
Z_OSCServer server;
Z_OSCMessage *rcvMes;
Z_OSCMessage message;
 
void setup(){
 Serial.begin(9600);
 Ethernet.begin(myMac ,myIp);
 server.sockOpen(serverPort);
 pinMode(light1, OUTPUT);
 pinMode(light2, OUTPUT);
 digitalWrite(light1, HIGH);
 digitalWrite(light2, HIGH);
}
 
void loop(){
 if(server.available()){
  message.setAddress(destIp,destPort);
  rcvMes=server.getMessage();
 
     if( !strcmp( rcvMes->getZ_OSCAddress() ,  "/ard/ventila" ) )
     {
      lightone = rcvMes->getFloat(0);
      if (lightone > 0.5) {
          digitalWrite(light1, LOW);
          message.setZ_OSCMessage( "/lights/light1label" ,"s" , "ON" );
          client.send(&message);
      } 
      else if(lightone < 0.5) {
          digitalWrite(light1, HIGH);
          message.setZ_OSCMessage( "/lights/light1label" ,"s" , "OFF" );
          client.send(&message);
      }
     }
     
     if( !strcmp( rcvMes->getZ_OSCAddress() ,  "/ard/luzdasala" ) )
     {
      lighttwo = rcvMes->getFloat(0);
      if (lighttwo > 0.5) {
          digitalWrite(light2, LOW);
          message.setZ_OSCMessage( "/lights/light2label" ,"s" , "ON" );
          client.send(&message);
      } 
      else if(lighttwo < 0.5) {
          digitalWrite(light2, HIGH);
          message.setZ_OSCMessage( "/lights/light2label" ,"s" , "OFF" );
          client.send(&message);
      }
     }
 }
3
rmariz63

Level 0
40002 xp

Registrado em:
07/04/2017





Mensagens:
2
3
rmariz63

Responder com citações
Mensagem Qui Dez 28, 2017 11:35 pm
Acionando ar-condicionado
Esse post é antigo mas foi ótimo porque pela primeira vez tentei usar o controle remoto pelo Arduino justamente para um ar condicionado Consul.

Fiz o que o WBH16 falou e o ar condicionado funcionou.

No arquivo IRremote.h da biblioteca alterei:
        define RAWBUF 100   para   define RAWBUF 300

Coloquei um laço de repetição para 5 vezes.  Não testei com valor menor para ver se ainda funcionava.  O controle remoto original emite o código 3 vezes.

  for (int i = 0; i < 5; i++) {

  irsend.sendRaw(irSignal, 115, 38 ) ;

    }

115 foi a quantidade de dados da array na função de coleta do sinal. Utilizei o IRrevDumpV2 porque o resultado é fácil para copiar colar no exemplo do IRsendRawDemo.  Durante os testes retirei o sizeof e o khz, mas o problema não era esse.

irSignal é o nome da minha array.

38 é a frequência de emissão em KHz.

Valeu pelo post!
3
rmariz63

Level 0
40002 xp

Registrado em:
07/04/2017





Mensagens:
2
3
rmariz63

Responder com citações
Mensagem Qui Dez 28, 2017 11:39 pm
Acionando ar-condicionado
wbh16 Escreveu:
Tenho um ar condicionado Consul bem estar 12000btus e passei o final de semana todo tentando decifrar estes códigos, até achar a solução com a ajuda deste forum. No arquivo IRremote.h da biblioteca alterei: define RAWBUF 100 para define RAWBUF 300 E em IRremoteint.h alterei: #define _GAP 5000 para #define _GAP 50000 Capturei novamente os códigos raw depois de enviar novamente os códigos ao arduino com as alterações, ficando assim: /* -------------------------------------------------------------------------------------------------- Projeto: Como fazer um controle remoto de TV com arduino --------------------------------------------------------------------------------------------------- */ #include <IRremote.h> // Biblioteca para controlar o led infravermelho IRsend irsend; //variável para poder enviar o código a TV //variáveis constantes para o controle remoto const int maisvolume = 9; const int menosvolume = 10; const int maiscanal = 11; const int menoscanal = 12; const int led = 13; const int ledIR = 3; //inicia o botão com o status 0 int buttonState = 0; //Decoded NEC: C1602042 (32 bits) - Lig/Desl com temperatura de 22° unsigned int raw_ar_22[229] = {9150,4450,650,1650,600,1650,650,550,600,550,600,550,600,550,550,550,600,1650,650,550,600,1600,650,1650,600,600,600,500,600,550,600,550,600,550,600,550,600,550,600,1650,600,550,600,550,600,550,600,550,600,550,600,550,600,1650,600,550,600,550,600,550,600,550,600,1650,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,550,600,600,550,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,7950,650,500,650,500,650,500,650,550,600,550,600,550,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,550,600,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,550,600,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,550,600,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,600,600,550,600,1650,600,1650,600,600,600,500,600,550,600,1650,650,550,600}; //Decoded NEC: C160204A (32 bits) - Lig/Desl com temperatura de 23° unsigned int raw_ar_23[229] = {9150,4450,650,1600,700,1600,650,450,700,500,650,450,700,450,650,500,650,1650,650,500,650,1600,650,1600,700,450,700,450,700,450,650,500,650,500,650,500,650,500,650,1600,650,500,700,450,650,500,650,500,650,500,650,500,650,1600,650,500,650,500,650,1650,650,500,650,1600,650,500,650,500,650,500,650,500,650,500,650,500,650,450,700,450,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,7950,800,350,700,450,650,500,650,500,650,500,650,500,650,500,650,450,700,450,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,450,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,450,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,450,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,550,650,500,650,1600,650,1600,650,500,650,1650,650,500,650,1600,650,500,650}; //Decoded NEC: C1602046 (32 bits) - Lig/Desl com temperatura de 24° unsigned int raw_ar_24[229] = {9150,4450,650,1650,600,1650,650,500,650,500,650,500,650,500,600,550,600,1650,650,500,650,1650,600,1650,650,500,650,500,650,500,600,550,600,550,600,550,600,550,600,1650,600,550,650,500,600,550,600,550,600,550,600,550,600,1650,600,550,600,550,600,550,600,1700,600,1600,650,500,650,500,650,500,650,500,650,500,650,500,650,500,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,7950,650,500,650,500,650,500,650,500,650,500,650,500,650,500,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,500,650,500,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,500,650,500,600,550,600,550,600,600,550,600,550,550,600,550,600,550,600,550,600,550,600,550,600,550,550,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,550,600,500,600,600,550,600,550,600,600,550,600,1650,650,1650,600,550,600,500,650,1650,600,1650,650,500,650}; //Decoded NEC: C1602041 (32 bits) - Lig/Desl com temperatura de 26° unsigned int raw_ar_26[229] = {9200,4450,650,1650,650,1600,650,500,650,500,650,500,650,500,650,500,650,1600,650,500,650,1650,650,1600,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,1650,600,550,600,500,650,500,650,500,650,500,650,500,650,1650,600,550,600,550,600,550,600,500,650,500,650,1650,600,550,600,550,600,550,600,550,600,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,600,550,600,550,600,8000,650,500,650,500,650,450,700,450,650,500,650,500,650,550,600,550,600,550,600,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,600,550,600,550,600,550,600,550,600,550,600,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,600,550,600,550,600,550,600,550,600,550,600,550,600,500,650,500,650,500,650,500,650,500,650,500,650,500,650,500,600,550,600,550,600,550,600,550,600,550,600,550,600,500,650,500,650,500,650,500,650,550,650,500,650,1650,600,1650,600,550,650,500,600,550,600,550,600,1650,650}; void setup() { pinMode(led, OUTPUT); // saida led pinMode(ledIR ,OUTPUT); // saída do infravermelho Serial.begin(9600); //configurando a entrada dos botoes pinMode(maisvolume, INPUT); digitalWrite(maisvolume, HIGH);// liga o resistor de elevação (pullup) pinMode(menosvolume, INPUT); digitalWrite(menosvolume, HIGH);// liga o resistor de elevação (pullup) pinMode(maiscanal, INPUT); digitalWrite(maiscanal, HIGH);// liga o resistor de elevação (pullup) pinMode(menoscanal, INPUT); digitalWrite(menoscanal, HIGH);// liga o resistor de elevação (pullup) } void loop(){ //se o botão maisvolume for pressionado ele ira enviar o código para aumentar o volume na tv if (digitalRead(maisvolume) == LOW) { digitalWrite(led, HIGH); irsend.sendNEC(0x20DF10EF, 32);// Lig/Desl TV delay(400); irsend.sendNEC(0x404050AF, 32);// Lig/Desl Recep delay(3000); irsend.sendNEC(0x404040BF, 32);// numero 2 Recep delay(400); irsend.sendNEC(0x4040609F, 32);// numero 6 Recep } else { digitalWrite(led, LOW); } //se o botão menosvolume for pressionado ele irá enviar o código para Lig/Desl Ar consul if (digitalRead(menosvolume) == LOW) { digitalWrite(led, HIGH); irsend.sendRaw(raw_ar_24,229,3Cool;// Lig/Desl Ar consul a 24° delay(500); } else { digitalWrite(led, LOW); } //se o botão maiscanal for pressionado ele ira enviar o código para aumentar o canal na tv if (digitalRead(maiscanal) == LOW) { digitalWrite(led, HIGH); irsend.sendNEC(0x39C6E817, 32); // código que sera enviado a tv para aumentar o canal } else { digitalWrite(led, LOW); } //se o botão menoscanal for pressionado ele irá enviar o código para diminuir o canal na tv if (digitalRead(menoscanal) == LOW) { digitalWrite(led, HIGH); irsend.sendNEC(0x39C6C837, 32); // código que sera enviado a tv para diminuir o canal } else { digitalWrite(led, LOW); } } Desta forma funcionou o controle, se alguem descobrir como usar hexadecimal favor postem.
Mostrar mensagens desde a última:
Ir para página Anterior  1 2 3




Ir para:  
Todos os horários são GMT - 3 HorasVocê não tem permissão para escrever novas mensagens
v não tem permissão para responder às mensagens
Você não tem permissão para editar suas mensagens
Você não tem permissão para deletar suas mensagens
Você não tem permissão para classificar tópicos
Você não tem permissão para classificar mensagens
Você não tem permissão para votar em enquetes
Anexar downloads : Proibido
Fazer Download de Arquivos: Proibido
Powered by phpBB © 2001 phpBB Group