Aquisição de Dados com o Excel

A planilha Excel possui um interpretador da linguagem Visual Basic, que permite ler os dados diretamente da porta de jogos ou da porta paralela. (VBA - Visual Basic Applications)

Vantagens em usar o Excel na aquisição e análise dos dados:

Primeiros passos para contruir planilha que lê a entrada da porta de jogos.

Maiores detalhes em links, como aqui.

Criando e utilizando um botão em uma planilha:

Um mínimo sobre o VBA e Excel Como exemplo, digite, o que segue abaixo (o comando Private Sub CommandButton1_Click() e ENd Sub aparecem automáticamente)

Public i As Integer
   Private Sub CommandButton1_Click()          ' Nome da função
        For i = 1 To 10               ' A variável i assume valores de 1 a 10
        Cells(i, i) = i                  ' Valores transferidos para a célula (i,i)
        Next i                              ' Retorna ao comando FOR e incrementa i
   End Sub                               ' fim da subrotina

O que você espera que apareça na planilha ao executar esta macro?

Outras dicas


Outro exemplo:
Private Sub CommandButton1_Click()
  Dim i As Integer
  Dim x As Single
  Dim y As Single
  For i = 1 To 10
  x = Cells(i, 1)
  If 3 < x And x < 5 Then
  Cells(i, 2) = x
  End If
  Next i
End Sub

Implementando esta macro:


Macros podem ser associadas a módulos

Uma mesma macro pode ser usada por várias planilhas, desde que não seja criada diretamente em uma planilha específica, mas sim em um módulo.

Para criar um módulo no Editor de Visual Basic:


 

Lendo um Byte da Porta de Jogos

A linguagem Visual Basic não possui uma função que permita a leitura direta da porta de jogos. Para ler um byte da porta de é preciso usar um arquivo com o nome de inpout32.dll disponível no endereço http://www.logix4u.cjb.net/. (O arquivo inpout32.dll é apropriado para o Windows98. )

A função Inp, presente nesta bliblioteca, retorna um byte do endereço especificado Por exemplo,

Inp(513)

fornece o valor do byte da porta de jogos

Configurando a DLL

Para usar a biblioteca (DLL) a fim de ler o estado lógico da porta de jogos proceda da seguinte forma:

Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Byte

Medindo um Intervalo de tempo

Para medir um pequeno intervalo de tempo de um determinado evento, usaremos o seguinte recurso: Vamos ler o estado da porta durante um certo tempo. Assim teremos no Excel uma coluna com o estado lógico da porta digital . Se o evento for um objeto cortando o feixe de infravermelho, o byte lido terá dois valores diferentes. O intervalo de tempo em que o objeto corta o feixe, será dado em função do número total de medidas vezes o tempo para cada medida.

Experimento com pêndulo

O experimento consiste em medir o período de um pêndulo e sua velocidade no ponto de equilíbrio, para isso usamos sensores ligados à entrada digital da porta de jogos. O programa está disponível para download.

Texto completo submetido à Revista Brasileira de Ensino de Física.

É possível verificar na figura abaixo tem-se uma idéia de dados obtidos com o sistema.


Jalves Sampaio Figueira (jalvesampaio@pop.com.br) & E. A. Veit (eav@if.ufrgs.br)
Julho de 2003
CREF - Instituto de Física - UFRGS