You are on page 1of 1

Y := LerAD0anal(0); lOport,WritePort($378,$0); //,..

000 seguin'
. Acrescente as duas linhas ÍìeatÌìeí
//Y = leitura dos dados do AD for i:=1 to 16 do tes no qvento Create do Íorm: e P€Ía (
Chartl,Series[0].AddXY(X,Y,", lOport.WritePort($378,(i mod 2)); Oa
clTeeOolor); // Adiciona o Ponto X,Y ll ...00x AssignFile (ArqDados, derdo t

if Chartl.Series[1].Count > 100 lOport.WritePort($378,$4) ; extractFilepath(application.exename) kos scfi


then Chartl .Series[1 ].Delete(O); // Desabilito o AD (/CS=1) +'\Proj3Dados.txt'); ilarÚfE
// Análogo Para o Canal 1 result := Yalor; ll result é o valor de Re,,vrite (ArqDados); // Assinala lreaÍrÍ)
Y := LerADOanal(1); retorno de uma Íunction que é para sobreescrita r"tâÍlns'

Chartl .Series[1 ],AddXY(X,Y", end; *qÍã


Listagem6-AÍunçãode . No evento onTimer, acrescente a cul"rÌ o i
clTeeOolor);
lnc(X); leitura do AD linha a seguir. Observe que estaremos enrÌ oLl
ll Yariétvel do eixo horizontal escrevendo no arquivo apenas os da-
erl,& Fn

end; Confira atentamente as ligaçóes dos de um dos sensores. Salvaremos b ó4


Listagem 5 - ManiPulador entre o conversor AD e o D825, e en- os dados do primeiro sensor, então
de eventos do Timerl tão é só conectar o circuito ao PC e inseriremos a nova linha em entre as
executar o programa Para que Possa duas chamadas à Íunção LerADCanal.
Observe a semelhança do código visualizar os dados.
da listagem 5 com o código do Varie as grandezas sensoreadas e Writeln(ArqDados,lntToSt(X-100) Vin
manipulador de eventos da versão si' veja o que ocorre no gráÍico. Pode-se +','+ lntTostr(Y)); llsalva o ponto X,Y t:o'c ô
mulada: note a seqüência testa/atri- também tentar utilizar valores maiores un ml
hti aY/atribuià série. para a propriedade lntervaldo timer, . Finalmente, acesse o evento Aüefl
obtendo gráÍicos corn maiores perío- onClose do Form, e codiÍique-o como ffi
Íunction TForml .LerADOanal (Ca- dos de amostragem, o que às vezes é mostrado a seguir. Ír" eË
nal : lnteger):lnteger; interessante, dependendo da inércia procedure TForml.FormClose cüÈ a

Var da grandeza insPecionada. (Sender: TObject; var Action: go rrec


i : lnteger; Você pode ainda utilizar escalas TCloseAction); süerr
Valor: Byte; para os valores lidos, bastando para begin ciref
isto alterar as respectivas proprieda- CloseFile(ArqDados); un ü
begin
// a aquìsição do des no componente Series e inserir um llF*hao arquivo ÍÍl-5t
AD- -Endereçando multiplicador no momento em que é end; ço€s à
// START BIT atribuído o valor da leitura ao vetor de feÜl
// Pinos ç5=d2 Dl=d1 CLK=dO pontos da série referida. Estes quatro trechos de código fa' Por.EO
lOport.WritePort($378,$2) ;
zem o seguinte trabalho:declara uma g'qEt
ll ...o10 variável de arquivo, cria o arquivo de $85
lOport.WritePort($378,$3) ; Salvando os dados dados com nome'Proj3Dados.txt' no rÍEÍrb
ll ..:011 diretório onde está o executável, ver dâdq$
// [sGLyDlF O aplicativo, da forma que está, é Íigura 13, e abre-o para escrita, escre- aúnr
totalmente funcional, mas possui um vê os pontos x,y lidos do sensor do mfrnis r
lOport.WritePort($378,$2); // ...01 0
lOport.WritePort($378,$3); // ...01 1 pequeno problema; os dados são canal 0 do AD enquanto o Programa AÉ
visualizados e perdidos logo em se- estiver sendo executiado e, finalmen' ml
/i [oDDysGN guida, o que nem sempre é desejável! te, fecha o arquivo. DEila
lOport.WritePort($378,$2 and É interessante poder salvá-los em um Assim que você executar o nôi
(2'Canal)); ll ...010 arquivo para uma análise posterior ou aplicativo, a aquisi<$o dos dados é Íei-
lOport.WritePort($378, ($2 mesrno para documentação. ta atravÉs do rnanipulador de eventos
and(2.Canal)) or $1); ...011 Com mais álgumas modiÍicações, doïmer e e{es são enviados simulta-
! teremos o aplicativo
llMux S.Time salvando os dados.
tóport.WritePort($378,$O) ; // ...OOO As alterações são
.lOport.WritePort($378,$1 ); //,..001 as seguintes:

Valor := O; lllnicializa a variável . DeÍinir uma vari-


Íor i:=0 to 7 do ável de arquivo -
begin acrescente a seguinte
lOport.WritePort($378,$0) ; I I ClocR linha abaixo da deÍini-
em 0 ...000 ção da variável 'X' na
// Montagem do bYte através de seção Var da Unit:
deslocamentos nos bits lidos
Valor := Valor or (((lOport.Read ArqDados
lOport.WritePort($378,$1 ) ; :TextFile;
// Clock em 1 ...001 llDeclaravariâvel
end;

1o SAAER ELETRÔNICA N9 320/99 srEn