Passo 1 - Instalar o Driver UserPort
Driver para acessar a Porta Paralela no Windows 2000 e XP (SP1 e SP2)
Clique aqui
Passo 2 - Use no cabeçalho na parte de códigos do Builder
#include <windows.h>
Esse include é uma biblioteca necessária para rodar o programa
Passo 3 - Depois de "TForm1 *Form1;" coloque o código:
void outportb(UINT portid,
BYTE value)
{
__asm mov edx,portid
__asm mov al,value
__asm out dx,al
}
COMEÇANDO O PROGRAMA
O primeiro passo, que realizamos foi definir a função de cada comando e quantos botões serão necessário para realizar a tarefa desejada
Após a definição chegamos ao resultado de 8 botões.
6 botões para realizar os movimentos: Frente, Trás, Esquerda, Direita, Cima, Baixo,
1 botão para acionar a bomba.
e mais 1 botão para desligar o comando que está acionado " OFF "
O layout do programa feito no Builder:
A imagem no centro do progama, é referente a captação da imagem da Webcam, que passa diretamente ao Builder C ++.
Para acionar os botões utilizamos o comando outportb(0x378, Y )
Onde Y corresponde ao pino que desejamos enviar um sinal através da porta paralela, dessa forma acionando ao relê do circuito, e conseqüentemente aos motores DC.
Ex: D0 = 1, D1 = 2, D2= 4
As linhas de código referente ao acionamento dos botões são:
void __fastcall TForm1::FrenteClick(TObject *Sender)
{
outportb(0x378,20);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrasClick(TObject *Sender)
{
outportb(0x378,40);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EsquerdaClick(TObject *Sender)
{
outportb(0x378,24);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DireitaClick(TObject *Sender)
{
outportb(0x378,36);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CimaClick(TObject *Sender)
{
outportb(0x378,1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BaixoClick(TObject *Sender)
{
outportb(0x378,2);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EscovaClick(TObject *Sender)
{
outportb(0x378,128);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BombaClick(TObject *Sender)
{
outportb(0x378,64);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OFFClick(TObject *Sender)
{
outportb(0x378,0);
}
Para acionar os botões utilizamos o comando outportb(0x378, Y )
Onde Y corresponde ao pino que desejamos enviar um sinal através da porta paralela, dessa forma acionando ao relê do circuito, e conseqüentemente aos motores DC.
Ex: D0 = 1, D1 = 2, D2= 4
As linhas de código referente ao acionamento dos botões são:
void __fastcall TForm1::FrenteClick(TObject *Sender)
{
outportb(0x378,20);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrasClick(TObject *Sender)
{
outportb(0x378,40);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EsquerdaClick(TObject *Sender)
{
outportb(0x378,24);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DireitaClick(TObject *Sender)
{
outportb(0x378,36);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CimaClick(TObject *Sender)
{
outportb(0x378,1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BaixoClick(TObject *Sender)
{
outportb(0x378,2);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EscovaClick(TObject *Sender)
{
outportb(0x378,128);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BombaClick(TObject *Sender)
{
outportb(0x378,64);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OFFClick(TObject *Sender)
{
outportb(0x378,0);
}