collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

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