Descobrir qual controle usar em alarme.

Boa Tarde,
Estou com minha central de alarme do carro parada porque não consigo comprar controle original. Eu poderia usar um controle de outro fabricante mas não sei qual o codificação ela usa (hcs201 - ht6p20b).
Pensei em usar um pic para simular o protocolo de cada um deles e ver se a central aceitra a programação.
Depois de tentar digerir o datasheet do ht6p20b cheguei nesse código (estou com azia até agora).
Os Srs. poderiam me dizer se estou no caminho certo. Segue abaixo um código simples em C.
Agora o hcs201 eu estou mais perdido que cego em tiroteio. É possivel fazer a mesma coisa? Se alguém dominar o protocolo poderia me dar uma luz?
Obrigado a todos
Um abraço
Alexandre Pacheco
Estou com minha central de alarme do carro parada porque não consigo comprar controle original. Eu poderia usar um controle de outro fabricante mas não sei qual o codificação ela usa (hcs201 - ht6p20b).
Pensei em usar um pic para simular o protocolo de cada um deles e ver se a central aceitra a programação.
Depois de tentar digerir o datasheet do ht6p20b cheguei nesse código (estou com azia até agora).
Os Srs. poderiam me dizer se estou no caminho certo. Segue abaixo um código simples em C.
Agora o hcs201 eu estou mais perdido que cego em tiroteio. É possivel fazer a mesma coisa? Se alguém dominar o protocolo poderia me dar uma luz?
Obrigado a todos
Um abraço
Alexandre Pacheco
- Código: Selecionar todos
// para 3000 Hz
#define clk 333
#define output pin_a2
void bit(int valor)
{
if(valor == 1)
{
output_low(output);
delay_us(2*clk);
output_high(output);
delay_us(clk);
}
else
{
output_low(output);
delay_us(clk);
output_high(output);
delay_us(2*clk);
}
}
void piloto()
{
output_low(output);
delay_ms(22*clk/1000);
output_high(output);
delay_us(clk);
}
void endereco()
{
int i;
for(i=0;i<11;i++)
{
bit(0);
bit(1);
}
output_low(output);
}
void dado()
{
int i;
for(i=0;i<1;i++)
{
bit(0);
bit(1);
}
output_low(output);
}
void anti()
{
int i;
for(i=0;i<2;i++)
{
bit(0);
bit(1);
}
output_low(output);
}
void main()
{
while(true)
{
//verifica estado do botao
if(input(!pin_a5))
{
delay_ms(500);
piloto(); // 2
endereco();
dado();
anti();
delay_ms(500);
}
}
}