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

Outra vida da porta LPT. Parte 2. 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

Para gravar sinais na porta LPT, recomendo montar um circuito (Fig. 1) composto por oito chaves e oito resistores com resistência de 270 Ohm - 1 kOhm. Com esta posição das chaves (botões) SW1-SW8, há um "1" lógico em todos os contatos superiores, quando qualquer um estiver fechado, aparecerá um "0" lógico no contato correspondente. Os pinos podem ser conectados diretamente ao barramento D0-D7 (pinos 2-9, endereço &H378) ou a ERROR, SELECT, PAPER END, ACK e -BUSY (pinos 15, 13, 12, 10 e 11, endereço &H379) .

Outra vida da porta LPT
Fig. 1

Para exibir dados provenientes da porta LPT, recomendo o seguinte esquema.

Outra vida da porta LPT
Fig. 2

Resistores R1-R8 com valor nominal de 270 - 330 ohms, qualquer LED, digamos AL307B. Tal circuito não requer energia, tudo vai brilhar de qualquer maneira. Eu trouxe todos os sinais para mim, tudo é imediatamente visível. Em geral, recomendo fortemente o download do programa LPT 3D HARD Analyzer em valery-us4leh.narod.ru/dlpt.html. Escrito por Valery Kovtun. Com a ajuda deste programa ... em geral, você verá por si mesmo.

Vamos montar um gerador de pulso retangular em um chip K561LA7. Gerador de energia + 5V. O fato é que é mais conveniente montar todos os aparelhos, por exemplo, nas séries 155, 555, para que os sinais tenham nível TTL. Lógica "zero" 0-0,8V e log "um" 2,4-4,2V. A conveniência da série 561 reside na versatilidade da fonte de alimentação - funciona igualmente bem de + 3V a + 12V. Portanto, a escolha dos microcircuitos fica a seu gosto, a única questão é obter pulsos retangulares com amplitude não superior a + 5V. Um diagrama de um gerador de pulso simples é mostrado na Figura 3.

Outra vida da porta LPT
Fig. 3

O próprio gerador é montado nos elementos D1.1-D1.3, e simplesmente usei o elemento D1.4 para frentes mais "bonitas" dos pulsos de saída. R1, R2, C1 - elementos de configuração de frequência. Com esses parâmetros dos elementos, a frequência de geração é de aproximadamente 5-7 Hz. Para maior clareza, a operação do gerador pode ser representada na forma do seguinte gráfico:

Outra vida da porta LPT
Fig. 4

A saída D1.4 do inversor é conectada ao pino 2 do conector LPT (barramento D0). Antes de usar o gerador, é necessário colocar o barramento D0-D7 no modo de recepção de dados. Para fazer isso, enviamos 37 para &H43A.
O código é o seguinte. Para quem usa
input32.dll dlportio.dll DOS
Out&H37A, 43 DlPortWritePortUchar &H37A, 43 OUT&H37A, 43

Depois disso, começamos a pesquisar a porta &H378.
O código é o seguinte. Para quem usa
input32.dll dlportio.dll DOS
DimA como IntegerA = Inp(&H378) Dim A como IntegerDlPortReadPortUchar(&H378) DEFINIDO A-ZA=INP(&H378)

Variável A terá o valor 254 ou 255. Por quê?
D0 D1 D2 D3 D4 D5 D6 D7  
20 21 22 23 24 25 26 27  
1 2 4 8 16 32 64 128  
1 1 1 1 1 1 1 1 255
0 1 1 1 1 1 1 1 254

O fato é que depois que os barramentos D0-D7 são comutados para o modo de recepção de dados, eles são definidos para um nível de unidade lógica (linha amarela).

Quando o nível D0 aparece no barramento D0, o log "0" (linha azul) - o primeiro bit assume o valor zero, o que significa 2 + XNUMX1+22+23+24+25+26+27 = 254.

Assim, podemos rastrear a alteração do sinal no barramento D0, mas se contarmos o número de alterações em 1 segundo, obteremos ... certo - um contador de frequência digital. sabendo número impulsos de entrada por segundo pode ser dito sobre frequência em hertz.

Então, o programa de contador de frequência. O formulário deve ter 3 botões e um Label. Botão 1 iniciar medidor de frequência, Botão 2 parar, Botão 3 - sair, Etiqueta - indica a frequência.

*******************************************

Para aqueles que usam inpout32.dll

Opção explícita

'declaração de biblioteca para trabalhar com endereços de porta

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

Private Declare Sub Out Lib "inpout32.dll" Alias ​​​​"Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

'declaração de biblioteca para contar milissegundos

Função de declaração privada GetTickCount Lib "kernel32" () Contanto

Dim FTV As Long ' valor inicial da hora do sistema

Dim STV As Long ' valor final da hora do sistema

Dim FV As Integer 'FV é o estado inicial da porta

Dim SV As Integer 'Estado de porta comparável a SV

Dim cntr 'contador de pulso

Dim J As Integer 'J=1 contagem permitida, J=0 contagem não permitida

Private Sub Command1_Click ()

Fora & H37A, 43 'colocamos os pneus D0-D7 em modo de leitura

FTV = GetTickCount 'lembrou o tempo do sistema em milissegundos

J = 1 'contagem - permitir

FV = Inp(&H378) 'leia o status da porta

SV = FV 'SV é igual ao estado da porta

cntr = 0 'contador a zero

Faça enquanto J <> 0

DoEvents

STV = GetTickCount 'lembra a hora atual do sistema

If STV > FTV + 1000 Then FrequencyShow 'se um segundo se passou, exibe o resultado

FV = Inp(&H378) 'pesquisa constantemente o endereço &H378

If FV <> SV Then 'se o estado da porta mudou

SV = FV 'SV é igual ao estado da porta

cntr = cntr + 0.5' contador + 0.5

Se acabar

If J = 0 Then Exit Do 'se o usuário pressionou Stop

laço

End Sub

Private Sub Command2_Click ()

'parar loop

'se o usuário pressionou Parar

J=0

End Sub

Private Sub Command3_Click ()

J = 0 'contar - parar

Out &H37A, 0 'restaurar estado do barramento D0-D7

Descarregue-me 'sair do programa

End Sub

'Rotina de exibição de frequência

Public SubFrequencyShow()

Label1.Caption = Int(cntr) & " Hz" 'exibe o resultado

cntr = 0 'contador a zero

Pausa (0.2) 'atraso. Necessário para medir baixas frequências

FTV = GetTickCount 'lembrou o tempo do sistema em milissegundos

End Sub

'Rotina de atraso. Formato de chamada: Pausa (número de segundos)

Subpausa pública (valor como único)

Começar escuro, terminar

Iniciar = Temporizador

Temporizador Do While < Iniciar + Valor

DoEvents

laço

Terminar=Temporizador

End Sub

*******************************************

Para quem usa dlportio.dll

Opção explícita

'declaração de biblioteca para trabalhar com endereços de porta

Função de declaração privada DlPortReadPortUchar Lib "dlportio.dll" (ByVal Port As Long) As Byte

Private Declare Sub DlPortWritePortUchar Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Byte)

'declaração de biblioteca para contar milissegundos

Função de declaração privada GetTickCount Lib "kernel32" () Contanto

Dim FTV As Long ' valor inicial da hora do sistema

Dim STV As Long ' valor final da hora do sistema

Dim FV As Integer 'FV é o estado inicial da porta

Dim SV As Integer 'Estado de porta comparável a SV

Dim cntr 'contador de pulso

Dim J As Integer 'J=1 contagem permitida, J=0 contagem não permitida

Private Sub Command1_Click ()

DlPortWritePortUchar &H37A, 43 'colocar barramentos D0-D7 em modo de leitura

FTV = GetTickCount 'lembrou o tempo do sistema em milissegundos

J = 1 'contagem - permite

FV = DlPortReadPortUchar (&H378) 'lê o estado da porta

SV = FV 'SV é igual ao estado da porta

cntr = 0 'contador a zero

Faça enquanto J <> 0

DoEvents

STV = GetTickCount 'lembra a hora atual do sistema

If STV > FTV + 1000 Then FrequencyShow 'se um segundo se passou, exibe o resultado

FV = DlPortReadPortUchar (&H378) 'pesquisa constantemente o endereço &H378

If FV <> SV Then 'se o estado da porta mudou

SV = FV 'SV é igual ao estado da porta

cntr = cntr + 0.5' contador + 0.5

Se acabar

If J = 0 Then Exit Do 'se o usuário pressionou Stop

laço

End Sub

Private Sub Command2_Click ()

'parar loop

'se o usuário pressionou Parar

J=0

End Sub

Private Sub Command3_Click ()

J = 0 'contar - parar

DlPortWritePortUchar &H37A, 0 'restaurar estado do barramento D0-D7

Descarregue-me 'sair do programa

End Sub

'Rotina de exibição de frequência

Public SubFrequencyShow()

Label6.Caption = Int(cntr) & " Hz" 'exibe o resultado

cntr = 0 'contador a zero

Pausa (0.2) 'atraso. Necessário para medir baixas frequências

FTV = GetTickCount 'lembrou o tempo do sistema em milissegundos

End Sub

'Rotina de atraso. Formato de chamada: Pausa (número de segundos)

Subpausa pública (valor como único)

Começar escuro, terminar

Iniciar = Temporizador

Temporizador Do While < Iniciar + Valor

DoEvents

laço

Terminar=Temporizador

End Sub

*******************************************

E tudo? Você pergunta. Sim, isso é tudo. Esse é todo o programa, que por algum motivo funciona.

Ø Como você pode ver, o código é quase o mesmo para bibliotecas diferentes, portanto, nos exemplos a seguir, consideraremos o código apenas com a biblioteca dlportio.dll

Se você analisar cuidadosamente o código do programa do contador de frequência, notará que 0.5 é adicionado ao contador,

centro = centro + 0.5,

e não 1. O fato é que este código de programa considera a transição do estado da porta de 1 para 0 e vice-versa de 0 para 1, portanto, para contar a frequência, você deve adicionar 0.5 e, em seguida, emitir

Label1.Caption = Int(cntr) & "hz"

Ou adicione 1

centro = centro + 1,

E então saída

Label1.Caption = Int(cntr/2) & "hz"

Aqui está a matemática.

A propósito, você já tentou colocar algum tipo de sensor no eixo rotativo de algum motor? Provavelmente, com a ajuda deste programa, você obterá um maravilhoso tacômetro J

Bem, vamos seguir em frente.

Pegamos o mesmo gerador de pulsos e em vez do resistor R2 ou R1 soldamos o termistor (o autor do artigo foi a uma oficina mecânica e comprou um sensor de temperatura de um VAZ-30 por 2101 rublos). Este sensor de temperatura muda sua resistência dependendo da temperatura (3200 ohms em +140C e 143 Ohm a uma temperatura de +1000C.) Como mudamos a resistência, a frequência do gerador também muda, o que significa que obtemos um conversor temperatura-frequência, ou seja termômetro digital. Quero chamar a atenção para o fato de que a variação da resistência em função da temperatura não ocorre de forma linear, como pode ser observado no gráfico a seguir,

Outra vida da porta LPT
Fig. 5

portanto, "explicar" ao computador que 100 pulsos são 20 graus e 110 pulsos são 21 graus não será muito fácil, mas ainda assim possível. A questão está apenas no tamanho do código e do algoritmo.

Se, em vez de um resistor, colocarmos um sensor de combustível do tanque de gasolina, obteremos um indicador de nível de líquido. É mais conveniente construir esse indicador da seguinte maneira:

1. Medimos a frequência de pulso com um tanque vazio

2. Adicionamos algum volume (dependendo da gradação - precisão que você deseja obter) e medimos novamente a frequência

3. E assim por diante até o topo do seu recipiente.

E você pode construir um indicador de nível de líquido de acordo com um princípio diferente, se montar a estrutura da figura abaixo.

Outra vida da porta LPT
Fig. 6

Se o nível do líquido mudar, a posição da bóia com o ímã também muda, de modo que os interruptores reed correspondentes fecham (abrem). É melhor usar um tubo de plástico de parede fina. O esquema deste dispositivo é o seguinte:

Outra vida da porta LPT
Fig. 7

Você pode processar informações de tal dispositivo de acordo com o seguinte algoritmo.

  1. Coloque os barramentos no endereço &H378 no modo de leitura.
  2. Tanque vazio - 255
  3. Uma divisão do fundo - 254
  4. Duas divisões do fundo - 252
  5. Três divisões - 248
  6. Quatro divisões - 240
  7. Cinco divisões - 224, etc.

Ø Alguns podem objetar a mim que não é necessário colocar os barramentos D0-D7 no modo de leitura, e isso funcionará. A isso só posso responder o seguinte - quem quiser, não traduza. Não vou discutir este assunto. Se a porta &H378 não estiver no modo de recebimento de dados e o pino usado (no nosso caso 2 - D0 ) tiver um "1" lógico, então gerador não funciona. A corrente de saída do barramento D0-D7 no modo de transferência de dados é maior que a corrente de saída do chip CMOS (561LA7), portanto não haverá geração. Obviamente, se você curto-circuitar o contato com o solo com uma pinça, nenhuma corrente será suficiente. Mas me parece que não é difícil digitar uma linha extra de código e fazer o que os desenvolvedores de hardware de computador aconselham.

Vamos agora considerar o processo inverso, ou seja, o processo de transferência de dados de um computador para o seu dispositivo. Vamos pegar por exemplo o mesmo gerador de pulsos, apenas mude um pouco o seu circuito.

Outra vida da porta LPT
Fig. 8

Depois de aplicar energia ao gerador, descobrimos repentinamente que o gerador não está funcionando. E funcionará somente quando o nível lógico "2" aparecer na entrada 1.1 do elemento D1.

DlPortWritePortUchar &H378, 1

E tudo funcionou imediatamente. Aqui está um gerador controlado por computador. Bem, o gerador é todo pequeno, embora devamos prestar homenagem a este dispositivo - em tantos circuitos eletrônicos, é o gerador de pulsos que é tomado como base. Por que não conectamos algo mais sério ao computador?

Aqui está esse esquema

Outra vida da porta LPT
Fig. 9

Conectamos a entrada deste dispositivo a qualquer saída que desejarmos, por exemplo, a D3, conectamos a entrada GND ao fio comum do conector, mas + 12V terá que ser retirado de uma fonte de alimentação separada. O relé pode ser levado de automóvel. Em geral, todos os parâmetros dos elementos podem ser completamente diferentes (peguei o que tinha em mãos)

DlPortWritePortUchar &H378, 8

ou

DlPortWritePortUchar &H378, 9

ou

DlPortWritePortUchar &H378, 10

O principal é que deve haver um log "3" no barramento D1. O relé funcionará, mas o que você pegar nele é problema seu. Em geral, ao trocar dispositivos de alta tensão, é necessário (apenas no caso) se proteger de curtos-circuitos, de avarias ao caso, em geral, para fazê-lo. Para que em caso de acidente sua maravilhosa porta LPT não queime. Portanto, para tais conexões é conveniente usar o isolamento galvânico da porta e do seu dispositivo, por exemplo, por meio de um optoacoplador.

Outra vida da porta LPT
Fig. 10

Se tudo no seu aparelho "queimar", então pela luz - infelizmente, a corrente não vai passar, eles ainda não inventaram isso.

Aqui termina a segunda parte. Haverá uma terceira parte - acho que sim, mas é sobre isso ...

Autor: Alexey Klyushnikov, Ivanovo; 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

Eewrite Janus tablet com E Ink e telas LCD 09.05.2019

Eewrite anunciou o tablet Janus. O tablet é equipado com uma tela LCD colorida de 9,7 polegadas com resolução de 2408 x 1536 pixels e uma tela E Ink Carta com a mesma diagonal e resolução de 1200 x 825 pixels. Suporte declarado para entrada de caneta digital Wacom (4096 níveis de sensibilidade à pressão).

O Janus é baseado em um processador MediaTek MT8176 de seis núcleos com 2 GB de RAM, 32 GB de armazenamento flash e um slot para cartões de memória microSD de até 128 GB.

As especificações do dispositivo incluem Wi-Fi, Bluetooth, um receptor GPS, uma câmera de 8MP, uma bateria de 5000mAh, uma porta USB tipo C, um conector HDMI e alto-falantes estéreo. A espessura do corpo do comprimido é de 9,8 mm. O suporte opcional para 4G LTE também é relatado.

Além dos botões liga/desliga e volume localizados em um lado do corpo do tablet, do outro lado há um botão especial para alternar entre telas coloridas e preto e branco.

Em breve a novidade estará disponível para pré-venda ao preço de US$ 399.

Outras notícias interessantes:

▪ Vermes contra o envelhecimento

▪ Melhorando a qualidade do solo marciano

▪ TV impede bebês de aprender a falar

▪ Expressão de rosto de gato

▪ Os nanotubos repelem a água

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

 

Materiais interessantes da Biblioteca Técnica Gratuita:

▪ seção do site Descrições de cargos. Seleção de artigos

▪ artigo Rir, realmente, não é pecado de tudo que parece engraçado. expressão popular

▪ O que aconteceu nos EUA no século XNUMX? Resposta detalhada

▪ artigo Em serviço do painel de controle para receber sinais. Instrução padrão sobre proteção do trabalho

▪ artigo Dicas tecnológicas. Enciclopédia de rádio eletrônica e engenharia elétrica

▪ artigo Estabilizador de tensão para 35 volts. Enciclopédia de rádio eletrônica e engenharia elétrica

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