Go Down

Topic: Arduino e transmissores ou receptores codelearning (Read 6784 times) previous topic - next topic

Kotch

Ok, entendi. 8)

Pois fiquei olhando o código  :smiley-eek: e não achei o "bendito" botão  :D

Vou montar a "trapizonga"!

[]´s

8)
????????????????????

Kotch

ARDUINO DECODIFICADOR HT6P20B COM RESISTOR DE 2M2 NO OSC.
ESTE CODIGO NAO USA TIMER, INTERRUPÇÃO EXTERNA E NEM PINO DEFINIDO DE ENTRADA.

mas onde vai este resistor?

:(
????????????????????

Kotch

muito instavel, so funciona  proximo do receptor!
interessante, da pra clonar o codigo de transmissores!
$)
8)
????????????????????

Colegas,

elaborei o código abaixo para trabalhar como transmissor, no lugar do controle remotor, para receptores code learning. Fica interessante conhecer como gerar um código code learning:


/*
Transmissor que emula controle para receptor Code Learning padrão HT6P20B.
O código funciona com a maioria dos receptores code learning existentes no mercado.
O comprimento de onda foi configurado como 476 microsegundos.
De acordo com o datasheet do HT6P20, deve-se enviar um pilot code de tamanho igual a 24 comprimentos de onde sendo os 23 primeiros em nivel LOW e
1 em nivel HIGH.
Depois disso se enviam os 22 bits de dados e 4 bits que configuram o end code.
Um bit 1 é feito com o sinal em LOW por duraçao de 2 comprimentos de onda e um sinal HIGH com duração de 1 comprimento de onda.
Um bit 0 é feito com sinal em LOW por duração de 1 comprimento de onda e um sinal HIGH com duração de 2 comprimentos de onda.

CRIADO POR: Renzo Patrick de Lima Ribeiro
DATA: 10/05/2012
ARDUINO: Duemilanove (com ATMega 328)
CONTATO: 67 8401-8006
E-MAIL: renzo@oi.net.br
Permitido o uso público, mas deve-se manter o nome do autor.
*/

int larpulso = 476; //define tempo de 1 comprimento de onda em microsegundos
unsigned long _data=0;   // SET de 28 bits que identificará o controle. Pode ser alterado como queira, desde que os 4 últimos não mudem

void setup()

{
  Serial.begin(9600);
  pinMode(2, INPUT); // foi colocado um botão ligado ao terra nesse pino
  pinMode(3,OUTPUT); // essa porta vai no pino de dados do transmissor RF 433MHz
  digitalWrite(2,HIGH); //RESISTOR PULL-UP
  digitalWrite(3,HIGH); //coloca a saída do transmissor alta
}

void loop()

{
if (digitalRead(2)==LOW) {
  //botão do meu controle da garagem (fiz a leitura com o código para recepção do colega JACQUES DANIEL MORESCO): 1001000011011011011110010101
  for (int k=0;k<2;k++){ // esse laço simplesmente repete o envio do código para certificar que será entregue
  char codigo[29] = "1001000011011011011110010101";
  // envia o pilot code
  Serial.println("transmitindo...");
  digitalWrite(3,LOW);
  delayMicroseconds(larpulso*23);
  digitalWrite(3,HIGH);
  delayMicroseconds(larpulso); //fim do pilot code
 
  for (int i=0;i<28;i++){
    Serial.print(bitRead(_data,i),BIN);
    if (codigo == '1') {
      bitWrite(_data, i, 1);
      digitalWrite(3,LOW);
      delayMicroseconds(larpulso*2);
      digitalWrite(3,HIGH);
      delayMicroseconds(larpulso);
    } else {
      bitWrite(_data, i, 0);
      digitalWrite(3,LOW);
      delayMicroseconds(larpulso);
      digitalWrite(3,HIGH);
      delayMicroseconds(larpulso*2);
    }
  }

  }
  Serial.println ();
  Serial.println("dados transmitidos.");
  }
}


Kotch


ARDUINO DECODIFICADOR HT6P20B COM RESISTOR DE 2M2 NO OSC.
ESTE CODIGO NAO USA TIMER, INTERRUPÇÃO EXTERNA E NEM PINO DEFINIDO DE ENTRADA.

mas onde vai este resistor?

:(


Ninguem ?   :(
????????????????????

fabio_h

Rosc é um resistor que é ligado ao circuito RC responsável por determinar a largura do pulso de codificação dos dados. Aqui um link para o pdf do ht6p20 http://www.cikaeletronica.com/Produtos/Data%20Sheet/6P20.PDF


Amigos como descubro o codigo transmitido pelo controle remoto do meu portão? ele usa esse chip ht6p20. alguma idéia?


oh obrigado, maravilha, esse código para infravermelho funciona com receptor 433, vou testar posto aqui os resultados.

Pessoal,

Dá uma lida nesse tutorial sobre Controles Remotos com RF que eu fiz.

Tem um post com rotinas para decodificar e replicar o sinal com Arduino usando o encoder HT6P20.

http://labdegaragem.com/forum/topics/desvendando-controle-remoto-rf

Go Up