Este artigo é sobre como ligar um LED(Light Emitting Diode) com a porta paralela, o objectivo desta experiência é conseguir passar algo do mundo virtual para o mundo real.
Apesar deste artigo não ser um tutorial(há muitos), vou tentar mostrar o possível para quem quiser, tentar fazer.
< Download(Linux) >
O porque de ter escolhido a porta paralela e não outra como a USB, deveu-se quando pensei em fazer este mini-projecto, ter encontrado 3 opções: utilizar uma plataforma comercial(ex. Arduino) que é bastante acessível; a segunda opção era fazer um circuito(de raiz) com uma ligação USB, para mim esta opção é economicamente inviável; a ultima, e a que vou seguir, é utilizar uma porta antiga(paralela) que não necessita de ter um micro-controlador para ler/escrever os dados, apesar da porta paralela não estar desenhada para ser usada deste modo, não há problema para este tipo de experiência.
PARTE 1 – O Hardware.

Como o meu computador principal não têm porta paralela, “desenterrei” um portátil com alguns anos(1998) que é impecável para estas coisas.

O conector foi reciclado de um cabo retirado a um PC antigo, este estava cheio de silicone(branco), levou algum tempo a expor os contactos interiores.


Soldei o terminal negativo(preto) no pino “G4” e o terminal positivo(vermelho) ao pino “D0”.


Soldei o terminal negativo(preto) a perna menor do LED e o terminal positivo(vermelho) a perna mais longa do LED.
PARTE 2 – O Software.
Usei a biblioteca “parport” para comunicar com a porta paralela, podes obter as instruções de utilização e fazer o download aqui.
O codigo Led_Proj.java …
import parport.ParallelPort;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Led_Proj {
public static void main(String[] args){
ParallelPort lpt1 = new ParallelPort(0x378);
String s = "n";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true){
// Input
System.out.println("Ligar, Desligar ou Sair?(l/d/s)");
try{
s = br.readLine();
}catch(Exception e){}
if(s.equals("l")){
// Liga o Led
lpt1.write(0x1);
System.out.println("Led Ligado!");
try{
Thread.sleep(1000);
}catch(Exception e){}
}else if(s.equals("d")){
// Desliga o Led
lpt1.write(0x8);
System.out.println("Led Desligado!");
try{
Thread.sleep(1000);
}catch(Exception e){}
}else if(s.equals("s")){
lpt1.write(0x8);
System.exit(0);
}
}
}
}
Notas Finais
Este artigo pode conter alguns erros, sugestões e/ou comentários são sempre bem vindos. Obrigado.
