Pages: [1]   Go Down
Author Topic: Receptor IR  (Read 656 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá comprei um Receptor IR com controle remoto (o que ainda está no plastico) com uma Arduino Nano para fazer alguns testes. Não achei nenhum exemplo pratico do tipo: Se X tecla do controle for apertada saida Y acende. As fotos estão todas abaixo, se alguem puder dar uma ajuda.




OBS: Algum moderador por favor diminua a imagem pois tirei com o iPhone e nao achei aqui no forum uma opção para diminuir.
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3223
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Procura por RC-5. É o protocolo usado nesses comandos.

Também acho que existe já uma libraria para o Arduino.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Brazil
Offline Offline
Sr. Member
****
Karma: 0
Posts: 381
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá comprei um Receptor IR com controle remoto (o que ainda está no plastico) com uma Arduino Nano para fazer alguns testes. Não achei nenhum exemplo pratico do tipo: Se X tecla do controle for apertada saida Y acende. As fotos estão todas abaixo, se alguem puder dar uma ajuda.

Para iniciar os teus teste de uma olhada!

int ir_pin = 2;            //Sensor pin 1 wired through a 220 ohm resistor
int led_pin = 13;             //"Ready to Recieve" flag, not needed but nice
int debug = 0;             //Serial connection must be started to debug
int start_bit = 2000;         //Start bit threshold (Microseconds)
int bin_1 = 1000;             //Binary 1 threshold (Microseconds)
int bin_0 = 400;              //Binary 0 threshold (Microseconds)

void setup() {
  pinMode(led_pin, OUTPUT);      //This shows when we're ready to recieve
  pinMode(ir_pin, INPUT);
  digitalWrite(led_pin, LOW);       //not ready yet
  Serial.begin(9600);
}

void loop() {
  int key = getIRKey();          //Fetch the key
  Serial.print("Key Recieved: ");
  Serial.println(key);
}

int getIRKey() {
  int data[12];
  digitalWrite(led_pin, HIGH);      //Ok, i'm ready to recieve
  while(pulseIn(ir_pin, LOW) < 2200) { //Wait for a start bit
  }
  data[0] = pulseIn(ir_pin, LOW);   //Start measuring bits, I only want low pulses
  data[1] = pulseIn(ir_pin, LOW);
  data[2] = pulseIn(ir_pin, LOW);
  data[3] = pulseIn(ir_pin, LOW);
  data[4] = pulseIn(ir_pin, LOW);
  data[5] = pulseIn(ir_pin, LOW);
  data[6] = pulseIn(ir_pin, LOW);
  data[7] = pulseIn(ir_pin, LOW);
  data[8] = pulseIn(ir_pin, LOW);
  data[9] = pulseIn(ir_pin, LOW);
  data[10] = pulseIn(ir_pin, LOW);
  data[11] = pulseIn(ir_pin, LOW);
  digitalWrite(led_pin, LOW);

  if(debug == 1) {
    Serial.println("-----");
  }
  for(int i=0;i<11;i++) {        //Parse them
    if (debug == 1) {
     Serial.println(data);
    }
    if(data > bin_1) {        //is it a 1?
   data = 1;
    }  else {
   if(data > bin_0) {      //is it a 0?
     data = 0;
   } else {
    data = 2;           //Flag the data as invalid; I don't know what it is!
   }
    }
  }

  for(int i=0;i<11;i++) {        //Pre-check data for errors
    if(data > 1) {
   return -1;              //Return -1 on invalid data
    }
  }

  int result = 0;
  int seed = 1;
  for(int i=0;i<11;i++) {        //Convert bits to integer
    if(data == 1) {
   result += seed;
    }
    seed = seed * 2;
  }
  return result;              //Return key number
}


 smiley-cool
Logged

????????????????????

Ribeirao Preto - Brazil
Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá.
Recomendo essa biblioteca.
Muito facil de instalar, inclusive com uma pequena mudança já funciona no Arduino IDE 1.0.
Acompanha diversos exemplos.
http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html
Logged

Precisa de produtos para seu Arduino?
Não deixe de ver meus produtos no Mercado Livre!
http://lista.mercadolivre.com.br/_CustId_76934379

Pages: [1]   Go Up
Jump to: