LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: Donvan em 11 de Julho de 2012, 17:50

Título: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 11 de Julho de 2012, 17:50
Olá pessoal!

Já me fartei de pesquizar e não encontrei nada...

Alguém sabe como programar o arduino com a libreria IRREMOTE, para 2 receptores ir remote?

tenho um sensor na sala e outro no quarto, tenho cada sensor ligado a uma porta do arduino (ex: ir1- porta 2, ir2- porta 5.)

não estou a conseguir programar para receber os sinais no arduino, só consigo para um ou para outro.

se não houver solução programando, pensei em juntar os dois OUT's dos ir's com um diodo em cada out, para o sinal não passar de um para o outro e assim chegar os dois sinais á mesma porta. no caso de chegar dois sinais ao mesmo tempo, isso nao me preocupa muito, porque não creo que os vaia a usar ao mesmo tempo, ou estou na sala ou no quarto.

alguem sabe algo?

obrigado e Deus te abençõe!
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 13 de Julho de 2012, 12:48
ainda sem mexer mais nisto por falta de tempo, lembrei-me de copiar a libreria irremote e editar-le alguns nomes.

tipo irremote2, recvpin2, etc, editado dentro da libreria.

deve funcionar, mais logo vou experimentar.
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 13 de Julho de 2012, 17:26
Depois de mudar varios nomes, e funcionar bem a boblioteca editada, se juntar as duas, dá-me esse erro que não consegui resolver, alguem sabe como resolver?


IRremote2\IRremote2.cpp.o: In function `__vector_9':
C:\Users\7\Documents\Downloads\Arduino\arduino-1.0.1\libraries\IRremote2/IRremote2.cpp:264: multiple definition of `__vector_9'
IRremote\IRremote.cpp.o:C:\Users\7\Documents\Downloads\Arduino\arduino-1.0.1\libraries\IRremote/IRremote.cpp:264: first defined here
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: senso em 13 de Julho de 2012, 17:46
Esse erro é dado porque essa biblioteca usa uma interrupção, e como cada cópia da biblitoeca está a definir a mesma interrupção com código diferente dá esse erro.
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 13 de Julho de 2012, 17:49
consegui este codigo que nem usa bibliotecas nem nada e parece funcionar bem, vou testar melhor...

http://pscmpf.blogspot.pt/2010/01/arduino-and-ir-receiver.html (http://pscmpf.blogspot.pt/2010/01/arduino-and-ir-receiver.html)
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 13 de Julho de 2012, 19:33
Esse erro é dado porque essa biblioteca usa uma interrupção, e como cada cópia da biblitoeca está a definir a mesma interrupção com código diferente dá esse erro.

obrigado pela resposta!

e não há maneira de contornar esse erro?

o codigo que encontrei funciona para os dois ir's, no entanto tem um delay de 100ms que é uma eternidade para o meu projecto, devido a uns shift's 4051...

vou jantar, até logo e obrigado
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: iyahdub em 13 de Julho de 2012, 20:45
Depende de que chip estas a usar, mas podes sempre modificar a biblioteca para usar um outro interrupt... Claro que tens que investigar bem, porque vou assumir que essa biblioteca depende do timer para contar os pulsein ,mas se usares uma Mega 2560, os os timers 3,4 e 5 sao de 16 bits tb, tal como o timer 1 que deve ser a que essa biblioteca usa.
Da talvez uma vista de olhos aqui... E estuda bem os codigos, ja que eles permitem-te fazer seja o que for, desde que os compreendas bem primeiro...E uma questao de os alterares depois ao teu gosto e necessidade !
Epah nao pus o link pois nao ?!?lol
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: senso em 13 de Julho de 2012, 22:07
Podes remover os delays do código que encontraste sem causar qualquer problema.
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 13 de Julho de 2012, 23:40
Podes remover os delays do código que encontraste sem causar qualquer problema.

Ao remover o delay, os codigos recebidos pelo IR tornam-se incertos...vou ir testando até ter o que preciso.

Obrigado
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 13 de Julho de 2012, 23:44
Depende de que chip estas a usar, mas podes sempre modificar a biblioteca para usar um outro interrupt... Claro que tens que investigar bem, porque vou assumir que essa biblioteca depende do timer para contar os pulsein ,mas se usares uma Mega 2560, os os timers 3,4 e 5 sao de 16 bits tb, tal como o timer 1 que deve ser a que essa biblioteca usa.
Da talvez uma vista de olhos aqui... E estuda bem os codigos, ja que eles permitem-te fazer seja o que for, desde que os compreendas bem primeiro...E uma questao de os alterares depois ao teu gosto e necessidade !

Uso um arduino Uno, tenho 3 register's 595 e 2 mux/demux 4051...

se me poderes dar uma ideia de usar outro interrupt em das bibliotecas! senão tenho que passar horas a investigar sobre isso...

Obrigado
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: iyahdub em 14 de Julho de 2012, 00:00
http://www.ladyada.net/learn/sensors/ir.html (http://www.ladyada.net/learn/sensors/ir.html)
Este e o link que nao coloquei da ultima vez...
Se queres entao manda-me a bliblioteca para dar uma vista de olhos...
O senso e melhor que eu nesse aspecto , mas nao me importo de ver se o consigo fazer... Mas aviso-te ja que nao tenho aqui as minhas cenas, por isso so amanha ou isso e que posso experimentar com o meu sensor ( aqui so tenho os PICS).
Ja agora que arduino estas a usar ?!? Eu so tenho o UNO e o MEGA 2560.. Pelo menos com um desses posso ao menos certificar-me que trabalhe...

PS- ele tem razao senso...sem os delays, tb tive problemas com o meu, na altura

PS2- Existe outro codigo na net que nao encontro, ja que era bem completo, e ate de dava um array em C pronto a usar, do comando /botao que estivesses a usar...
Em relacao aos sensoores, disseste que os tens ligados ao mesmo arduino... Os cabos estao muito longe ?!? Eles podem estar a perder o sinal se sim , ou a criar data nao fiavel devido ao barulho criado !!
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: iyahdub em 14 de Julho de 2012, 00:06
Ahhh esper, estas a usar 595's e um 4051 ?!?
Isso e melhor pores esquematica tb...
Eu posso tentar ajudar-te a ver se consigo implementar, mas atencao que ainda nao vi sequer a biblioteca... Nao espero que seja facil ja que  pulseIn faz parte da implementacao do arduino...mas nao aleija em ver ( apesar de nao me cheirar ser facil lol~)
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 14 de Julho de 2012, 00:09
http://www.ladyada.net/learn/sensors/ir.html (http://www.ladyada.net/learn/sensors/ir.html)
Este e o link que nao coloquei da ultima vez...
Se queres entao manda-me a bliblioteca para dar uma vista de olhos...
O senso e melhor que eu nesse aspecto , mas nao me importo de ver se o consigo fazer... Mas aviso-te ja que nao tenho aqui as minhas cenas, por isso so amanha ou isso e que posso experimentar com o meu sensor ( aqui so tenho os PICS).
Ja agora que arduino estas a usar ?!? Eu so tenho o UNO e o MEGA 2560.. Pelo menos com um desses posso ao menos certificar-me que trabalhe...

PS- ele tem razao senso...sem os delays, tb tive problemas com o meu, na altura

PS2- Existe outro codigo na net que nao encontro, ja que era bem completo, e ate de dava um array em C pronto a usar, do comando /botao que estivesses a usar...
Em relacao aos sensoores, disseste que os tens ligados ao mesmo arduino... Os cabos estao muito longe ?!? Eles podem estar a perder o sinal se sim , ou a criar data nao fiavel devido ao barulho criado !!

o arduino é o UNO. a biblioteca é a IRremote(estava a tentar duas IRremote, editando os nomes de uma para não entrar em conflito...só falta mesmo o interrupt)

quanto ao PS2, funcionam bem os sensores, mesmo com o codigo do delay. mas o delay faz com que deixe de funcionar um led displayx4 que tenho ligado a um demux4051, que precisa de microseconds...
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 14 de Julho de 2012, 00:13
Ahhh esper, estas a usar 595's e um 4051 ?!?
Isso e melhor pores esquematica tb...
Eu posso tentar ajudar-te a ver se consigo implementar, mas atencao que ainda nao vi sequer a biblioteca... Nao espero que seja facil ja que  pulseIn faz parte da implementacao do arduino...mas nao aleija em ver ( apesar de nao me cheirar ser facil lol~)

preferia usar as duas bibliotecas IRremote editadas(uma), do que o codigo com delay. já que funciona melhor a IRremote...
Quanto a configuração do material, etc. coloco amanhã, que agora tenho de sair.
Muito obrigado pelo interesse e pela ajuda!!!
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: iyahdub em 14 de Julho de 2012, 00:42
Em relacao ao delay, o que o senso se calhar quis dizer- e nos nao percebemos na altura- foi usares os mesmos microsegindos para fazeres a contagem do tempo necessario para esperar ate fazer a leitura em vez do delay.
Para usares duas bibliotecas terias que ter criado uma nova funcao para chamar, parece-me( sem ter lido ainda a biblioteca claro), dai nao ter resultado...So vendo
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: senso em 14 de Julho de 2012, 14:13
O código da interrupção não é super complexo, simplesmente tens de fazer repetir o código todo na interrupção, quer dizer á outras maneiras de o fazer, mas a mais simples é essa.
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: iyahdub em 14 de Julho de 2012, 16:38
Ja agora podes colocar aqui o codigo ?!?
A biblioteca usa o timer 2 para interrupcao( 8 bits)... Por isso vou assumir que ainda temos o timer 1 livre ( que e 16 bits...) .
Outra pergunta...Em que pin estas a usar o segundo receptor ?!? O timer dois trabuca com o pin 11 e o pin 3...
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: iyahdub em 14 de Julho de 2012, 18:38
Ok aqui esta... Depois de alghuma pesquisa, descobri afinal quie a versao final da biblioteca tem a opcao para usar o timer 1 em ves do dois...Portanto acho que a mina opiniao seria, se preciso, apenas definir o timer 1 numa delas.( ja experiementaste o 2nd receptor no pino 3 e o 1ro no 11 ou vice versa lol?!?).

Deixo aqui a parte relevante para que possas ter algum avanco...
Como ves tem a opcao de usar os varios timers...
Por isso quer dizer que o trabalho ja esta feito...
Agora talvez o Senso possa responder se alguma coisa mais e preciso( basta descomentar ?!? Alterar o nome do #define de forma a podermos utiliza-lo no UNO ?!?

Código: [Seleccione]
// define which timer to use
//
// Uncomment the timer you wish to use on your board.  If you
// are using another library which uses timer2, you have options
// to switch IRremote to use a different timer.

// Arduino Mega
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
  //#define IR_USE_TIMER1   // tx = pin 11
  #define IR_USE_TIMER2     // tx = pin 9
  //#define IR_USE_TIMER3   // tx = pin 5
  //#define IR_USE_TIMER4   // tx = pin 6
  //#define IR_USE_TIMER5   // tx = pin 46

// Teensy 1.0
#elif defined(__AVR_AT90USB162__)
  #define IR_USE_TIMER1     // tx = pin 17

// Teensy 2.0
#elif defined(__AVR_ATmega32U4__)
  //#define IR_USE_TIMER1   // tx = pin 14
  //#define IR_USE_TIMER3   // tx = pin 9
  #define IR_USE_TIMER4_HS  // tx = pin 10

// Teensy++ 1.0 & 2.0
#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
  //#define IR_USE_TIMER1   // tx = pin 25
  #define IR_USE_TIMER2     // tx = pin 1
  //#define IR_USE_TIMER3   // tx = pin 16

// Sanguino
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__)
  //#define IR_USE_TIMER1   // tx = pin 13
  #define IR_USE_TIMER2     // tx = pin 14

// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
  //#define IR_USE_TIMER1   // tx = pin 9
  #define IR_USE_TIMER2     // tx = pin 3
#endif
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 14 de Julho de 2012, 19:37
O código da interrupção não é super complexo, simplesmente tens de fazer repetir o código todo na interrupção, quer dizer á outras maneiras de o fazer, mas a mais simples é essa.

"simplesmente tens de fazer repetir o código todo na interrupção", na biblioteca ou no codigo arduino?
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 14 de Julho de 2012, 19:50
Ok aqui esta... Depois de alghuma pesquisa, descobri afinal quie a versao final da biblioteca tem a opcao para usar o timer 1 em ves do dois...Portanto acho que a mina opiniao seria, se preciso, apenas definir o timer 1 numa delas.( ja experiementaste o 2nd receptor no pino 3 e o 1ro no 11 ou vice versa lol?!?).

Deixo aqui a parte relevante para que possas ter algum avanco...
Como ves tem a opcao de usar os varios timers...
Por isso quer dizer que o trabalho ja esta feito...
Agora talvez o Senso possa responder se alguma coisa mais e preciso( basta descomentar ?!? Alterar o nome do #define de forma a podermos utiliza-lo no UNO ?!?

Código: [Seleccione]
// define which timer to use
//
// Uncomment the timer you wish to use on your board.  If you
// are using another library which uses timer2, you have options
// to switch IRremote to use a different timer.

// Arduino Mega
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
  //#define IR_USE_TIMER1   // tx = pin 11
  #define IR_USE_TIMER2     // tx = pin 9
  //#define IR_USE_TIMER3   // tx = pin 5
  //#define IR_USE_TIMER4   // tx = pin 6
  //#define IR_USE_TIMER5   // tx = pin 46

// Teensy 1.0
#elif defined(__AVR_AT90USB162__)
  #define IR_USE_TIMER1     // tx = pin 17

// Teensy 2.0
#elif defined(__AVR_ATmega32U4__)
  //#define IR_USE_TIMER1   // tx = pin 14
  //#define IR_USE_TIMER3   // tx = pin 9
  #define IR_USE_TIMER4_HS  // tx = pin 10

// Teensy++ 1.0 & 2.0
#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
  //#define IR_USE_TIMER1   // tx = pin 25
  #define IR_USE_TIMER2     // tx = pin 1
  //#define IR_USE_TIMER3   // tx = pin 16

// Sanguino
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__)
  //#define IR_USE_TIMER1   // tx = pin 13
  #define IR_USE_TIMER2     // tx = pin 14

// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
  //#define IR_USE_TIMER1   // tx = pin 9
  #define IR_USE_TIMER2     // tx = pin 3
#endif

este é o codigo usado no arduino com uma das bibliotecas editada. não está o meu codigo aí, porque esse era para testar, se funciona esse, tambem funcionará com o meu codigo. só não coloquei o meu codigo, porque é demasiado grande e ainda esta em testes, todo desorganizado e sem comentar. mas se for mesmo preciso colocar, coloco sem problema.

se for preciso fazer upload da biblioteca diz!

obrigado!

ps- esse codigo da escolha do timer, vai aonde?

ah, os ir's não os tenho nem na porta 3 nem na 11. tenho um na digital 2 e o outro na entrada analogica A5. funcionam bem se programado só com uma IRremote e claro um de cada vez, ou seja, ou fica a dar um ou outro. por isso o ter de crear outra biblioteca edentica e editar os nomes, mas falta o interruptor.

tambem funcionam os dois ao mesmo tempo se for programado com o codigo que tem o delay. mas esse codigo não me convem pelo demux 4051.

mais alguma coisa, diz

obrigado!!

/*
 * IRremote: IRrecvDemo - demonstrates receiving 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 (http://arcfn.com)
 */

#include <IRremote.h>
#include <IRremote2.h>
int RECV_PIN = 2;
int RECV_PIN2 = A5;
IRrecv irrecv(RECV_PIN);
IRrecv2 irrecv2(RECV_PIN2);
decode_results results;
decode_results2 results2;
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  irrecv.enableIRIn2(); // Start the receiver2
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Receive the next value
  }
 
    if (irrecv2.decode(&results2)) {
    Serial.println(results2.value, HEX);
    irrecv2.resume2(); // Receive the next value
  }
}
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: iyahdub em 14 de Julho de 2012, 19:55
Criar o mesmo codiigo com interrupcao diferente... Na biblioteca claro. Ao atribuires o pin respectivo aquele Timer, ele vai usar o prescaler predefinido pela biblioteca( no 3 e 11 o timer 2, etc...).
Tensz aqui outro ja acabado tb afinal, para timer 1 e 3
http://arduino.cc/playground/Code/Timer1... (http://arduino.cc/playground/Code/Timer1...)

PS Desculp[a, esquecime do link no outro post...lol
https://github.com/shirriff/Arduino-IRremote (https://github.com/shirriff/Arduino-IRremote)
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 14 de Julho de 2012, 20:03
Criar o mesmo codiigo com interrupcao diferente... Na biblioteca claro. Ao atribuires o pin respectivo aquele Timer, ele vai usar o prescaler predefinido pela biblioteca( no 3 e 11 o timer 2, etc...).
Tensz aqui outro ja acabado tb afinal, para timer 1 e 3
http://arduino.cc/playground/Code/Timer1... (http://arduino.cc/playground/Code/Timer1...)

PS Desculp[a, esquecime do link no outro post...lol
https://github.com/shirriff/Arduino-IRremote (https://github.com/shirriff/Arduino-IRremote)

no primeiro link, não vi o codigo.

no segundo link, qual é...estou um pouco desorientado lol

não sei o que me passa hoje!!!
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: iyahdub em 14 de Julho de 2012, 20:06
Fui eu desculpa...
O segundo link e o do post anterior... ( https://github.com/shirriff/Arduino-IRremote )que ja e a ultima versao actualizada.
O que manipula os interrupts e neste ficheiro da biblioteca  IRremoteInt.h
o outro e apenas um adicional que entretanto achei !

Eu e que me esqueci de incluir o link da primeira vez, desculpa !
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 14 de Julho de 2012, 20:14
Ok aqui esta... Depois de alghuma pesquisa, descobri afinal quie a versao final da biblioteca tem a opcao para usar o timer 1 em ves do dois...Portanto acho que a mina opiniao seria, se preciso, apenas definir o timer 1 numa delas.( ja experiementaste o 2nd receptor no pino 3 e o 1ro no 11 ou vice versa lol?!?).

Deixo aqui a parte relevante para que possas ter algum avanco...
Como ves tem a opcao de usar os varios timers...
Por isso quer dizer que o trabalho ja esta feito...
Agora talvez o Senso possa responder se alguma coisa mais e preciso( basta descomentar ?!? Alterar o nome do #define de forma a podermos utiliza-lo no UNO ?!?

Código: [Seleccione]
// define which timer to use
//
// Uncomment the timer you wish to use on your board.  If you
// are using another library which uses timer2, you have options
// to switch IRremote to use a different timer.

// Arduino Mega
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
  //#define IR_USE_TIMER1   // tx = pin 11
  #define IR_USE_TIMER2     // tx = pin 9
  //#define IR_USE_TIMER3   // tx = pin 5
  //#define IR_USE_TIMER4   // tx = pin 6
  //#define IR_USE_TIMER5   // tx = pin 46

// Teensy 1.0
#elif defined(__AVR_AT90USB162__)
  #define IR_USE_TIMER1     // tx = pin 17

// Teensy 2.0
#elif defined(__AVR_ATmega32U4__)
  //#define IR_USE_TIMER1   // tx = pin 14
  //#define IR_USE_TIMER3   // tx = pin 9
  #define IR_USE_TIMER4_HS  // tx = pin 10

// Teensy++ 1.0 & 2.0
#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
  //#define IR_USE_TIMER1   // tx = pin 25
  #define IR_USE_TIMER2     // tx = pin 1
  //#define IR_USE_TIMER3   // tx = pin 16

// Sanguino
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__)
  //#define IR_USE_TIMER1   // tx = pin 13
  #define IR_USE_TIMER2     // tx = pin 14

// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
  //#define IR_USE_TIMER1   // tx = pin 9
  #define IR_USE_TIMER2     // tx = pin 3
#endif

desculpa, mas acho que ainda não acordei lol, esse codigo, onde o coloco para fazer com que uma das bibliotecas funcione com o timer 1 em vez do 2?
se depois tiver de trocar os pinos dos ir's, tambem posso mudar( é que o arduino esta cheio), mas antes de mudar, testo assim aver se funciona.
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 14 de Julho de 2012, 20:29
onde encontraste esse codigo de definir os timers, não o encontro nos ficheiros da biblioteca irremote no link que postaste


ah já vi onde foi, não li bem o teu post... ???
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: iyahdub em 14 de Julho de 2012, 20:36
Se calhar fui eu que te confundi.
eu postei apenas um excerto do codigo do ficheiro IRremoteInt.h ( que e o que controla as interrupcoes do timer).
E esse que tens que manipular agora...
Criar uma segunda biblioteca para o 2ndo receptor, usando o pin correspondente( mais ou menos na mesma linha do que ja tinhas feito, mas desta vez teras a biblioteca de maneira correcta e usando o pin correcto).
Faz sentido ?!
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 14 de Julho de 2012, 20:41
Se calhar fui eu que te confundi.
eu postei apenas um excerto do codigo do ficheiro IRremoteInt.h ( que e o que controla as interrupcoes do timer).
E esse que tens que manipular agora...
Criar uma segunda biblioteca para o 2ndo receptor, usando o pin correspondente( mais ou menos na mesma linha do que ja tinhas feito, mas desta vez teras a biblioteca de maneira correcta e usando o pin correcto).
Faz sentido ?!

sim, já estava a ver onde estava, testar e depois digo algo.

Só mais uma coisa, dizias que tinha de mudar o nome para arduino, porque nao tem arduino, so tem megas, duemilanove, etc... se poderes dizer qual deles altero e que nome colocar........mas pelo que estou a ver, lá diz "else" no final deles e no caso do duemilanove, etc, não tem nome, só diz defenir um timer ou outro, por isso penso que não tenho de alterar nenhum nome, só mesmo defenir o timer
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: iyahdub em 14 de Julho de 2012, 20:48
Ai ja tenho que pesquisar como e que o arduino usa esse define, ou se e so por timer... Por isso perguntei a opiniao do Senso... mas espera um bocado !! ( Papinha toda feita lol Na boa...No futiuro ajudas alguem tb)
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 14 de Julho de 2012, 20:51
No que souber ajudo sem problema ningun.

Muito obrigado pela tua ajuda e no que precisares, aqui estarei.

vou fazer alguns testes e depois digo algo!!!
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: iyahdub em 14 de Julho de 2012, 20:51
Substitui mega por isto
Código: [Seleccione]
__AVR_ATmega168__) || defined(__AVR_ATmega328__ dentro dos parentesis...Sabes onde nao sabes ?!?
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328__)



E ja deve dar !!

PS- Espero que assim nao vamos criar um conflito entre as duas... ... lembra-te de renomear a biblioteca para um dois por exemplo e depois inclui-la no codigo principal...
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 14 de Julho de 2012, 21:20
Substitui mega por isto
Código: [Seleccione]
__AVR_ATmega168__) || defined(__AVR_ATmega328__ dentro dos parentesis...Sabes onde nao sabes ?!?
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328__)



E ja deve dar !!

PS- Espero que assim nao vamos criar um conflito entre as duas... ... lembra-te de renomear a biblioteca para um dois por exemplo e depois inclui-la no codigo principal...

YYYYUUUUU  já funciona, só tive de defenir o timer1 na parte do duecimila...  e sem ter de alterar os pinos 2 e A5

bem agora tenho de sair, depois vou implementar isto no meu codigo e digo algo

obrigado por tudo, qualquer coisa é só pedir.

Abraço e Deus te abençõe.
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: Donvan em 14 de Julho de 2012, 23:33
Bem depois de alguns testes, com as duas bibliotecas actualizadas e uma delas editada. a que não é editada deixa de receber bem os codigos enviados pelo IR.

o que fiz foi colocar a biblioteca antiga original(IR1) e colocar a biblioteca actualizada editada(IR2). assim funciona bem para os dois IR's.

outra coisa é, tenho aqui 2 comandos remotos de receptores satelite, um deles com sistema NEC, o outro nem sei que sistema é, o que sei é que com a bibli... antiga, só dava o comando NEC, agora com a bibli... actualizada, já tem também o sistema do comando que não dava.
Assim deixei o comando nec para a bibli antiga e o outro comando para a nova bibli.

bem, por agora creio que me vai servir assim. mas quando tiver tempo vou ver o que passa de se tiver as duas bibli novas com uma editada, uma delas não receber bem os codigos.
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: iyahdub em 14 de Julho de 2012, 23:51
se esta a trabalhar deixa estar.
Podes e ler os codigos primeiro e actualizar o ficheiro que tem os codigos e inclui-los ( os que importam para os comandos que tens claro). Facil !!
Título: Re: Dois receptores ir remote em um arduino???
Enviado por: ericsonduarte em 15 de Outubro de 2012, 22:39
Muito Boa Noite....

Por Definição, para o arduino duemilanove temos:

Pins 5 and 6: controlado pelo timer0
Pins 9 and 10: controlado pelo timer1
Pins 11 and 3
: controlado pelo timer2

Configuração do timer1:
Código: [Seleccione]
#define IR_USE_TIMER1   // tx = pin 9
// defines for timer1 (8 bits)
#if defined(IR_USE_TIMER1)
#define TIMER_ENABLE_PWM (TCCR1A |= _BV(COM1A1))
#define TIMER_DISABLE_PWM (TCCR1A &= ~(_BV(COM1A1)))
#define TIMER_ENABLE_INTR (TIMSK1 = _BV(OCIE1A))
#define TIMER_DISABLE_INTR (TIMSK1 = 0)
#define TIMER_INTR_NAME TIMER1_COMPA_vect
#define TIMER_CONFIG_KHZ(val) ({ \
const uint16_t pwmval = SYSCLOCK / 2000 / (val); \
TCCR1A = _BV(WGM11); \
TCCR1B = _BV(WGM13) | _BV(CS10); \
ICR1 = pwmval; \
OCR1A = pwmval / 3; \
})
#define TIMER_COUNT_TOP      (SYSCLOCK * USECPERTICK / 1000000)
#define TIMER_PWM_PIN 9 //Arduino Duemilanove, Diecimila, LilyPad, etc
#endif

Configuração do timer2:

Código: [Seleccione]
#define IR_USE_TIMER1   // tx = pin 9
#if defined(IR_USE_TIMER2)
#define TIMER_ENABLE_PWM     (TCCR2A |= _BV(COM2B1))
#define TIMER_DISABLE_PWM    (TCCR2A &= ~(_BV(COM2B1)))
#define TIMER_ENABLE_INTR    (TIMSK2 = _BV(OCIE2A))
#define TIMER_DISABLE_INTR   (TIMSK2 = 0)
#define TIMER_INTR_NAME      TIMER2_COMPA_vect
#define TIMER_CONFIG_KHZ(val) ({ \
  const uint8_t pwmval = SYSCLOCK / 2000 / (val); \
  TCCR2A = _BV(WGM20); \
  TCCR2B = _BV(WGM22) | _BV(CS20); \
  OCR2A = pwmval; \
  OCR2B = pwmval / 3; \
})
#define TIMER_COUNT_TOP      (SYSCLOCK * USECPERTICK / 1000000)
#define TIMER_PWM_PIN       3  //Arduino Duemilanove, Diecimila, LilyPad, etc
#endif

Eis, a minha dúvida: Como posso configurar para que posso utilizar o timer0, para que posso utlizar os pins 5 e 6? Configuração do timer1 para utilização do pin 10? Configuração do timer2 para utlização do pin 11?

Cumprimentos.....