Categorias
Java Led Linux Porta Paralela

Digital para Analógico – 1 – Controlando LED com a porta paralela.

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.