Sei sulla pagina 1di 3

CONVERSOR A/D E TIMER1

Jordy Lustosa Bezerra


Estudante de Engenharia Eltrica da Universidade Federal do Piau (UFPI) jordy net!hot"ail co" Resumo- A prtica consistiu em utilizar e simular os m !ulos !o "IC1#$%&&a' especi$icamente o con(ersor A/D e o timer1 usan!o a pro)rama*+o em C, Abstract T-e practice .as to use an! simulate mo!ules "IC1#/%&&A' speci$icall0 t-e A/D con(erter an! timer1 usin) t-e C pro)rammin) Palavras-chave Linguagem C, microcontrolador e conversor. I I#$%&'U()& #o "undo e*terior ao "icrocontrolador cheio de grandezas +ue s,o anal-gicas e conse+uente"ente e" "uitas a.lica/0es essas in1or"a/0es .recisa" ser trans"itidas .ara o "icrocontrolador .rocessar Entretanto2 a 3linguage"4 da "5+uina n,o entende sinais anal-gicos e si" sinais digitais Para essa co"unica/,o entre o "undo e*terior (anal-gico) e a "5+uina (digital) necess5rio +ue u"a convers,o seja 1eita 6onvers,o est5 +ue 1eita atravs do "-dulo 78' Para essas convers0es acontecere" necess5rio +ue u" sensor colete u" dado do "undo e*terno2 geral"ente e" volts2 e esse dado seja 3traduzido4 .elo "odulo .ara u" n9"ero :in5rio 6onvers,o essa +ue .ode ser con1igurada e" 62 no caso de tens,o "5*i"a de ;<2 .elo co"ado tens,o = read>adc()?;8@ABC &utro "-dulo a dis.osi/,o do .rojetista +ue tra:alha co" o PI6@DFEFF7 o ti"er@ Ele u" te".orizador de @D :its +ue tra:alha co" u" .rescaler inde.endente e +ue .ode ser acionado atravs do so1tGare2 al" disso .ode ser usado junta"ente co" outros te".orizadores tornando seu ca".o de a.lica/,o gigantesco II P%&6E'IHE#$&I E %EIUL$7'&I EJPE%IHE#$7II #a .ri"eira .ro.osta de algorit"o 1oi sugerido +ue 1osse i".le"entado u" .rogra"a e" linguage" 6 +ue rece:esse u" valor de tens,o de u" sensor e logo a.-s essa in1or"a/,o 1osse colocada e" a"ostra e" dois dis.lays de F seg"entos2 co" u" te".o de a"ostrage" do sensor de @AA"s2 o:serve o c-digo a:ai*oK Linclude M@DFEFF7 NO L1uses *t2 noGdt Luse delay (clocP = QAAAAAA) int tesao2 d2 aR int "ain()S set>tris>:(A:AAAAAAAA)R set>tris>a(A*11)R setu.>7'6>.orts(7LL>7#7L&T)R setu.>7'6(7'6>6L&6U>I#$E%#7L)R set>adc>channel(@)R Ghile(@)S tesao = read>adc()R tesao = (tesao?;)8@ABCR d = (int)tesaoR d = tesao V dR a = d?@AR i1(d==A)Sout.ut>:(A:AAAAAAAA)RW i1(d==@)Sout.ut>:(A:AAAAA@@A)RW i1(d==B)Sout.ut>:(A:@A@@A@@)RW i1(d==C)Sout.ut>:(A:@@@@@AA@)RW i1(d==Q)Sout.ut>:(A:@@AA@@A)RW i1(d==;)Sout.ut>:(A:@@A@@A@)RW out.ut>high(.in>dA)R delay>"s(;A)R out.ut>loG(.in>dA)R i1(a==A)Sout.ut>:(A:AAAAAAAA)RW i1(a==@)Sout.ut>:(A:AAAAA@@A)RW i1(a==B)Sout.ut>:(A:@A@@A@@)RW i1(a==C)Sout.ut>:(A:@@@@@AA@)RW i1(a==Q)Sout.ut>:(A:@@AA@@A)RW i1(a==;)Sout.ut>:(A:@@A@@A@)RW i1(a==D)Sout.ut>:(A:@@@@@A@)RW i1(a==F)Sout.ut>:(A:AAAA@@@)RW i1(a==E)Sout.ut>:(A:@@@@@@)RW i1(a==X)Sout.ut>:(A:@@A@@@@)RW out.ut>high(.in>d@)R delay>"s(;A)R out.ut>loG(.in>d@)R W W 'e.endendo do valor de tens,o "ostrado .elo sensor o c-digo enca"inha o valor .ara u"a se+uYncia de condi/0es +ue ir,o deter"inar +ual os LE's +ue ir,o ascender nos dis.lay 7 linguage" 6 .ossi:ilita u"a "aior 1acilidade na i".le"enta/,o de .rojetos desse ti.o2 .or" sua tradu/,o .ara o 7sse":ly gera v5rias instru/0es desnecess5rias o +ue ocasiona u" gasto a "ais de "e"-ria e ciclos de "5+uina Fora" encontradas algu"as dessas instru/0es ti.oK BIF A*@12 A BIF A*@12 A*@ BIF A*@12 A*B B6F A*@12 A*C

#esse e*e".lo2 todas essas instru/0es +ue tra:alha" co" o registrador A*@1 .oderia" ser su:stituidas .orK H&<LZ B[AAAAA@@@[ H&<ZF A*@1 oti"izando o c-digo Isso se re.ete diversas vezes durante o c-digo U"a outra sugest,o da .r5tica 1oi +ue 1osse i".le"entado u"a crono"etro de A a XX segundos2 utilizando o "odulo do ti"er@2 co" 1re+uYncia de oscila/,o de QHNz & c-digo o seguinteK
LincludeM@D1EFFa hO L1uses J$2#&Z'$2#&B%&Z#&U$ Luse delay(clocP=QAAAAAA) int c=A2te".o=AR Lint>$IHE%@ void te"()S c\\R i1(count==@;)S te".o\\R c=AR i1(te".o==@AA) te".o=AR W W void "ain()S int n@2nBR intE v]@A^R v]A^=A*CFR v]@^=A*ADR v]B^=A*;:R v]C^=A*Q1R v]Q^=A*DDR v];^=A*DdR v]D^=A*FdR v]F^=A*AFR v]E^=A*11R v]X^=A*DFR ena:le>interru.ts(I#$>$IHE%@)R ena:le>interru.ts(TL&B7L)R setu.>ti"er>@($@>I#$E%#7L_$@>'I<>B`>@)R Ghile(@)S nB=te".oa@AR n@=te".o8@AR out.ut>loG(PI#>'A)R delay>"s(;A)R out.ut>high(PI#>'@)R out.ut>:(a]nB^)R delay>"s(;A)R out.ut>loG(PI#>'@)R delay>"s(;A)R out.ut>high(PI#>'A)R out.ut>:(a]n@^)R delay>"s(;A)R W W #o .rogra"a a ci"a 1oi 1eito os c5lculos "uito .arecidos co" os +ue 1ora" 1eitos .ara o ti"erA2 a di1eren/a +ue os ti"er@ .ossui @D:its2 co" isso "udando os valores do c5lculo

& .rogra"a a ci"a nos d5 u"a certa .recis,o na "edi/,o do te".o 7gora utilizando os dois "-dulos anteriores 1oi sugerido +ue se realizasse u"a convers,o de anal-gico .ara digital a cada @A "s & c-digo 1icou o seguinteK LincludeM@D1EFFa hO L1uses J$2#&Z'$2#&B%&Z#&U$ Ldevice adc=@A Luse delay(clocP=QAAAAAA) Lde1ine dis.lay@ .in>dA Lde1ine dis.layB .in>d@ int cR Lint>$IHE%@ void te".o()S c\\R W void "ain()S int v]@A^2i2jR 1loat tensaoR v]A^=A*CFR v]@^=A*ADR v]B^=A*;:R v]C^=A*Q1R v]Q^=A*DDR v];^=A*DdR v]D^=A*FdR v]F^=A*AFR v]E^=A*11R v]X^=A*DFR ena:le>interru.ts(I#$>$IHE%@)R ena:le>interru.ts(TL&B7L)R setu.>ti"er>@($@>I#$E%#7L_$@>'I<>B`>@)R setu.>adc>.orts(7LL>7#7L&T)R setu.>adc(7'6>6L&6U>I#$E%#7L)R set>adc>channel(@)R delay>us(@AA)R set>ti"er@(;;;CD)R c=AR Ghile(@)S i1(c==@)S tensao = read>adc()?;8@ABCR i = (int)((tensao)?@A)8@AR j = (int)(read>adc()?;A8@ABC)a@AR out.ut>loG(dis.layB)R out.ut>:(v]i^)R out.ut>high(dis.lay@)R delay>"s(;A)R out.ut>loG(dis.lay@)R out.ut>:(v]j^)R out.ut>high(dis.layB)R delay>"s(;A)R c=AR set>ti"er@(;;;CD)R

W W W Pode"os o:servar +ue a ideia do .rogra"a aci"a "uito .arecida co" a dos .rogra"as anteriores2 a.enas alterado o valor de inicio do ti"er@ de acordo co" oscilador e co" o te".o de "udan/a de @A"s Foi desenvolvido u" c-digo e" 6 .ara a contage" de u" encoder2 a cada @;A .ulsos atravs do ti"er@ $oda vez +ue o ti"er@ estourasse2 u" LE' conectado no .ino %6@ "udasse de estado & c-digo 1ica assi"K
LincludeM@D1EFFa hO L1uses J$2#&Z'$ Luse delay(clocP=QAAAAAA) void "ain()S setu.>ti"er>@($@>EJ$E%#7L>I`#6_$@>'I<>B`>@)R set>ti"er@(A)R 1or(RR)S i1(get>ti"er@()==@;A) out.ut>high(.in>c@)R i1(get>ti"er@()==CAA)S set>ti"er@(A)R out.ut>loG(.in>c@)R W W W

III 6&#6LUI)& 7 .r5tica realizada e" la:orat-rio 1oi 9til .ara +ue 1i+ue"os 1a"iliarizados co" dois "-dulos i".ortantssi"os .ara a utiliza/,o do PI6@DFEFF72 conversor 78' e ti"er@ 7 utiliza/,o desses "-dulos e" conjunto ou inde.endentes de outros "-dulos2 a:re u" le+ue enor"e .ara novas a.lica/0es +ue .ode" ser realizadas e" .rojetos 1uturos #o caso do conversor 78' a contri:ui/,o dele se" .recedentes .ois as a.lica/0es "ais interessantes e uteis re+uere" u"a co"unica/,o entre a "5+uina e o "undo e*terior 7T%7'E6IHE#$&I 7grade/o b Universidade Federal do Piau .ela o.ortunidade de teste"unhar na .ratica o uso de "icrocontroladores I< %EFE%c#6I7 BIBLI&T%dFI67 112 "IC1#/%&3A Data S-eet' BE8QA8QQVPin Enhanced Flash Hicrocontrollers

Potrebbero piacerti anche