collapse

* Posts Recentes

MKR Vidor4000 por josecarlos
[Ontem às 21:05]


PWM com ventoinha por edeweld
[Ontem às 20:42]


Frequência máxima de pwm com controlo de duty cycle de 0 a 100% por Njay
[Ontem às 19:59]


NiCd por NiMH? por jm_araujo
[Ontem às 11:46]


LusoRobótica - Website - Estado actual por TigPT
[19 de Maio de 2018, 22:34]


Concurso Robô Bombeiro 2018 por Tesla
[18 de Maio de 2018, 11:01]


Trafo Amplificador Behrimger ? por jm_araujo
[16 de Maio de 2018, 18:55]


Alfândega / Taxas Alfandegárias / Portes por Njay
[16 de Maio de 2018, 01:26]


Compra Colectiva à Farnell N3-2018 (Maio 2018) por Hugu
[15 de Maio de 2018, 15:34]


Robô BBC micro:bit controlado com gestos no telemóvel Android por Tayeb
[14 de Maio de 2018, 19:41]

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