Pages: 1 [2]   Go Down
Author Topic: Arduino e transmissores ou receptores codelearning  (Read 5016 times)
0 Members and 1 Guest are viewing this topic.
Brazil
Offline Offline
Sr. Member
****
Karma: 0
Posts: 381
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, entendi. smiley-cool

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

Vou montar a "trapizonga"!

[]´s

 smiley-cool
Logged

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

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

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?

 smiley-sad
Logged

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

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

muito instavel, so funciona  proximo do receptor!
interessante, da pra clonar o codigo de transmissores!
 smiley-money
 smiley-cool
Logged

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

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.");
  }
}
Logged

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

Vou testar, obrigado!

 smiley-cool
Logged

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

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

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?

 smiley-sad

Ninguem ?   smiley-sad
Logged

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

0
Offline Offline
Full Member
***
Karma: 2
Posts: 124
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 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
Logged

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

Obrigado!

 smiley-cool
Logged

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

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Brasília - DF - Brazil
Online Online
Full Member
***
Karma: 3
Posts: 227
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Belo Horizonte - Brasil
Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: 1 [2]   Go Up
Jump to: