Nesta matéria você encontra circuitos para microcontroladores AVR muito úteis para trabalhar com dispositivos Infravermelho. Com as informações descritas abaixo você consegue construir circuitos baseados em microcontrolador AVR para transmitir e receber sinais em Infravermelho.
1 - Circuito sincronizador:
A figura acima ilustra o diagrama básico de um circuito mínimo para trabalhar com sinais infravermelho. Você pode notar que o detector de infravermelho é um componente comum e pode ser encontrado em qualquer aparelho em desuso ou comprado em alguma loja de eletrônicos. Procure pelos códigos TSOP17xx ou SFH506-xx que são mais frequentemente encontrados.
A próxima listagem de programa deve ser gravada no circuito descrito acima. O programa é necessário para auxiliar a decodificar e sincronizar os sinais de, por exemplo, um controle remoto de TV comum. Os sinais de um controle remoto são entendidos como bit 1(Quando há emissão de luz) e bit 0(Quando não há emissão de luz). Portanto, se observa um sinal de onda quadrada na saída 3 do detector. A modulação deste sinal é bem parecida com a modulação serial. Inicialmente há uma preparação, uma transmissão inicial de sinais, antes da chegada de dados úteis. A preparação é sempre a mesma para o pressionamento de qualquer botão do controle. Além disso, isso pode variar de controle para controle e no caso, para este exemplo, utilizou-se um controle de TV Samsung.
'--------------------------------------------------------------
' file: IRSync.BAS
' Descr.: Ajuda a sincronizar os sinais do controle remoto.
' Autor.: Claudio F. Dias
' Data.: 10/12/2010
'--------------------------------------------------------------
'
$regfile = "2313def.dat"
$crystal = 10000000
Config Int0 = Falling
Config Portb = Output
Config Portd = Input
' Abilita Interrupção
On Int0 Int0_int ' Inicia o INT0
Dim Reg As Bit
Dim Irflag As Bit ' Variável auxiliar de INT0
Dim I As Word
Dim Rc As Word ' Variável de código
Enable Interrupts
Enable Int0
Do
Reg = 1
Portb = 255 ' Coloca toda porta B em 1
' Wait for InfraRed signal
Irflag = 1
While Irflag = 1
Wend
Disable Int0
' -> Tempo de preparação <-
Waitms 35
Waitus 135
' Lê bit a bit (Rc é uma WORD de 16 bits)
For I = 1 To 16
If Pind.2 = 1 Then
Rc = Rc Or 1
Else
Rc = Rc And &HFFFE
End If
Shift Rc , Left , 1
' Faz transição de porta a cada bit
Reg = Not Reg
If Reg = 1 Then
Portb = 255
Else
Portb = 0
End If
Waitus 1110 ' -> Intervalo entre bits <-
Next
Enable Int0
Waitms 15
Loop
End
Int0_int:
Irflag = 0 ' Interrupção
Return
Uma vez que você compilou o programa e gravou o binário no chip você já pode verificar os sinais de saída quando o controle remoto é acionado em direção ao sensor. Para isso ligue a ponteira do canal A do osciloscópio no sensor e a ponteira do canal B do osciloscópio em qualquer pino da porta B do microcontrolador AVR. Provavelmente você vai observar algo parecido com o que está nas figuras abaixo:
O sinal descrito em amarelo é o sinal do controle remoto e o sinal em verde é o da saída da porta B do microcontrolador AVR. Veja na primeira figura os sinais de preparação antes da chegada dos dados úteis. Na segunda figura veja que o sinal verde ocorre exatamente no meio da onda quadrada do sinal amarelo. Veja que são os exatos momentos em que verificamos se há um bit 1 ou 0 naquele instante. No seu caso o sinal verde deve aparecer totalmente fora do sinal amarelo. Você deve corrigir isso ajustando os tempos no programa onde aparece "-> Intervalo entre bits <-" e também no "-> Tempo de preparação <- ".
Espero que você tenha entendido e gostado da matéria. Se precisar de ajuda não deixe de comentar.
Espero que você tenha entendido e gostado da matéria. Se precisar de ajuda não deixe de comentar.