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.