Fórum


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

leotronica

Level 13
13191563 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
2966374 xp

Registrado em:
08/04/2013





Mensagens:
75

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
13191563 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
13191563 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
2966374 xp

Registrado em:
08/04/2013





Mensagens:
75

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.

leotronica

Level 13
13191563 xp

Registrado em:
02/01/2005



Equipe:
Mecatron

Mensagens:
291

leotronica

Responder com citações
Mensagem Seg Mar 31, 2014 9:39 pm
Acionando ar-condicionado
Francois,

      Fiz o que você me disse mas mesmo assim não funcionou. Não entendo porque diabos o ar condicionado é assim, e vejo pela net que isso é geral, quase ninguém consegue comandar o ar condicionado, eu já fiz testes e consigo controlar praticamente tudo usando o código raw porém ar condicionado está difícil. 
       Testei também usando dois arduinos, um com o programa para enviar o código RAW e outro com o programa para receber e me mostrar via serial o código recebido e está tudo ok o mesmo código enviado é o mesmo recebido, os arduinos não estão cortando nenhum dado enviado ou recebido. 

      Gostaria de saber quais os modelos de ar condicionados testados no Albatross pois o meu é um Gree modelo do controle YB1FA e com a foto do mesmo abaixo.

      Mais uma coisa, alguém conseguiu descobrir que tipo de protocolo o controle de ar condicionado usa? O arduino informa que é NEC porém não achei nada concreto na net sobre esse tipo de controle.


http://www.refrigeracaoec...o-yb1fa-839.jpg

Francois

Level 2
2966374 xp

Registrado em:
08/04/2013





Mensagens:
75

Francois

Responder com citações
Mensagem Seg Abr 07, 2014 8:13 pm
Acionando ar-condicionado
Leotronica,

Ao alterar estas constantes na biblioteca você deveria ter recebido o comando inteiro, por isso acho estranho não ter conseguido controlar o aparelho. Pode ser que o comando precise ser enviado algumas vezes (com alguns aparelhos é preciso fazer esta repetição) ou que ele já esteja sendo repetido dentro do buffer recebido (não acho que seja o caso). Tente enviar três vezes os mesmos dados, mude apenas o delay (em microssegundos) entre cada envio. Além disso, você fixou o LED infravermelho em frente ao receptor do aparelho? Alguns aparelhos têm um ângulo de recepção menor do que os demais.

O Albatross foi testado com ar-condicionados Midea e o buffer tinha mais de 200 dados, por isso estranhei o comprimento do seu buffer. Pode ser que o comando que você está sendo recebido seja do tipo NEC, mas acho mais confiável usar os dados brutos. Se já não tentou enviar por NEC, não custa tentar.

Uma alternativa mais drástica e menos recomendada é de ler direto da fonte. Você poderia abrir o controle e ler os sinais correspondentes (o que vai para o emissor e o GND) e/ou abrir o aparelho e fazer as conexões semelhantes no receptor infravermelho. Este processo não é recomendado, pois é preciso ter cuidado para não danificar nem o controle nem o ar.

O mais indicado a se fazer é ler o sinal do controle com um osciloscópio. Se não tiver um, você pode tentar fazer um com interrupções, ou seja, lendo uma porta quando o tempo estourar. É basicamente o que faz a biblioteca IRremote, mas sem alguns filtros (a biblioteca corta o sinal recebido quando a pausa foi maior do que o limite estabelecido).

Mantenha-nos atualizados dos resultados.

leotronica

Level 13
13191563 xp

Registrado em:
02/01/2005



Equipe:
Mecatron

Mensagens:
291

leotronica

Responder com citações
Mensagem Seg Abr 07, 2014 8:53 pm
Acionando ar-condicionado
Olá, gostaria de deixar meus comentários abaixo.

 
Comentário:
Além disso, você fixou o LED infravermelho em frente ao receptor do aparelho? Alguns aparelhos têm um ângulo de recepção menor do que os demais.
Eu gravei o código na placa arduino e encostei o emissor infravermelho na placa receptora do ar condicionado um colado com o outro para evitar esse tipo de problema.
Comentário:
Pode ser que o comando que você está sendo recebido seja do tipo NEC, mas acho mais confiável usar os dados brutos. Se já não tentou enviar por NEC, não custa tentar.
Realmente o arduino me mostra sendo comando NEC só que ele não tem o mesmo comprimento de um comando NEC normal pois quando eu copio o codigo de um controle normal tipo de TV ele me mostra o comando tipo "2FD48B7" porém no ar condicionado eu recebo "9811120A" o que realmente não é um dado confiavel por isso eu uso sempre o codigo RAW.
Comentário:
Uma alternativa mais drástica e menos recomendada é de ler direto da fonte. Você poderia abrir o controle e ler os sinais correspondentes (o que vai para o emissor e o GND) e/ou abrir o aparelho e fazer as conexões semelhantes no receptor infravermelho. Este processo não é recomendado, pois é preciso ter cuidado para não danificar nem o controle nem o ar.
Estou pensando drasticamente em fazer isso, por enquanto no controle do ar para eliminar algum ruido externo.
Comentário:
O mais indicado a se fazer é ler o sinal do controle com um osciloscópio. Se não tiver um, você pode tentar fazer um com interrupções, ou seja, lendo uma porta quando o tempo estourar. É basicamente o que faz a biblioteca IRremote, mas sem alguns filtros (a biblioteca corta o sinal recebido quando a pausa foi maior do que o limite estabelecido).
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, 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. 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. O que eu venho notado é que ao que parece os pulsos enviados para o ar condicionado tem que ter um tamanho exato de pulso em nível baixo e nível alto mas isso eu não tenho certeza pois você me disse que o ar condicionado MIdea Split funcionou usando o trem de pulsos RAW. O grande problema é que eu pelo menos não acho nada na internet relacionado ao protocolo NEC para ar condicionados, visto que ele se comporta de uma maneira diferente do protocolo NEC comum, pois no caso dos ar condicionados o controle "soma" todas as funções pré programadas e envia tudo de uma vez quando se pressiona uma tecla o que acaba deixando o trem de pulsos muito longo e deixando nosso amiguinho arduino sem entender direito os dados recebidos. Assim, não sei se você ou outro membro tem acesso a placa Albatross ou a arduino MEGA mas se sim, você poderia fazer alguns testes com outros controles de ar condicionado? Vocês só testaram no Midea? Qual o modelo de controle desse Midea? Aff ar condicionado dos infernos Evil or Very Mad Evil or Very Mad
3
rauppluizfr

Level 0
276400 xp

Registrado em:
16/12/2013





Mensagens:
5
3
rauppluizfr

Responder com citações
Mensagem Ter Abr 08, 2014 8:36 am
Acionando ar-condicionado
O meu ar-condicionado é da consul e somente consegui aciona-lo usando o codigo RAW e aumentando o trem de pulsos do buffer na biblioteca. Talvez no final da semana eu teste em um outro aparelho.

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).

Como observação, o codigo raw deve estar todo armazenado na memória do arduino, se tentar ler do SD, gravar na PROGEM o negócio não funciona ,pq o acesso é lento e o trem de pulsos nao deve ser enviado com as tolerâncias necessárias e lembrando que os pinos utilizados pela biblioteca para enviar o IR é diferente no arduino UNO (pino 3) e no MEGA (pino 9), questão de timers/interrupcoes. Ja veirificou se não é problema se software? Certa vez descobri um problema no meu codigo ao colocar um led comum na saída e ver que ele não piscava ao enviar os comandos.

leotronica

Level 13
13191563 xp

Registrado em:
02/01/2005



Equipe:
Mecatron

Mensagens:
291

leotronica

Responder com citações
Mensagem Ter Abr 08, 2014 10:17 am
Acionando ar-condicionado
Comentário:
Mas na época que estava na labuta para fazer o negócio funcionar, a biblioteca insiste em dizer que o código é 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).
Gostaria muito de saber que parâmetro é esse que você mexeu pois já modifiquei vários parâmetros sem sucesso até então.
Comentário:
Como observação, o codigo raw deve estar todo armazenado na memória do arduino, se tentar ler do SD, gravar na PROGEM o negócio não funciona ,pq o acesso é lento e o trem de pulsos não deve ser enviado com as tolerâncias necessárias
Também já tinha testado dessa forma e realmente se não mandar para a memoria do arduino o envio dos comandos RAW fica lento e bagunçado.
Comentário:
Ja veirificou se não é problema se software? Certa vez descobri um problema no meu codigo ao colocar um led comum na saída e ver que ele não piscava ao enviar os comandos.
Já sim, sempre que eu monto e envio o sinal de infravermelho eu verifico antes se o led está enviando o comando, para isso eu utilizo a câmera do meu celular que como todos devem saber consegue enxergar a luz emitida pelo led. rauppluizfr você poderia postar a sua biblioteca irremote para eu comparar com a minha? Gostaria de saber também o modelo do seu controle de ar condicionado. Outra coisa qual o tamanho do buffer de RAW do seu AR?
Mostrar mensagens desde a última:
Ir para página Anterior  1 2 3  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