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 1 2  Next
Autor
Mensagem
3
rauppluizfr

Level 0
276400 xp

Registrado em:
16/12/2013





Mensagens:
5
3
rauppluizfr

Responder com citações
Mensagem Seg Dez 16, 2013 8:54 am
Acionando ar-condicionado
Ola,

Interessei-me muito pelo projeto e inclusive pretendo implementa-lo em minha residencia, contudo antes de realizar a compra dos modulos, principalmente do X-bee, estou fazendo uma prova de conceito com um Arduino Uno que tinha perdido aqui em casa.

Estive tentando acionar um ar-condicionado (consul linha bem-estar) sem sucesso. OS controles de TV e demais aparelhos IR que tenho aqui em casa nao tive qualquer problema, contudo quanto ao ar-condicionado nem por decreto consigo enviar um comando reconhecivel pelo mesmo. Estive usando a Biblioteca IRemote e a mesma reconhece o codigo como NEC, inclusive ja tentei enviar o codigo bruto (raw) tambem sem sucesso...

Alguma sugestao do que poderria estar acontecendo, pesquisando no google percebi que é um problem recorrente, mas não encontrei nenhuma solucao que se adeque a minha situação. So falta definir essa questao para adquirir os modulos x-bee e comecar de fato a automacao.

BeatSlayer
Moderator
Level 43
43488582 xp

Registrado em:
29/11/2012





Mensagens:
1303

BeatSlayer
Moderator
Responder com citações
Mensagem Seg Dez 16, 2013 10:26 am
Acionando ar-condicionado
Códigos que usaste para enviar?

_________________
Aceitam-se doações.
Twisted Evil De preferência de um Arduino Shield - Ethernet R3 Twisted Evil
3
rauppluizfr

Level 0
276400 xp

Registrado em:
16/12/2013





Mensagens:
5
3
rauppluizfr

Responder com citações
Mensagem Seg Dez 16, 2013 10:41 am
Acionando ar-condicionado
BeatSlayer Escreveu:
Códigos que usaste para enviar?
No momento estou usando o exemplo da biblioteca IRemote, o IRecorde ...
Comentário:
/* * IRrecord: record and play back IR signals as a minimal * An IR detector/demodulator must be connected to the input RECV_PIN. * An IR LED must be connected to the output PWM pin 3. * A button must be connected to the input BUTTON_PIN; this is the * send button. * A visible LED can be connected to STATUS_PIN to provide status. * * The logic is: * If the button is pressed, send the IR code. * If an IR code is received, record it. * * Version 0.11 September, 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com */ #include <IRremote.h> int RECV_PIN = 11; int BUTTON_PIN = 12; int STATUS_PIN = 13; IRrecv irrecv(RECV_PIN); IRsend irsend; decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver pinMode(BUTTON_PIN, INPUT); pinMode(STATUS_PIN, OUTPUT); } // Storage for the recorded code int codeType = -1; // The type of code unsigned long codeValue; // The code value if not raw unsigned int rawCodes[RAWBUF]; // The durations if raw int codeLen; // The length of the code int toggle = 0; // The RC5/6 toggle state // Stores the code for later playback // Most of this code is just logging void storeCode(decode_results *results) { codeType = results->decode_type; int count = results->rawlen; if (codeType == UNKNOWN) { Serial.println("Received unknown code, saving as raw"); codeLen = results->rawlen - 1; // To store raw codes: // Drop first value (gap) // Convert from ticks to microseconds // Tweak marks shorter, and spaces longer to cancel out IR receiver distortion for (int i = 1; i <= codeLen; i++) { if (i % 2) { // Mark rawCodes[i - 1] = results->rawbuf[i]*USECPERTICK - MARK_EXCESS; Serial.print(" m"); } else { // Space rawCodes[i - 1] = results->rawbuf[i]*USECPERTICK + MARK_EXCESS; Serial.print(" s"); } Serial.print(rawCodes[i - 1], DEC); } Serial.println(""); } else { if (codeType == NEC) { Serial.print("Received NEC: "); if (results->value == REPEAT) { // Don't record a NEC repeat value as that's useless. Serial.println("repeat; ignoring."); return; } } else if (codeType == SONY) { Serial.print("Received SONY: "); } else if (codeType == RC5) { Serial.print("Received RC5: "); } else if (codeType == RC6) { Serial.print("Received RC6: "); } else { Serial.print("Unexpected codeType "); Serial.print(codeType, DEC); Serial.println(""); } Serial.println(results->value, HEX); codeValue = results->value; codeLen = results->bits; } } void sendCode(int repeat) { if (codeType == NEC) { if (repeat) { irsend.sendNEC(REPEAT, codeLen); Serial.println("Sent NEC repeat"); } else { irsend.sendNEC(codeValue, codeLen); Serial.print("Sent NEC "); Serial.println(codeValue, HEX); } } else if (codeType == SONY) { irsend.sendSony(codeValue, codeLen); Serial.print("Sent Sony "); Serial.println(codeValue, HEX); } else if (codeType == RC5 || codeType == RC6) { if (!repeat) { // Flip the toggle bit for a new button press toggle = 1 - toggle; } // Put the toggle bit into the code to send codeValue = codeValue & ~(1 << (codeLen - 1)); codeValue = codeValue | (toggle << (codeLen - 1)); if (codeType == RC5) { Serial.print("Sent RC5 "); Serial.println(codeValue, HEX); irsend.sendRC5(codeValue, codeLen); } else { irsend.sendRC6(codeValue, codeLen); Serial.print("Sent RC6 "); Serial.println(codeValue, HEX); } } else if (codeType == UNKNOWN /* i.e. raw */) { // Assume 38 KHz irsend.sendRaw(rawCodes, codeLen, 3Cool; Serial.println("Sent raw"); } } int lastButtonState; void loop() { // If button pressed, send the code. int buttonState = digitalRead(BUTTON_PIN); if (lastButtonState == HIGH && buttonState == LOW) { Serial.println("Released"); irrecv.enableIRIn(); // Re-enable receiver } if (buttonState) { Serial.println("Pressed, sending"); digitalWrite(STATUS_PIN, HIGH); sendCode(lastButtonState == buttonState); digitalWrite(STATUS_PIN, LOW); delay(50); // Wait a bit between retransmissions } else if (irrecv.decode(&results)) { digitalWrite(STATUS_PIN, HIGH); storeCode(&results); irrecv.resume(); // resume receiver digitalWrite(STATUS_PIN, LOW); } lastButtonState = buttonState; }

BeatSlayer
Moderator
Level 43
43488582 xp

Registrado em:
29/11/2012





Mensagens:
1303

BeatSlayer
Moderator
Responder com citações
Mensagem Seg Dez 16, 2013 11:09 am
Acionando ar-condicionado
Esse código consegue ler mas não repetir. É isso?

Qual o código do controle (o hex referente ao código NEC)?

Já experimentaste repetir algumas vezes o mesmo código?

_________________
Aceitam-se doações.
Twisted Evil De preferência de um Arduino Shield - Ethernet R3 Twisted Evil
3
rauppluizfr

Level 0
276400 xp

Registrado em:
16/12/2013





Mensagens:
5
3
rauppluizfr

Responder com citações
Mensagem Ter Dez 17, 2013 1:57 pm
Acionando ar-condicionado
BeatSlayer Escreveu:
Esse código consegue ler mas não repetir. É isso? Qual o código do controle (o hex referente ao código NEC)? Já experimentaste repetir algumas vezes o mesmo código?
Entao, ontem aumentei o buffer da bilbioteca do IRemote de 100 para 250 e pelo menos assim consegui comandar o ar enviando diretamente o codigo raw lido, contudo, mandando o NEC os comandos simplesmente nao funcionam. No momento ateh dah para ir tocando o projeto para o que eu pretendo fazer em casa, mas sem enviar o comando NEC vai ser complicado mais para frente saber o que eh informacao de temperatura, de velocidade, essas coisas, somente olhando aquele monte de dado do codigo raw, sem falar no consumo de memoria para armazenar um buffer desse tamanho. Pensei em fazer uma rotina para ler os codigos diretamente do cartao SD, mas nao sei se o tempo de leitura e conversão dos dados vai atrapalhar o envio do raw (vou ver se testo essa semana).

BeatSlayer
Moderator
Level 43
43488582 xp

Registrado em:
29/11/2012





Mensagens:
1303

BeatSlayer
Moderator
Responder com citações
Mensagem Ter Dez 17, 2013 6:11 pm
Acionando ar-condicionado
Funciona sim pelo SD até já fiz algum código para isso tem bastante tempo, e também para ler da PROGMEM.

_________________
Aceitam-se doações.
Twisted Evil De preferência de um Arduino Shield - Ethernet R3 Twisted Evil

Lenz
Site Admin
Level 20
20536657 xp

Registrado em:
08/05/2004



Equipe:
Submarino URC

Mensagens:
903

Lenz
Site Admin
Responder com citações
Mensagem Sab Jan 04, 2014 11:20 am
Acionando ar-condicionado
O Albatross consegue controlar Ar-Condicionado sem problemas, porém devido ao tamanho do comando IR utilizado pelos ar-condicionados, além das bibliotecas desenvolvidas para o Albatross, é necessário utilizar um Arduino Mega.

Lembre que para controle de aparelhos IR, não é necessário utilizar módulos escravos e consequentemente não há necessidade dos XBees, apenas o Albatross Master é necessário.
3
cwds.al

Level 0
0 xp

Registrado em:
27/02/2014





Mensagens:
1
3
cwds.al

Responder com citações
Mensagem Qui Fev 27, 2014 8:56 pm
Acionando ar-condicionado
BeatSlayer Escreveu:
Funciona sim pelo SD até já fiz algum código para isso tem bastante tempo, e também para ler da PROGMEM.
BeatSlayer, Sou novo com o arduino e gostaria se possível, postasse um exemplo de código que buscasse do SD a informação do código raw e enviasse para o equipamento.

leotronica

Level 13
13191191 xp

Registrado em:
02/01/2005



Equipe:
Mecatron

Mensagens:
291

leotronica

Responder com citações
Mensagem Sab Mar 15, 2014 8:55 pm
Acionando ar-condicionado
Pessoal, eu vi que o Albatross disponibilizado pela Robocore consegue controlar ar condicionado como dito na citação abaixo.

Comentário:
O Albatross consegue controlar Ar-Condicionado sem problemas, porém devido ao tamanho do comando IR utilizado pelos ar-condicionados, além das bibliotecas desenvolvidas para o Albatross, é necessário utilizar um Arduino Mega.
Dai queria sabe o que o arduino mega tem de especial em relação ao uno? Ja tentei enviar o codigo do ar usando raw e tambem modificando o rawbuffer mais não da certo. Também tentei usar a função PROGMEM mas também não funcionou. Qual é o mistério por trás do ar-condicionado?
3
Servio

Level 0
802913 xp

Registrado em:
22/09/2013





Mensagens:
15
3
Servio

Responder com citações
Mensagem Seg Mar 17, 2014 6:41 pm
Acionando ar-condicionado
Boa tarde Pessoal, 

Estou usando o Albatross junto ao TouchOsc para controle do ar condicionado via IR. Até aí tudo bem...funciona perfeitamente assim como a tv, o relés Xbee e o home theater. Acrescentei ao código do Albatross um LDR e um LM35, minha ideia é que entre uma faixa de valores de temperatura o código enviasse sinais IR para diminuir ou aumentar a temperatura do ar condicionado. Como faço para que caso uma condição do IF ele mande o sinal IR? 

Abraços.

leotronica

Level 13
13191191 xp

Registrado em:
02/01/2005



Equipe:
Mecatron

Mensagens:
291

leotronica

Responder com citações
Mensagem Seg Mar 17, 2014 8:57 pm
Acionando ar-condicionado
Pessoal, alguém da robocore que desenvolveu o Albatross pode por favor me explicar porque os comandos ir para ar condicionado só funcionam com o Arduino MEGA e não com o UNO?

Francois

Level 2
2644800 xp

Registrado em:
08/04/2013



Equipe:
Submarino URC

Mensagens:
67

Francois

Responder com citações
Mensagem Qua Mar 19, 2014 3:02 pm
Acionando ar-condicionado
Servio Escreveu:
Boa tarde Pessoal, Estou usando o Albatross junto ao TouchOsc para controle do ar condicionado via IR. Até aí tudo bem...funciona perfeitamente assim como a tv, o relés Xbee e o home theater. Acrescentei ao código do Albatross um LDR e um LM35, minha ideia é que entre uma faixa de valores de temperatura o código enviasse sinais IR para diminuir ou aumentar a temperatura do ar condicionado. Como faço para que caso uma condição do IF ele mande o sinal IR? Abraços.
Servio, Você pode inserir uma função que leia os sensores e interprete os dados dentro da função loop() do código do Albatross. Provavelmente a próxima versão do código terá uma área de fácil acesso para os usuários inserirem código próprio. Para enviar o sinal de IR basta chamar a função associada IRSend() com um parâmetro OSCMessage criado pela sua função. ---------------------------------------
leotronica Escreveu:
Pessoal, alguém da robocore que desenvolveu o Albatross pode por favor me explicar porque os comandos ir para ar condicionado só funcionam com o Arduino MEGA e não com o UNO?
Leotronica, O Arduino Uno não tem memória suficiente para armazenar os dados do comando infravermelho e interpretar comandos pela rede, por isso recomendamos que utilize um Arduino Mega 2560. Se quiser fazer um programa simples, só para enviar um comando para o ar-condicionado, então o Uno deve ser suficiente. No entanto, se quiser armazenar vários comandos na memória volátil do Uno, então não é possível.

leotronica

Level 13
13191191 xp

Registrado em:
02/01/2005



Equipe:
Mecatron

Mensagens:
291

leotronica

Responder com citações
Mensagem Qua Mar 19, 2014 3:27 pm
Acionando ar-condicionado
Francois, eu não estou utilizando o codigo completo do albatross pois eu sei que ele é muito pesado para um UNO, o que eu fiz foi somente enviar um comando do ar-condicionado como segue a programação abaixo, lembrando que meu RAWBUFF está em 250.

Código:

O que está errado? Será que o UNO não consegue enviar uma string de tamanho 74? Será que alguém que tenha o MEGA pode fazer esse tipo de teste e postar o resultado?  Obrigado.

leotronica

Level 13
13191191 xp

Registrado em:
02/01/2005



Equipe:
Mecatron

Mensagens:
291

leotronica

Responder com citações
Mensagem Seg Mar 31, 2014 4:31 pm
Acionando ar-condicionado
Pessoal, por favor, alguém do grupo do Albatross pode me explicar porque o arduino mega consegue controlar ar condicionados e o uno não? Deixei um exemplo na postagem anterior e vejo que o uno da conta de enviar o código só que mesmo assim o ar cond não responde. Tem algum truque no MEGA? eu sei que não tem como colocar um monte de códigos na memoria do uno mas o exemplo acima deveria funcionar.

Francois

Level 2
2644800 xp

Registrado em:
08/04/2013



Equipe:
Submarino URC

Mensagens:
67

Francois

Responder com citações
Mensagem Seg Mar 31, 2014 5:50 pm
Acionando ar-condicionado
Leotronica,

Contei 72 valores na matriz raw_ar[]. Tente declarar esta variável como:

Código:

E altere a chamada da função para:

Código:


Você também disse que a constante RAWBUF está com o valor de 250, então deve ser suficiente para armazenar o comando. O que pode estar acontecendo é que o Arduino não está recebendo o comando inteiro. Quando testamos com o ar-condicionado o buffer tinha em torno de 200 valores. Tente então alterar a constante _GAP no arquivo IRremoteInt.h da biblioteca para 6000 ou 7000 (originalmente de 5000) para verificar se não há mais valores que estão sendo ignorados.
Mostrar mensagens desde a última:
Ir para página 1 2  Next




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