Fórum
- Busca avançada
- Informacoes
- Regras
- PMF
- Glossário
- Dicas e Dúvidas
- Tutoriais
- Tutoriais
- Build Reports
- Desafio RoboCore
- Discussoes
- Arduino
- Albatross
- Técnicas
- Gerais
- Competições
- Iniciantes
- CAD/CAM/CAE
- Classificados
- Compra
- Venda
- Troca
- Vagas de Emprego
- Suporte
- Erros
- Sugestões
Autor
Mensagem
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?
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. |
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? |
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.
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.
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.
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
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.
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. |
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. |
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. |
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). |


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.
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). |
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 |
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. |
|
|
|
Todos os horários são GMT - 3 Horas | Você 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
ROBOCORE TECNOLOGIA
A RoboCore foi criada em 2008 com o intuito de incentivar o desenvolvimento tecnologico, fabricando e fornecendo peças para automação e robótica de alta qualidade a preços acessíveis.
RoboCore Tecnologia LTDA
CNPJ 10.383.409/0001-98
D-U-N-S Certified: 89-963-8833
Santana de Parnaiba/SP - Brasil
CNPJ 10.383.409/0001-98
D-U-N-S Certified: 89-963-8833
Santana de Parnaiba/SP - Brasil
NOSSAS REDES SOCIAIS
LINKS ÚTEIS
POLÍTICAS DA LOJA
CENTRAL DE ATENDIMENTO
ROBOCORE® 2023. Todos os direitos reservados