As lâmpadas PL exigem circuitos apropriados para sua excitação. Estes circuitos podem ser implementados com facilidade pelo uso de microcontroladores como os da série HT48RA0A da Holtek (www.holtek.com). Neste artigo levamos aos leitores um projeto que serve de exemplo para este tipo de aplicação.

As lâmpadas PL são excitadas por circuitos inversores que normalmente operam com uma ampla faixa de tensões de entrada, convertendo-as em um sinal de alta frequência e alta tensão apropriados à excitação da lâmpada. O circuito dado como exemplo, fornecido pela própria Holtek, opera com uma baixa tensão de entrada e alimenta uma lâmpada PL de 13 watts.

No application note da Holtek, os microcontroladores HT48RA0/-1/-2/ são utilizados como componentes centrais para controlar as lâmpadas PL. No application note é discutida sua utilização. Neste artigo vamos nos limitar a fornecer os dados básicos do circuito, ficando por conta dos leitores interessados baixar o documento completo no site da empresa.

Para entender o funcionamento do circuito partimos do princípio básico de operação de uma lâmpada PL. Estas lâmpadas consistem num bulbo de vidro preenchido com um gás inerte. Quando a lâmpada é ligada a uma fonte de alta tensão, o gás ioniza emitindo radiação ultravioleta (UV). Essa radiação excita uma cobertura de fósforo interna ao vidro a qual emite luz na faixa visível.

No exemplo de aplicação, temos o circuito da figura 1, que consiste na configuração mais simples para um inversor para lâmpada PL.

 

Inversor para lâmpadas.
Inversor para lâmpadas.

 

Este circuito consta de um microcontrolador, dois diodos de alta velocidade ligados a uma fonte de alimentação DC, quatro transistores NPN para transformação de nível, um capacitor em série com o filamento de lâmpada PL e dois indutores ligados a diodos. Os dois circuitos boost, sendo um formado por L1 e Q5 e o outro por L2 e Q6 elevam a tensão aplicada à lâmpada. Na figura 2 temos um exemplo de placa de circuito impresso para o circuito que utiliza uma lâmpada PL de 4 pinos de 13 W.

 

Placa do inversor.
Placa do inversor.

 

O circuito de alimentação para esta aplicação deve fornecer uma tensão de 12 V, podendo ser uma bateria ou um pequeno conversor.

Na figura 3 temos o aspecto da montagem do protótipo da Holtek para este inversor.

 

Aspecto da montagem.
Aspecto da montagem.

 

A seguir a listagem do programa que deve ser utilizado para excitação do circuito:

 

;*******************************************************

;

; HT48RA0A Demo Board for Auto lighting

;

;*******************************************************

INCLUDE HT48RA0A.INC

DATA .SECTION AT 20H ?DATA?

;------------------------------------------------

counter0 db ?

counter1 db ?

keycount db ?

keystatus db ?

;------------------------------------------------

CODE .SECTION

ORG 00H

Jmp initial

;------------------------------------------------

ORG 010H

Initial: ;Clearing all the data ram from

;20H to 3FH

mov A,20H

mov MP,A

jmp clramloop

clramloop:

clr R0

inc MP

mov A,0BFH

sub A,MP

sz STATUS.0

jmp clramloop ;MP0<3FH then jump to clramloop

;------------------------------------------------

 

;------------------------------------------------

; -- MAIN PROGRAM --

;------------------------------------------------

initial_mode:

clr keycount

mov A,00000011B ;Setting PA0 and PA1 output

;?1?

mov PA,A

mov A,00000000B ;

mov PC,A

;------------------------------------------------

mov A,0E0H;

mov counter1,A ;100×256×32=First ignition

;time (4MHz=E0H=0.8sec)

;................................................

;................................................

sign_test:

sz keystatus.0 ;Detecting signal from PB5

jmp ignite ;If PB5 is low then turn the

;light on

calldelay_46

calldelay_46

sz PB5

jmp clr_sign

inc keycount

mov A,0FAH

sub A,keycount

sz status.0

jmp sign_test

set keystatus.0 ;

jmp sign_test

clr_sign:

clr keycount

mov A,00000011B ;Setting PA0 and PA1 output

;?1?

jmp sign_test

 

;................................................

ignite:

clr keycount

call ignite_sub ;Ignition mode: First time

;sub-program

;

mov A,0FCH ;4MHz=FCH=0.1sec

mov counter1,A ;110×256×4=Second ignition

;time

ignite_se: ;Ignition Mode: Second time

mov A,00000001b

clr pa

mov PA,A

call delay_46

nop

nop

nop

nop

;..

mov A,00000010b

clr pa

mov PA,A

call delay_46

nop

siz counter0

jmp ignite_se

siz counter1

jmp ignite_se

;................................................

run_mode: ;Running Mode: fix friquency at

;22kHz

mov A,00000001b

clr pa

mov PA,A

call delay_run

snz keystatus.0 ;

jmp initial_mode ;PB5 is high-level, turn-off

;the light

;.......

mov A,00000010b

clr pa

mov PA,A

call delay_run

jmp run_mode

;--------------------------------------------------

; -- Sub PROGRAM --

;--------------------------------------------------

;delay_run:

clr wdt

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

ret

;

delay_run:

clr wdt

snz PB5 ;Detecting the signal from PB5

jmp delay_run1 ;If PB5 is high then turn the

;light off

inc keycount

mov A,0FAH

sub A,keycount

sz status.0

jmp delay_run2

clr keystatus.0

jmp delay_run3

delay_run1:

nop

jmp $+1

jmp $+1

delay_run2:

jmp $+1

delay_run3:

jmp $+1

ret

delay_46:

clr wdt

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

jmp $+1

nop

ret

;--------------------------------------------------

; -- Sub PROGRAM --

;--------------------------------------------------

ignite_sub:

mov A,00000001b

mov PA,A

;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;

mov A,00000010b

mov PA,A

;.......

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;.......

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;.....

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;.....

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

;..

mov A,00000001b

mov PA,A

;;

mov A,00000010b

mov PA,A

clr wdt

siz counter0

jmp ignite_sub

siz counter1

jmp ignite_sub

clr pa

;..................................

ret

end