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.
Tags:
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 LAMPADADecimal: 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
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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por