collapse

* Posts Recentes

Bibliotecas para arduino e drivers de stepper - o problema da 'distracção' por SerraCabo
[Hoje às 02:12]


Zener BZW04-105? por brunus
[11 de Dezembro de 2018, 17:34]


Artigo 11, 13 e os restantes por jm_araujo
[10 de Dezembro de 2018, 11:05]


Compra Colectiva Mouser N3-2018 (limite 25 Nov) por Hugu
[10 de Dezembro de 2018, 01:07]


Ajuda para reparar Luzes de LED de Natal por brunus
[09 de Dezembro de 2018, 00:59]


Como reproteger as pontas de cobre do ferros de soldar? por brunus
[09 de Dezembro de 2018, 00:12]


Usar steppers de 5 pontas como se fossem de 4 pontas por SerraCabo
[08 de Dezembro de 2018, 21:18]


LusoRobótica - Website - Estado actual por Tech_JA
[06 de Dezembro de 2018, 09:18]


Como transformar um mosquito killer de tomada em um portátil? por brunus
[05 de Dezembro de 2018, 23:28]


LR, passado, presente e futuro por iyahdub
[05 de Dezembro de 2018, 04:16]

Autor Tópico: Definir tempo bit em RF  (Lida 1866 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.585
  • 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.585
  • 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)?