Olá! Venho, neste meu primeiro “artigo” se é que esse pequeno texto pode ser chamado assim, falar um pouco sobre a porta paralela e como criar um programa que a controle. Isso pode ser considerado de suma importância para a indústria de impressoras (e não achem que isso vale pouco, estima-se que o líquido mais caro do mundo atualmente seja a tinta para impressora), além de ser também utilizado para controle de processos automatizados.
Como pode ser visto acima, a porta paralela do computador tem 25 plugs fêmeas e o conector da impressora 36, isso se deve ao fato de que existem vários fios terra (signal ground), que se estabilizam em 0 volt e que na maioria dos casos pode ser repetida, e também à existência de plugs sem sinal, como é o caso dos plugs 34 e 35. Mas isso, num primeiro estudo, portanto de natureza superficial, não vem ao caso.
Acima temos uma tabela com a equivalência entre os pinos.
Para que o programa consiga controlar a porta paralela é necessário que ele possua uma interface de comunicação com ela, e isso é feito através da biblioteca inpout32.dll que pode ser baixada neste link: http://www.dll-files.com/dllindex/dll-files.shtml?inpout32
De posse do DLL podemos iniciar a construção do programa. Devemos fazer isso criando um módulo, que servirá para declararmos os comandos que serão utilizados para controlar a biblioteca.
Em vb.net isso ficará basicamente assim:
Module mInpout32 Public Enum PortasData = &H378S
Status = &H379S
Control = &H37AS
End Enum Public Declare Auto Function PortInp Lib “Inpout32.dll” Alias “Inp32″ (ByVal PortAddress As Portas) As Short Public Declare Auto Sub PortOut Lib “Inpout32.dll” Alias “Out32″ (ByVal PortAddress As Portas, ByVal Value As Short) End Module
No exemplo citado, Portas ficou sendo o “conjunto” dos endereços da porta paralela, e esses endereços foram divididos em Data (pinos 2 a 9), Status (pinos 10 a 15, exceto o 14) e Control(pinos 1,14,16 e 17), seguindo a referência obtida no site www.codeproject.com:
[Data Port] Addres: 0×378H or in VB Express &H378S [Status Port] Addres: 0×379H or in VB Express &H379S [Control Port] Addres: 0×37AH or in VB Express &H37ASAinda no exemplo citado, foi declarada uma função automática PortInp e outra PortOut, que receberão e mandarão respectivamente sinais para a saída da porta paralela, o que dependerá apenas do tipo de saída (data, status ou control) e do número da porta.
É preciso falar ainda que quando mandamos um sinal para alguma porta, o número que deve ser enviado não é o número da porta e sim 2 elevado a esse número. Num primeiro instante isso pode parecer burocracia fajuta, mas isso possibilita que mandemos sinal para mais de uma porta de uma vez só, e basta somar algebricamente os números, por exemplo, para ativarmos um sinal nas portas data 0 e data 1, basta utilizarmos o comando PortOut(Portas.Data, 3) , sendo 3 a soma de 2^0 = 1 e 2^1 = 2.
Com isso podemos criar desde programas simples que fazem acender e apagar leds até programas complexos que controlam uma impressora ou um braço robótico.
Referências: http://www.dll-files.com/ http://www.rogercom.com/ http://www.codeproject.com/ http://www.macoratti.net/Popularity: 4% [?]




This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.