collapse

* Links de Robótica

* Posts Recentes

Ideias para construir um quadrúpede simples por Njay
[Hoje às 03:04]


Ajuda com TRIAC por senso
[17 de Novembro de 2017, 18:00]


TV LG White Screen por almamater
[15 de Novembro de 2017, 08:37]


Pergunta sobre prototipagem ( Pesquisa ) por luisjustin
[14 de Novembro de 2017, 23:22]


Medir Agua que está no Poço por Njay
[14 de Novembro de 2017, 13:28]


Amplificador audio por beirao
[12 de Novembro de 2017, 23:43]


Power_OK Enermax por edeweld
[12 de Novembro de 2017, 17:15]


Driver motor por beirao
[11 de Novembro de 2017, 17:40]


Preciso de uma fonte de corrente constante ? por samc
[09 de Novembro de 2017, 14:18]


Pressoestato 0-10V por artur36
[07 de Novembro de 2017, 23:22]

Autor Tópico: Definir tempo bit em RF  (Lida 1566 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline nadabro

  • Mini Robot
  • *
  • Mensagens: 52
Definir tempo bit em RF
« em: 22 de Fevereiro de 2011, 01:53 »
Boas..

Estou a tentar converter dados vindos de RF codificados (define os bits pela duração dos mesmos)..já tenho o protocolo de comunicação, por isso estou a modificar alguns códigos fonte para converter os bits em dados.

A minha dúvida encontra-se na altura de definir o tempo para 1, 0, intervalo..um exemplo:
Código: [Seleccione]
// 0.5 ms high is a one
#define MIN_ONE 135 // minimum length of '1'
#define MAX_ONE 155 // maximum length of '1'
// 1.3 ms high is a zero
#define MIN_ZERO 335 // minimum length of '0'
#define MAX_ZERO 370 // maximum length of '0'
// 1 ms between bits
#define MIN_WAIT 225 // minimum interval since end of last bit
#define MAX_WAIT 275 // maximum interval since end of last bit


No meu caso:
4ms 1
2ms 0
0.5ms intervalo entre bits

Se 1s corresponde 1000ms, 0.5ms não deveria ter um intervalo de 435 / 555 (+-)?

Obrigado..

« Última modificação: 22 de Fevereiro de 2011, 04:08 por nadabro »

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.400
  • Helpdesk do sitio
Re: Definir tempo bit em RF
« Responder #1 em: 22 de Fevereiro de 2011, 17:49 »
É para arduino?
Ou para outro micro-controlador, se for para arduino, provavelmente esses tempos foram medidos com osciloscópio porque o acesso dos pinos digitais do micro-controlador do arduino usando as funções digitalWrite é muito muito lento.
Avr fanboy

Offline nadabro

  • Mini Robot
  • *
  • Mensagens: 52
Re: Definir tempo bit em RF
« Responder #2 em: 22 de Fevereiro de 2011, 22:53 »
É para Arduino e o código que dei exemplo é tb para o Arduino.. os tempos foram medidos por um osciloscópio, podes ver como mediram o tempo dos bits daquele exemplo aqui.

Neste exemplo consigo definir bem o tempo, e os intervalos para 1,0, etc
Código: [Seleccione]
// pulse widths. short pulses ~500us, long pulses ~1000us. 50us tolerance
#define SHORT_PULSE_MIN_WIDTH 450/TIMER_PERIOD_US
#define SHORT_PULSE_MAX_WIDTH 550/TIMER_PERIOD_US
#define LONG_PULSE_MIN_WIDTH 950/TIMER_PERIOD_US
#define LONG_PULSE_MAX_WIDTH 1050/TIMER_PERIOD_US

500uS->0.5ms
1000uS->1ms

Mas para o 1º código em cima, não consigo perceber como ele define aquele intervalo..só se mais à frente aquele adiciona alguma função para chegar aquele valor, mas como não percebo muito disto, estou a mandar bitaites eheh

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.400
  • Helpdesk do sitio
Re: Definir tempo bit em RF
« Responder #3 em: 22 de Fevereiro de 2011, 23:00 »
Eu disse é que o autor disso foi alterando os valores experimentalmente com um osciloscópio ate ter os tempos desejados, porque o arduino tem muita over-head face ao tempo real devido a todo a tralha de codigo que aquilo adiciona.
Portanto, teras de fazer o mesmo, ou entao, regra de 3 simples, e convertes o tempo real para esse tempo relativo, provavelmente basta isso para funcionar.
Avr fanboy

Offline nadabro

  • Mini Robot
  • *
  • Mensagens: 52
Re: Definir tempo bit em RF
« Responder #4 em: 23 de Fevereiro de 2011, 02:12 »
Agradeço a resposta,

Já tinha pensado em usar a regra de três simples, mas o código ter que ser muito trabalhado para ser compatível com o protocolo que quero capturar. Ainda estou à espera que chegue o módulo receptor 433.92mhz, entretanto tou usando o módulo do próprio aparelho..mas algo me diz que não estou a receber os dados em condições, conheces algum código (simples :) ) que permita visualizar os dados em binário no "serial monitor" usando este tipo de protocolo RF (1,0,etc é determinado pela duração do bit)?