Vous êtes sur la page 1sur 19

Medindo Corrente com PIC 16F877A

Bom, darei aqui uma explicao de como faer um medidor de corrente com um PIC
16F877A !pro"ramando em C#$ %&tarei u&ando como &imulador o Proteus ISIS e como I'%
o CCS C.
Aqui e&t( o circuito ao qual mediremo& a corrente)

*ma +ateria de 1,- li"ada a uma l.mpada de 1,- com ,/ 0 de re&i&tencia e &eu& re&pecti1o&
medidore& de ten&o e corrente$ 2i"ando e&&e circuito o+temo& o& 1alore& de 3,4A !mai&
preci&amente /56mA# e 1,- na l.mpada$
Para medirmo& a corrente, 6 ne&ce&&ario um shunt, que ne&te ca&o podemo& u&ar um re&i&tor
de re&i&tencia relati1amente +aixa, como 3,10$ %&te re&i&tor &er( colocado em &6rie com a
l.mpada, no polo ne"ati1o$ Ao li"ar o+temo& o& &e"uinte& 1alore&)

/5,6m- no re&i&tor$ *&ando a 2ei de 78m como U = R * I podemo& c8e"ar a corrente)
/5,6 9 13:;< = 3,1 9 I
/5,6 9 13:;< > 3,1 = I
/56 9 13:;< = I
I = 496 mA

7?, na entrada anal@"ica do microcontrolador PIC16F877A, 8( uma e&pecificao de ten&o
maxima$ Ao ca&o, 6 B-cc a CA' ca&o no &eDa acertada a referencia$ Com -cc = 4- e CA' = 3
temo& 4- de e&pao, por6m o 1alor /5,6m- 6 muito +aixo para i&to, lo"o ne&ce&&itaremo&
aumenta;lo com um Amplificador Operacional$
Com o modo Amplificador Inersor do amplificador operacional podemo& facilmente multiplicar
a ten&o de entrada, no &imular a& ten&Ee& de alimentao do amplificador operacional e&to
acertada& para B14- e ;14-, muito mai& alta& do que o que ne&ce&&itamo&$
Podemo& calcular o !anho de "ens#o do amplificador operacional da &e"uinte maneira)
$out = % & $in * & R' ( R) * *
Como a ten&o maxima da entrada anal@"ica do PIC &endo 4-, podemo& multiplicar por 13 ne&&e
primeiro e&ta"io$ Felecionamo& o& re&i&tore& R) e R' para 1330 e 13?0 re&pecti1amente$
Por6m a&&im, temo& uma ten&o ne"ati1a, no podendo &er u&ada para o PIC, e ca&o queiramo&
uma lampada de maior potGncia e&taremo& muito proximo do limite maximo do PIC !/,54-#,
ento colocaremo& outro amplificador operacional no modo in1er&or para di1idir a ten&o por ,$
%nto a &aida 6 ,,/8-, metade da entrada do PIC, podendo a&&im u&ar uma l.mpada do do+ro da
potGncia$ %nto a"ora 1amo& de&co+rir a formula "eral de&&e circuito para ac8armo& a corrente
apartir da ten&o de &aida$
Para corrente I no re&i&tor de 3,10 temo& uma &aida - temo&) I = $ ( + , )
Ap@& i&&o, com amplificadore& operacionai& multiplicamo& por 133 e di1idimo& por ,$ 2o"o
multiplicamo& por 43$ 2o"o -out = -in 9 43$
A&&im $in = $out ( -+$ Ho"ando i&&o na formula anterior temo&)
I = -out > 43 9 3,1
I = $out ( -
C8e"amo& ai a formula final que preci&aremo& u&ar no pro"rama do PIC para calcular a corrente
apartir da ten&o na entrada dele$

CCF C

Para a 1i&ualiao do& 1alore& rece+ido& pelo microcontrolador, e&tarei u&ando um 2C' I'//783
!o mai& comum# li"ado a P7JK' do PIC16F877A$ Ao CCF C, o dri1er de 2C' D( e&t( confi"urado
para e&&a porta$ 7 circuito para &imulao &er( e&te)
Kudo acertado iremo& comear o pro"rama no CCF C ento)
Iremo& em Pro.ect /i0ard e acertaremo& a& confi"uraEe& como na& ima"en& a+aixo)
Ap@& tudo acertado, iremo& para uma tela &emel8ante a e&&a)
7 que confi"uramo& foi o &e"uinte)
; 7 modelo pic para 16F877A
; 7 pic para rodar em /M8
; 7 pic para u&ar 7&cilador a Cri&tal
; 7 pic para u&ar Ponteiro& de 16Bit para u&o da Jam inteira$
Comearemo& ento colocando uma lin8a que incluir( o dri1er do 2C' do CCF C e tam+6m
1aria1ei& que 1amo& u&ar no pro"rama$ Adicionaremo& e&t( lin8a a+aixo do primeiro 1include)
1include
lon2 int alor3
float tensao3
Ap@& feito i&&o, podemo& comear a e&cre1er o c@di"o, exatamente onde o CCF C deixou
e&crito (( "O4O5 US6R CO4677
Comearemo& com a inicialiao do 2C' e ap@& i&&o faremo& um pro"rama de te&te para
e&cre1er no 2C'$
lcd8init&*3
lcd8putc&9"este do :C479*3
;hile&true* <=
Aperte F5 para compilar o pro"rama, e 1amo& a"ora confi"urar no ISIS para a &imulao do
pro"rama compilado$
Clicaremo& uma 1e com +oto direito, e uma 1e com +oto e&querdo em cima do pic, e ir(
a+rir uma Danela i"ual a e&ta)
Ao campo marcado na ima"em, &elecione o arqui1o compilado !nomeLdoLpro"rama$8ex# e ap@&
i&&o acerte oProcessor Cloc> ?re@uencA para /M8)
Ap@& feito i&&o podemo& D( &imular e 1er &e deu certo$ Clique no +oto plaA na +arra inferior do
IFIF)
Imm, muito +omM FuncionaM A"ora 1amo& a parte do conersor analB2ico%di2ital$ Iremo&
e&cre1er a& &e"uinte& lin8a& dentro do lao ;hile ! dentro da& c8a1e& N O #
S6"8A4C8CCADD6:&+*3
delaA8ms&)+*3
alor = R6A48A4C&E*3
delaA8ms&)+*3
printf&lcd8putc,9Ff $alor5 G:U9,alor*3
Faendo i&&o, acertar o canal de leitura do A'C para o 3 !primeiro#, e&perar 13m&, iniciar e ler
!7#, e colocar o conteudo na 1ari(1el 1alor, e&perar 13m& no1amente, e depoi& mo&trar o 1alor no
lcd$ Compile o pro"rama, ma& ante& de rodar, 6 ne&ce&&(rio a li"ao do &inal de &aida do
amplificador operacional no pino A3 do PIC$
Ap@& li"ado i&&o, podemo& te&tar)
Certo, funcionou$ Ma& e e&&e 1alor -+EP Bom, e&te &eria o 1alor que o A'C forneceu$ Para
&a+ermo& a ten&o da entrada, preci&amo& &a+er de onde o A'C tirou i&&o$ Ante& falamo& que a
ten&o que teriamo& &eria de 3- a 4-, e na& definiEe& acertamo& a preci&o do A'C para 13,/+it$
lo"o temo& 4 > 13,/ - de preci&o, ou &eDa, cada +it &er( equi1alente a 4 > 13,/ -$
4 > 13,/ = 3$33/88,81,4
2o"o faremo& o &e"uinte, multiplicaremo& o 1alor que con&e"uimo& por e&&e numero, a&&im
teremo& em 1olt& a ten&o na entrada do pic$
7?, trocaremo& a& lin8a& dentro do lao Q8ile pelo &e"uinte)
S6"8A4C8CCADD6:&+*3
delaA8ms&)+*3
alor = R6A48A4C&E*3
delaA8ms&)+*3
tensao = alor * +.++4HH'H)'-3
printf&lcd8putc,9Ff "ensao5 G?9,tensao*3
Me&ma coi&a do que o anterior, apena& u&ando a float 1alor para ca&a& depoi& da 1ir"ula$ A &aida
da float &er( arredondada para , ca&a& decimai&$ Compilando e rodando, temo&)
Kemo& ,,/7-, al"o +em proxim do& ,,/8- medido& com 1oltimetro$ 7?, temo& a ten&o certin8a,
a"ora preci&amo& aplicar a f@rmula dada la em cima$ Por6m, a corrente e&t( a+aixo de 1 Amper,
lo"o podemo& faer a 1i&ualiao em mA apena& multiplicando tudo por 1333$ Faremo& o
&e"uinte ento)
S6"8A4C8CCADD6:&+*3
delaA8ms&)+*3
alor = R6A48A4C&E*3
delaA8ms&)+*3
tensao = alor * +.++4HH'H)'- ( - * )+++3
printf&lcd8putc,9Ff I5 G?mA9,tensao*3
'i1indindo a ten&o que foi con&e"uida por 4 e multiplicando por 1333, compilando e rodando
temo&)
Kemo& /54,11mA, proximo do& /56mA medido& com Miliamperimetro$ Para 1erificar a
funcionalidade do circuito, alteremo& a re&i&tencia da lampada para 1, 78m& !em teoria, a
corrente ir( do+rar#, no campo indicado, trocar ,/ por 1,
Ke&tando)
Pronto =#, tudo funcionando no& conforme&$ Fimple& noP
Ruer uma &u"e&to para proDeto de aprendia"emP Kente faer um circuito que mea a potGncia
na car"a, medindo a ten&o na car"a e a corrente, e multiplicando a& dua&$
C@di"o final)

Vous aimerez peut-être aussi