Boa noite pessoal, eu comprei há algum tempo o kit (transmissor e receptor) de radiofrequência de 315 Mhz, a finalidade da compra desse kit foi para acender e desligar essa lâmpada (da qual funciona a 315 mhz, diferente do anuncio do link). 

Enfim, com o exemplo da biblioteca RC-Switch-master eu consegui adquirir o código do meu controle, que seria:

Decimal: 13176153 (24Bit)

Binary: 110010010000110101011001 

PulseLength: 272 microseconds

Raw data: 8448,796,284,796,284,260,824,260,824,800,284,252,832,256,828,792,292,244,840,252,836,248,836,252,832,784,304,780,296,252,300,252,828,792,288,252,832,792,292,792,292,788,292,248,836,248,840,788,292,

Dai com o exemplo de enviar o código, eu tentei enviar ele RAW, via decimal e com binário, não funcionou, tentei colar o sensor ao lado do socket receptor e também não funcionou.

Ou seja, o receptor funciona e o emissor não, não consigo saber se o emissor está com problema porque não tenho outro arduino para fazer o teste entre o próprio emissor e receptor. Gostaria de saber se alguém consegue entender o porque isso está acontecendo.

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {

Serial.begin(9600);

// Transmitter is connected to Arduino Pin #10
mySwitch.enableTransmit(10);

// Optional set pulse length.
// mySwitch.setPulseLength(320);

// Optional set protocol (default is 1, will work for most outlets)
// mySwitch.setProtocol(2);

// Optional set number of transmission repetitions.
// mySwitch.setRepeatTransmit(15);

}

void loop() {

/* See Example: TypeA_WithDIPSwitches */
mySwitch.switchOn("11111", "00010");
delay(1000);
mySwitch.switchOn("11111", "00010");
delay(1000);

/* Same switch as above, but using decimal code */
mySwitch.send(5393, 24);
delay(1000);
mySwitch.send(5396, 24);
delay(1000);

/* Same switch as above, but using binary code */
mySwitch.send("000000000001010100010001");
delay(1000);
mySwitch.send("000000000001010100010100");
delay(1000);

/* Same switch as above, but tri-state code */
mySwitch.sendTriState("00000FFF0F0F");
delay(1000);
mySwitch.sendTriState("00000FFF0FF0");
delay(1000);

delay(20000);
}

Este é o código base, lógico que substitui os sinais pelo que eu mencionei, porém mesmo assim não funcionou.

Exibições: 2242

Responder esta

Respostas a este tópico

LIGAR LAMPADA


Decimal: 13176153 (24Bit) Binary: 110010010000110101011001 Tri-State: not applicable PulseLength: 272 microseconds Protocol: 1
Raw data: 8448,796,284,796,284,260,824,260,824,800,284,252,832,256,828,792,292,244,840,252,836,248,836,252,832,784,304,780,296,252,300,252,828,792,288,252,832,792,292,792,292,788,292,248,836,248,840,788,292,

Decimal: 13176153 (24Bit) Binary: 110010010000110101011001 Tri-State: not applicable PulseLength: 272 microseconds Protocol: 1
Raw data: 8452,776,300,788,292,248,836,252,836,796,284,256,828,260,828,792,288,252,832,256,828,256,832,252,832,792,292,788,284,256,832,784,296,256,828,792,292,244,832,788,292,792,288,256,832,244,840,788,292,

Decimal: 13176153 (24Bit) Binary: 110010010000110101011001 Tri-State: not applicable PulseLength: 272 microseconds Protocol: 1
Raw data: 8452,788,288,796,288,252,832,256,832,796,284,256,828,260,828,792,288,256,828,252,832,256,832,248,836,792,292,792,292,248,848,772,308,236,848,776,300,240,840,788,292,792,292,252,840,240,836,788,292,

Decimal: 13176153 (24Bit) Binary: 110010010000110101011001 Tri-State: not applicable PulseLength: 272 microseconds Protocol: 1
Raw data: 8464,760,328,760,300,240,844,240,852,772,324,216,848,240,948,676,304,236,836,252,836,248,852,224,844,788,300,780,296,244,840,784,296,244,840,784,300,240,844,784,308,772,324,212,844,248,836,788,296,


DESLIGAR LAMPADA

Decimal: 13176148 (24Bit) Binary: 110010010000110101010100 Tri-State: not applicable PulseLength: 270 microseconds Protocol: 1
Raw data: 8432,764,304,772,308,228,856,220,852,760,324,216,856,232,900,704,400,200,836,252,928,144,876,212,872,736,364,776,308,232,848,772,308,228,856,760,320,788,276,256,920,724,252,276,804,280,808,272,856,

Decimal: 13176148 (24Bit) Binary: 110010010000110101010100 Tri-State: not applicable PulseLength: 274 microseconds Protocol: 1
Raw data: 8452,748,332,756,308,228,844,240,840,776,312,224,852,232,852,764,316,224,852,236,840,244,888,176,844,760,336,756,348,180,836,792,308,232,848,768,312,228,856,760,320,220,860,756,300,232,852,224,892,

Decimal: 13176148 (24Bit) Binary: 110010010000110101010100 Tri-State: not applicable PulseLength: 272 microseconds Protocol: 1


Raw data: 8444,788,292,780,316,248,820,260,848,780,268,268,832,232,848,772,308,228,856,228,852,232,856,216,848,780,296,772,328,212,912,704,332,212,856,756,324,228,848,776,308,232,856,760,316,224,860,224,872,

Decimal: 13176148 (24Bit) Binary: 110010010000110101010100 Tri-State: not applicable PulseLength: 272 microseconds Protocol: 1


Raw data: 8432,764,316,768,300,244,840,248,832,768,332,216,804,276,808,812,284,244,840,244,836,240,844,240,844,772,308,772,308,228,848,780,296,244,836,776,312,236,832,796,284,248,832,784,340,196,876,208,860,

Bom, está aqui o código virgem e binário, foram 4 vezes que eu apertei cada botão, o código crú eu percebi que realmente tiveram uma diferença entre um e outor, porém o binário não alterou...

A melhor forma de analisar esses códigos é usar os valores em hexadecimal. 

Acho que fica mais fácil. 

LIGAR LAMPADA 

Decimal: 13176153 (24Bit) Binary: 110010010000110101011001

Hexadecimal = C90D59

Analisando os bits :

1100 1001 0000 1101 0101 1001

Ultimos 4 bits :

D0=1  D1=0  D2=0 D3=1  (não pode selecionar dois botões ao mesmo tempo - algo inválido) 

DESLIGAR LAMPADA

Decimal: 13176148 (24Bit) Binary: 110010010000110101010100

Hexadecimal = C90D54

Analisando os bits :

1100 1001 0000 1101 0101 0100

Ultimos 4 bits :

D0=0  D1=1  D2=0 D3=0  ( Botão 1 acionado ?)

Para converter Binário em Hexadecimal:

http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

Duas conclusões de inconsistência 

-  O programa esta decodificando somente 24 bits - o código deve ter 31 bits

- nos ultimos 4 bits , não pode acusar dois botões acionados ao mesmo tempo. 

Recomendo que faça o mesmo tipo de pesquisa que eu fiz nos Tutoriais com analisador logico  - 

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

http://labdegaragem.com/profiles/blogs/tutorial-descodificando-cont...

Tudo é mesma coisa :

HS1527 OTP Encoder. HS1527 Description: (Compatible:EV1527,RT1527,FP1527).

http://sc-tech.cn/en/hs1527.pdf

http://www.electrodragon.com/w/images/7/7b/RT1527E.pdf

José, a respeito da sua resposta acima, você falou que o programa está decodificando apenas em 24 bits, será que isso é uma particularidade do exemplo da biblioteca ou o receptor consegue receber apenas 24 bits?

O receptor tem que ser compatível com o transmissor (31 bits) . 

Estude a biblioteca e identifique porque esta descodificando apenas 24 bits. 

Uma coisa que em chamou a atenção na biblioteca foi isso:

// Number of maximum High/Low changes per packet.
// We can handle up to (unsigned long) => 32 bit * 2 H/L changes per bit + 2 for sync
#define RCSWITCH_MAX_CHANGES 67

Ele fala de de 32 bits, sendo assim, qual seria o novo valor de " #define RCSWITCH_MAX_CHANGES "?

EDIT ------------------

Procurei na net e vi gente usando 104 e 242 ao invés de 67, testei ambos e o serial continua me informando o mesmo código de 24 bits, não sei mais o que fazer... Já testei várias outras bibliotecas e nenhuma deu certo...

PuTz, Heitor ! Me desculpe o engano !!! 

O código tem 24 bits mesmo. Eu estava vendo vários datasheets e me confundi !

Você salvou meu dia com essa informação rsrsrs

Bom dia Heitor, 

Me confundi ! O código do SCL1527 tem 24 bits mesmo ! Me desculpe a falha. 

Dando uma relida no meu tutorial :

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

O Chip HT6P20B transmite 22 bits de endereçamento e 2 bits de dados (chaves D0 e D1) .

Sabendo-se a codificação  dos Bits - o periodo de cada Bit é de 1,5 ms.

Uma alternativa talvez seria reconfigurar o programa do Afonso Turcato para reconhecer 24 bits.

Veja que no SC1527 a definição dos bits é inversa do HT6P20 . 

O pulso mais largo = 1 e o pulso mais estreito = 0. 

O que acha ? Você consegue ? Deve ser simples alterar isso.

Informe o valor do resistor do seu controle remoto ! Assim poderemos saber qual é o clock usado . 

Essa informação é muito importante !

No SC1527 , os botões são os 4 ultimos bits e no HT6P20, as chaves são os ultimos 2 bits. 

Vou tentar! A resistência entre o pino 1 e 3 é 75k, entre o 1 e 4 95k e entre o 1 e 2 deu 88k

Estranho, não bate com os valores do datasheet.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço