quinta-feira, abril 28, 2011

Pequenos Imãs e Micro Controladores - Parte 9

Vejamos agora como adaptar o meu conta-giros para usar um reed switch. Como já vimos, o reed switch é uma chave acionada por um imã.

A alteração do circuito é bastante simples, basta trocar o sensor de efeito Hall pelo reed:

No lado do código, não usaremos mais a interrupção de mudança de sinal, devido ao bounce do contato. Uma medição rápida no osciloscópio mostrou que o bounce ocorre em um tempo inferior a 100uSeg:


Vamos amostrar o sensor a cada interrupção do timer (512 uSeg), detectando por software a mudança do sinal e executando a lógica de detecção do imã quando o sinal mudar de "1" para "0" (indicando que o reed fechou contato):
void RTCC_isr()
{
static unsigned int8 cont_disp = TAXA_DISP;
static unsigned int8 anterior = 0;
unsigned int8 lido;

// Tratamento do sensor
lido = input(SENSOR);
if (lido != anterior)
{
anterior = lido;
if (lido == 0)
{
output_high (LED);
cntLed = TEMPO_LED;
if (passo == 0)
{
cntb = cnta;
cnta = 0;
passo = 1;
}
else if (passo == 3)
{
cnta = 0;
passo = 0;
}
}
}

// Tratamento do LED
...
}
Feitas estas mudanças, o comportamento foi equivalente à versão com o sensor de efeito Hall, exceto pela necessidade de um posicionamento mais cuidadoso do sensor.

Nenhum comentário: