Menu English Ukrainian Russo INÍCIO

Biblioteca técnica gratuita para amadores e profissionais Biblioteca técnica gratuita


ENCICLOPÉDIA DE RÁDIO ELETRÔNICA E ENGENHARIA ELÉTRICA
Biblioteca gratuita / Esquemas de dispositivos radioeletrônicos e elétricos

Operação ADC com porta COM, sistema de aquisição de dados simples. Enciclopédia de rádio eletrônica e engenharia elétrica

Biblioteca técnica gratuita

Enciclopédia de eletrônica de rádio e engenharia elétrica / informática

Comentários do artigo Comentários do artigo

Este artigo destina-se principalmente a iniciantes. Para quem decidiu tentar criar um sistema de aquisição de dados, inserir sinais analógicos em um computador, processá-los, etc. Isso será discutido neste artigo e tentaremos fazer tudo sozinhos.

Em geral, existe bastante informação sobre este assunto na Internet e na literatura... Principalmente se você usar a linguagem Visual Basic. Portanto, tentarei preencher, pelo menos parcialmente, esta lacuna.

Então, vamos começar…

Seja qual for o seu objetivo, primeiro você precisa adquirir o conversor analógico-digital (ADC) real. E também instale o ambiente de desenvolvimento do Visual Basic 6.0 em seu computador. Você também precisa simplesmente navegar neste ambiente de desenvolvimento... porque... O artigo foi elaborado para garantir que o leitor tenha pelo menos conhecimentos básicos de programação em Visual Basic. Também recomendo a leitura da literatura [1], [3].

Recomendo comprar o TLC549IP como ADC. Este é um ADC serial de 8 bits com um protocolo de comunicação simples. Isso será discutido no artigo. Claro, você pode usar outros ADCs com alterações apropriadas no circuito e no código. Você pode ler mais sobre isso em [1].

Depois de encontrar o ADC, é necessário montar o hardware do nosso sistema de aquisição de dados, nomeadamente o circuito mostrado na Fig. 1.

Operação ADC com porta COM, sistema de aquisição de dados simples. Hardware
(clique para ampliar)

O esquema foi emprestado de [1] com pequenas alterações. Diodos VD1, VD2, VD6 - KD521, quaisquer diodos zener para tensão de estabilização 3...5 V. Em vez de 78L05, você pode usar KREN5A. Resistores R1, R2 com tolerância de 1% ou seleção entre vários com valor de resistência mais próximo. A precisão das medições dependerá deles. O resistor R3 é preferencialmente multivoltas.

Fixação: aplicando energia à placa, medimos a tensão no pino Out do estabilizador DA1. Anotamos o valor da tensão resultante com 3 casas decimais, precisaremos dele mais tarde. No pino 1 do microcircuito DD1, usando o resistor R3, ajustamos a tensão igual a exatamente metade do estabilizador medido no pino Out.

Agora vamos passar para a parte real do software. De modo geral, a princípio, utilize interfaces de comunicação como RS-232, I2C, Micro Ware, etc. Considero isso inapropriado, porque Com uma ligeira complicação do código do programa, o hardware pode tornar-se seriamente mais complicado. Portanto, utilizaremos o protocolo de troca mais simples retirado da “folha de dados” para o ADC. Ou seja, sua implementação simples. É claro que com tal protocolo você não pode alcançar alta velocidade; neste caso, as limitações são impostas pelo próprio Visual Basic, mas para obter os primeiros resultados com um mínimo de tempo e esforço, bem como para medir processos que mudam relativamente lentamente, é bastante adequado. O protocolo de comunicação do ADC TLC549IP é mostrado na Fig. 2.

Operação ADC com porta COM, sistema de aquisição de dados simples. Protocolo de comunicação ADC TLC549IP
(clique para ampliar)

Durante o estado único, a conversão real ocorre no pino CS (seleção de chip) do conversor A/D. A saída de dados começa em um nível CS baixo com o aparecimento de um pulso de clock, um bit para cada pulso. Para produzir um código de 8 bits, são necessários 8 pulsos de clock. Após o qual o CS pode ser transferido para um único estado e a seguinte transformação pode ser realizada. Mais detalhes sobre o funcionamento do ADC podem ser encontrados em [1].

De tudo isso podemos concluir que é necessário escrever um programa driver que gere as sequências de pulsos necessárias nos momentos certos, após o qual só poderemos receber os dados.

Inicie o ambiente de desenvolvimento do Visual Basic e crie um projeto EXE padrão. Adicione o controle MSComm. Você pode adicioná-lo ao painel de componentes da seguinte maneira: Projeto-->Componentes-->selecione na listaMicrosoft Comm Controle 6.0. Coloque-o no formulário, junto com 2 etiquetas e 2 temporizadores. Deixe os nomes como padrão.

Agora você pode começar a escrever código para um voltímetro simples.

Vamos definir variáveis: Dim b1, b2, b3, b4, b5, b6, b7, b8, soma, Ud como único

Coloque o seguinte código no procedimento de carregamento do formulário:

Private Sub Form_Load ()

MSComm1.DTREnable = True 'valor inicial - alto nível de CS

Timer1.Interval = 100 'intervalo do temporizador 1ms

Timer2.Interval = 1 'intervalo do temporizador 100ms

MSComm1.Settings = "1200,N,8,1" 'configurações de transferência de dados

MSComm1.CommPort = 1 ' número da porta COM

MSComm1.PortOpen = True ' abre porta com

End Sub

Em procedimento Timer1 coloque o código:

Subtemporizador privado1_Timer()

MSComm1.DTREnable = False 'Cria CS baixo

Label2.Caption = "" 'lixo para atraso inicial

MSComm1.RTSEnable = True '1st clock pulse clock high

Se MSComm1.CDHolding = True Então b1 = 1 Caso contrário b1 = 0 'pesquisa um ou zero valor na entrada CD (saída ADC)

MSComm1.RTSEnable = False '1st clock pulso clock baixo

MSComm1.RTSEnable = Verdadeiro

Se MSComm1.CDHolding = True Então b2 = 1 Caso contrário, b2 = 0

MSComm1.RTSEnable = Falso

MSComm1.RTSEnable = Verdadeiro

Se MSComm1.CDHolding = True Então b3 = 1 Caso contrário, b3 = 0

MSComm1.RTSEnable = Falso

MSComm1.RTSEnable = Verdadeiro

Se MSComm1.CDHolding = True Então b4 = 1 Caso contrário, b4 = 0

MSComm1.RTSEnable = Falso

MSComm1.RTSEnable = Verdadeiro

Se MSComm1.CDHolding = True Então b5 = 1 Caso contrário, b5 = 0

MSComm1.RTSEnable = Falso

MSComm1.RTSEnable = Verdadeiro

Se MSComm1.CDHolding = True Então b6 = 1 Caso contrário, b6 = 0

MSComm1.RTSEnable = Falso

MSComm1.RTSEnable = Verdadeiro

Se MSComm1.CDHolding = True Então b7 = 1 Caso contrário, b7 = 0

MSComm1.RTSEnable = Falso

MSComm1.RTSEnable = Verdadeiro

Se MSComm1.CDHolding = True Então b8 = 1 Caso contrário, b8 = 0

MSComm1.DTREnable = True 'Cria alta CS

MSComm1.RTSEnable = False '8st clock pulso clock baixo

'converte os bits para o formato decimal usando a fórmula de expansão

soma = (b1 * 2 ^ 7) + (b2 * 2 ^ 6) + (b3 * 2 ^ 5) + (b4 * 2 ^ 4) + (b5 * 2 ^ 3) + (b6 * 2 ^ 2) + (b7 * 2 ^ 1) + (b8 * 2 ^ 0)

Ud = Format(soma * 5.083/255, "##0.000") 'calcula o valor proporcional

Label1.Caption = CStr(Ud) & "Volt" 'exibe o valor resultante

End Sub

O código em Timer1 é o driver real. Que, repetindo-se periodicamente, gera pulsos de clock e recebe bits de dados. Ud é a tensão na entrada do ADC; se você usar ADCs de 10 e 12 bits, o número 225 será substituído por 1024, 4096, respectivamente. Para ADCs de 10 e 12 bits, você precisa adicionar os bits ausentes ao código , guiados por suas “fichas técnicas”. O valor 5.083 é o valor da tensão que obtive na saída Out do estabilizador. Insira seu valor aqui.

Para alimentar a placa, você pode usar uma fonte separada ou ligá-la diretamente da porta COM. Para fazer isso, colocamos o seguinte código no procedimento Timer2:

Subtemporizador privado2_Timer()

MSComm1.Output = Chr(0) & Chr(0) 'cria pulsos no pino TX (3) para alimentar a placa ADC

End Sub

Deve ser lembrado que a porta COM não pode estar muito carregada... o máximo com que você pode contar é 20 mA. No modo de operação, o circuito consome uma corrente não superior a 5 mA.

Agora conecte a placa à porta COM e execute o projeto. Meça a tensão no pino IN do estabilizador DA1, ela não deve ser inferior a 6.5 ​​V. Caso contrário, use uma fonte de alimentação separada. Ao alterar a tensão na entrada ADC, certifique-se de que o programa funcione e mostre a tensão na tela. A precisão da leitura de tensão ao usar um ADC de 8 bits é de 20 mV, com um ADC de 10 bits - 5 mV, 12-1.2 mV

Um pouco sobre como trabalhar em Visual Basic e o aplicativo criado com uma porta com

Como você provavelmente já entendeu, para trabalhar com uma porta de comunicação você precisa de um componenteMicrosoft Comm Control ou seja, o arquivo MSCOMM32.ocx que, após a instalação do Visual Basic, está localizado no diretório C:\Windows\system32. O que quero dizer com isso é que se você copiar seu programa, sem criar um instalador, para outro computador que não tenha Visual Basic, ele não funcionará. Você também deve copiar este arquivo para o mesmo diretório do seu computador, ou seja, no sistema32. Ou crie um instalador.

Agora alguns comandos:

Comando para definir a taxa de troca de dados:

MSComm1.Settings = "1200,N,8,1"

Comando indicando o número da porta COM

MSComm1.CommPort = 1

Comandos para abrir e fechar a porta de comunicação

MSComm1.PortOpen = Verdadeiro

MSComm1.PortOpen = Falso

Comandos que enviam +12V para o pino correspondente do conector COM:

MSComm1.RTSEnable = True RTS (7) - nome e número do pino

MSComm1.DTREnable = True DTR(4)

Comandos de saída -12V

MSComm1.RTSEnable = Falso         

MSComm1.DTREnable = Falso

Você pode pesquisar os pinos CD (1), CTS (8), DSR (6) quanto à presença de um estado único ou zero.

Se MSComm1.CDHolding = True Então (se for um então…)

Se MSComm1.CDHolding = False Então (se zero então…)

Transmitindo o código ASCII de um caractere ou string para a saída Tx(3):

MSComm1.Output = "A"

Números

MSComm1.Output = número de Chr(10) pode variar de 0 a 255

Ao escrever tal comando em um temporizador e alterar o número ou símbolo, você pode criar modulação PWM. Mais detalhes sobre os comandos podem ser encontrados baixando a descrição do controle  Microsoft Comm Control.

Agora, com esse código, você pode escrever vários programas para coletar dados. Por exemplo: voltímetro, amperímetro, medidor de temperatura, osciloscópio simples, salva dados em um arquivo. As medições podem ser realizadas uma vez a cada 1 ms ou uma vez por hora e dia, monitorando assim processos de longo prazo.

Para trabalhar com tensões alternadas (passando por 0), bem como para ampliar os limites de medição, é necessário um amplificador de entrada, cujo circuito pode ser retirado de [1]. Para trabalhar com tensão de rede ou com dispositivos que não estejam isolados galvanicamente da rede, é necessário isolar opticamente o circuito do computador.

Operação ADC com porta COM, sistema de aquisição de dados simples

Operação ADC com porta COM, sistema de aquisição de dados simples

Baixe os códigos-fonte de programas de exemplo (8 kB)

Literatura

  1. Gell P. Como transformar um computador pessoal em um complexo de medição: Trad. do frag. - 2ª ed., rev. - M.: DMK Press, 2001. - 144 p.: il.
  2. An P. Interface de um PC com dispositivos externos: Trad. do inglês - M.: DMK Press, 2001 - 320 pp.: il.
  3. Visual Basic 6.0: Trans. do inglês - São Petersburgo: BHV - São Petersburgo, 2000. - 992 pp.: il.

Autor: =ShooRooP=, evei [cão] mail.ru; Publicação: cxem.net

Veja outros artigos seção informática.

Leia e escreva útil comentários sobre este artigo.

<< Voltar

Últimas notícias de ciência e tecnologia, nova eletrônica:

Máquina para desbastar flores em jardins 02.05.2024

Na agricultura moderna, o progresso tecnológico está se desenvolvendo com o objetivo de aumentar a eficiência dos processos de cuidado das plantas. A inovadora máquina de desbaste de flores Florix foi apresentada na Itália, projetada para otimizar a etapa de colheita. Esta ferramenta está equipada com braços móveis, permitindo uma fácil adaptação às necessidades do jardim. O operador pode ajustar a velocidade dos fios finos controlando-os a partir da cabine do trator por meio de um joystick. Esta abordagem aumenta significativamente a eficiência do processo de desbaste das flores, proporcionando a possibilidade de adaptação individual às condições específicas do jardim, bem como à variedade e tipo de fruto nele cultivado. Depois de testar a máquina Florix durante dois anos em vários tipos de frutas, os resultados foram muito encorajadores. Agricultores como Filiberto Montanari, que utiliza uma máquina Florix há vários anos, relataram uma redução significativa no tempo e no trabalho necessários para desbastar flores. ... >>

Microscópio infravermelho avançado 02.05.2024

Os microscópios desempenham um papel importante na pesquisa científica, permitindo aos cientistas mergulhar em estruturas e processos invisíveis aos olhos. Porém, vários métodos de microscopia têm suas limitações, e entre elas estava a limitação de resolução ao utilizar a faixa infravermelha. Mas as últimas conquistas dos pesquisadores japoneses da Universidade de Tóquio abrem novas perspectivas para o estudo do micromundo. Cientistas da Universidade de Tóquio revelaram um novo microscópio que irá revolucionar as capacidades da microscopia infravermelha. Este instrumento avançado permite ver as estruturas internas das bactérias vivas com incrível clareza em escala nanométrica. Normalmente, os microscópios de infravermelho médio são limitados pela baixa resolução, mas o desenvolvimento mais recente dos pesquisadores japoneses supera essas limitações. Segundo os cientistas, o microscópio desenvolvido permite criar imagens com resolução de até 120 nanômetros, 30 vezes maior que a resolução dos microscópios tradicionais. ... >>

Armadilha de ar para insetos 01.05.2024

A agricultura é um dos sectores-chave da economia e o controlo de pragas é parte integrante deste processo. Uma equipe de cientistas do Conselho Indiano de Pesquisa Agrícola-Instituto Central de Pesquisa da Batata (ICAR-CPRI), em Shimla, apresentou uma solução inovadora para esse problema: uma armadilha de ar para insetos movida pelo vento. Este dispositivo aborda as deficiências dos métodos tradicionais de controle de pragas, fornecendo dados sobre a população de insetos em tempo real. A armadilha é alimentada inteiramente por energia eólica, o que a torna uma solução ecologicamente correta que não requer energia. Seu design exclusivo permite o monitoramento de insetos nocivos e benéficos, proporcionando uma visão completa da população em qualquer área agrícola. “Ao avaliar as pragas-alvo no momento certo, podemos tomar as medidas necessárias para controlar tanto as pragas como as doenças”, diz Kapil ... >>

Notícias aleatórias do Arquivo

Bateria nuclear confiável 19.01.2014

O estudante de pós-graduação da Universidade Politécnica de Tomsk (TPU) Dmitry Prokopiev desenvolveu uma bateria nuclear que pode funcionar de forma estável e sem recarga por cerca de 12 anos e ser usada em medicina, equipamentos militares e espaço.

"Um detector 3D de arseneto de gálio é colocado em uma caixa selada cheia de trítio, que converte a energia das partículas beta emitidas pelo trítio em corrente elétrica. Um grande número de poços é criado no detector. A superfície total dos poços é de centenas de vezes maior que a área do detector e, devido a isso, uma bateria nuclear pode ser eficaz", disse Prokopyev a repórteres.

O estudante de pós-graduação observou que são conhecidas baterias nucleares desse tipo, onde é usado um detector de silício. "Mas o detector de silício se degrada (perde suas propriedades sob a influência da radiação) durante seu uso (o silício não é um material resistente à radiação)", explicou o jovem cientista.

Prokopiev acrescentou que a potência de sua bateria é muito menor do que as baterias convencionais, mas pode funcionar sem recarga por 12 anos - essa é a meia-vida do trítio. Durante esse tempo, uma bateria com detector de arsenieto de gálio manterá seus parâmetros, enquanto os parâmetros de uma bateria com detectores de silício começam a se deteriorar já três anos após o início dos trabalhos, explicou o autor do desenvolvimento.

Protótipos de detectores, que são a base desta bateria, foram testados com sucesso no Instituto de Física Nuclear de Novosibirsk, em homenagem a Budker, e no Instituto Siberiano de Física e Tecnologia da Universidade Estadual de Tomsk.

Prokopiev observou que essa bateria pode ser usada em vários dispositivos eletrônicos que consomem uma pequena corrente, mas são forçados a funcionar sem substituir as fontes de energia por uma década, por exemplo, em marca-passos.

Outras notícias interessantes:

▪ O motorista não vai adormecer na estrada

▪ Estação de carregamento rápido 300 kW

▪ Nova aplicação para o motor a hidrogênio

▪ amplificador de potência estéreo soulution 511

▪ O Galaxy Note é controlado com uma mão

Feed de notícias de ciência e tecnologia, nova eletrônica

 

Materiais interessantes da Biblioteca Técnica Gratuita:

▪ seção do site Suas histórias. Seleção de artigos

▪ Artigo Pressão atmosférica. História e essência da descoberta científica

▪ Como um camaleão pega sua presa? Resposta detalhada

▪ artigo Organização do controle sobre o estado da proteção do trabalho na organização

▪ artigo Aplicação de ADC KR572PV5. Enciclopédia de rádio eletrônica e engenharia elétrica

▪ artigo Bocal e cigarro. Segredo do foco

Deixe seu comentário neste artigo:

Имя:


E-mail opcional):


Comentário:





Todos os idiomas desta página

Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site

www.diagrama.com.ua

www.diagrama.com.ua
2000-2024