Você está na página 1de 5

SOFTWARE

INTERFACEAMENTO UTILIZANDO
INTERFACEAMENTO
A LINGUAGEM PASCAL
PASCAL
Celso Eduardo Vieira Oliveira
Centro Universitário Salesiano de São Paulo

A interface é um circuito responsável por conectar o computa-


dor ao ambiente externo. É ela quem interliga o computador a qual-
quer dispositivo (placa ou máquina), de tal forma que possamos
utilizar o computador para controlar ou interpretar dados do meio
exterior.
Por exemplo, se quisermos construir um braço mecânico con-
trolado por computador, necessitamos de uma linguagem de pro-
gramação (por exemplo Pascal), do hardware, da placa de interface
e então da parte mecânica desse braço. Todo comando dado pelo
computador será enviado para a interface, que irá adequar esse Figura 1 - Representação da interface.

sinal e acionar alguma parte desse braço.


construtivas diferentes, optaremos
pela utilização da Porta Paralela, que
Nor malmente construímos a das portas paralelas (conexão da impres- permite a construção de nossos obje-
interface e o dispositivo externo de sora) ou seriais (conexão do mouse). tivos por um caminho mais simples,
acordo com nossas necessidades. A interface ideal seria a soma das rápido e eficiente. A conexão por por-
Já a ligação entre o computador e vantagens das duas. Como isso não ta serial é recomendável apenas em
a interface, podemos realizar através existe pois ambas são de arquiteturas casos de longas distâncias PC à
Interface e em ambientes extrema-
mente ruidosos. A maioria das máqui-
nas que estão nessas condições, já
possuem a sua interface, seu proto-
colo e sua programação prontos e
comercializados juntos com a máqui-
na, pelos motivos expostos na tabela
acima. Atualmente, voltaram a ser
fabricadas algumas portas paralelas
bidirecionais (8 vias de entrada de
dados + 8 vias de saída de dados)
chamadas de SPP e EPP (utilizados
em alguns modelos de Scanner), o
que melhora, e em muito, o uso da
porta paralela.
Para a área de Mecatrônica é sem-
pre interessante podermos trabalhar
Tabela 1 - Vantagens e desvantagens das portas serial e paralela.
com tecnologias novas e que permi-
tam a criação ou aperfeiçoamento de

58 MECATRÔNICA ATUAL Nº1/OUTUBRO-NOVEMBRO/2001


SOFTWARE

Tabela 2 - Descrição das pinagens da porta paralela.

dispositivos elétricos ou eletro-mecâ- O conector utilizado é o padrão DB- CIRCUITOS PARA INTERFACE VIA
nicos. Em função disso que iniciaremos 25 ou DB-9, ambos tipo macho. A ta- PORTA PARALELA
nosso estudo em interfaceamento. bela 3 mostra a pinagem da porta
serial. Lembre-se que alguns PCs tem Circuito de teste
HARDWARE placa paralela bidirecional padrões
SPP ou EPP que podem facilitar al- Quando o circuito de teste (figura
Porta Paralela guns projetos!! Este artigo irá tratar 2) é acionado, cada pino de dado do
apenas da saída de dados do PC. computador (D0 a D7) fornece 5V, que
Descrição: A expressão paralela
significa que 8 bits (0 e 1) são envia-
dos simultaneamente. O conector é do
tipo fêmea padrão DB-25 e a numera-
ção vem escrita no conector.
A tabela 2 mostra a pinagem da
porta paralela.

Porta Serial

Descrição: Diferente da porta pa-


ralela, a serial envia 1 bit de cada vez
em uma velocidade programável. Isto
é particularmente útil na transmissão
através de um único cabo. A porta Tabela 3 - Descrição da pinagem da porta serial.
serial opera na padrão RS-232 C.

MECATRÔNICA ATUAL Nº1/OUTUBRO-NOVEMBRO/2001 59


SOFTWARE

cada bobina do relé, conforme


mostra a figura 4. O diodo utilizado
poderá ser 1N4001 ou equivalente.
Observe que a alimentação da car-
ga é independente, de tal forma que
poderá ser acionado qualquer tipo de
circuito ou componente alimentado
com qualquer valor de tensão alterna-
da ou contínua.

Lista de materiais:

8 resistores de 470 Ω até 1KΩ;


Figura 2 - Circuito de teste.
8 transistores de uso geral BC 548
ou equivalente;
irá acender o LED. Observe que cada o transistor ficará cortado, não deixan- 8 relés;
pino poderá comandar um LED inde- do passar corrente entre o Coletor e o 1 fonte de tensão contínua ou ba-
pendente de outro pino. O sinal no pino Emissor. Nesse caso, não circulará teria para alimentação dos relés.
é apenas 5V ou 0V (Sinal binário - bit). corrente pelo relé, que não comutará
seus contatos e portanto a carga (lâm- Projeto
Lista de materiais: pada, motor, qualquer outra placa ou
dispositivo) ficará desligada. O único componente que precisa-
8 resistores de 330 Ω; Quando o pino de dado do com- mos calcular é o relé. Os demais pos-
8 LEDs; putador fornecer 5V, haverá corrente suem uma função fixa, recebendo
1 conector DB-25 macho. de Base, que levará o transistor à sa- sempre o mesmo tipo de sinal. Para
turação. Quando o transistor está escolhermos o relé, seguiremos os
Da mesma forma que acendemos saturado, circulará uma corrente en- seguintes passos:
ou não um LED, poderemos coman- tre o Coletor e o Emissor, que irá 1. Escolha da Tensão Vcc que ali-
dar outras cargas, conforme o esque- energizar o relé. Quando o relé se mentará a bobina do relé : esta ten-
ma mostrado na figura 3. encontra energizado, seus contatos são não precisa ser igual à tensão apli-
comutam, acionando a carga. cada à carga e normalmente pode ser
Circuito de comutação de uma Quando retirarmos os 5V, voltamos 9V, 12V ou 24V, que são os valores
carga qualquer à condição inicial, e a carga será des- nos quais são comercializados os
ligada. relés.
Neste circuito (figura 3), cada transis- A fim de evitarmos a queima do 2. Em função do tipo da carga e do
tor é comandado por um dos pinos de transistor pelo efeito da Força Contra seu consumo calculamos a corrente
dados do PC (D0 a D7). Esses pinos irão Eletro-motriz, é recomendável a colo- que circulará pelo contato do relé.
fornecer 0V ou 5V. Quando fornecer 0V, cação de um diodo em paralelo com Lembrando que:

Figura 3 - Circuito de teste, com relés.

60 MECATRÔNICA ATUAL Nº1/OUTUBRO-NOVEMBRO/2001


SOFTWARE

utilizado individualmente ou se so- Programação


mando aos valores de outros pinos,
conforme tabela 4. O seguinte programa irá tratar in-
O valor 0 (zero) corresponde o to- dividualmente cada saída, podendo
dos os pinos com 0V. ligá-la ou desligá-la a qualquer instan-
O valor 255 corresponde a todos te através das teclas numéricas do
os pinos com 5V. teclado do PC. Esse programa pode
Podemos somar valores, como a ser utilizado para várias situações e
seguir: servir de base para a criação de pro-
PORT [$378] := 2+4; nesse caso gramas que melhor se adaptem à sua
estarão com 5V os pinos D1 e D2. necessidade:

Figura 4 - Circuito de teste, com diodo para


proteção. PROGRAM INTERFACE1; { nomeia o programa }
USES CRT, DOS; { permite a utilização dessas bibliotecas do }
{ Pascal }
I = P/V ou I = V/RL. { definição das variáveis }
O relé escolhido deverá ter uma VAR SAIDA, S1, S2, S3, S4, S5, S6, S7, S8 : INTEGER; {variáveis}
{ numéricas inteiras }
corrente de contato maior que a cor- OP : CHAR; { variável alfanumérica }
rente calculada da carga. H, M, S, CS : WORD; { variáveis numéricas inteiras }
O número de contatos do relé tam- { definição de pontos ou rótulos utilizados no programa }
bém deverão ser escolhidos em fun- LABEL INICIO, FIM, RESET;
ção da carga, sendo o relé normal-
BEGIN { início }
mente de 1 ou 2 contatos reversíveis RESET: { rótulo chamado RESET }
(NA + NF + C). PORT[$378]:=0; { desliga os oito pinos de dados da porta para }
{ lela }
SOFTWARE {pré definição de valores para início do programa }
COMANDO DO PASCAL SAIDA:=0;
S1:=0;
S2:=0;
Saída de Dados S3:=0;
S4:=0;
O comando é o PORT e o endere- S5:=0;
ço padrão da porta paralela é o $378. S6:=0;
S7:=0;
Exemplo : PORT [$378] := X;
S8:=0;
onde X é um valor decimal inteiro INICIO: { rótulo chamado INIÍCIO }
entre 0 e 255. PORT[$378]:=SAIDA; { transfere para os pinos de dados da porta}
No exemplo acima, o valor X será { paralela o valor contido na variável SAÍDA }
colocado nos pinos D0 a D7, sendo TEXTBACKGROUND (11); { ajusta cor de fundo da tela do PC }
TEXTCOLOR (1); { ajusta cor da letra da tela do PC }
antes convertido para binário pelo pró-
CLRSCR; { limpa a tela }
prio computador. Cada pino possui um
valor decimal próprio que poderá ser { Composição da tela do programa }
GOTOXY (20,2);WRITELN (‘1 -> CIRCUITO 1’);
GOTOXY (20,3);WRITELN (‘2 -> CIRCUITO 2’);
GOTOXY (20,4);WRITELN (‘3 -> CIRCUITO 3’);
GOTOXY (20,5);WRITELN (‘4 -> CIRCUITO 4’);
GOTOXY (20,6);WRITELN (‘5 -> CIRCUITO 5’);
GOTOXY (20,7);WRITELN (‘6 -> CIRCUITO 6’);
GOTOXY (20,8);WRITELN (‘7 -> CIRCUITO 7’);
GOTOXY (20,9);WRITELN (‘8 -> CIRCUITO 8’);
GOTOXY (20,10);WRITELN (‘9 -> RESET’);
GOTOXY (20,11);WRITELN (‘0 -> FIM’);
TEXTCOLOR (4);
GOTOXY (20,13);WRITELN (‘DIGITE SUA OPCAO : ‘);

GOTOXY (2,17);WRITELN (‘ESTADOS: S1 S2 S3 S4 S5 S6 S7 S8’);


GOTOXY (10,18);WRITELN (S1:5, S2:5, S3:5, S4:5, S5:5, S6:5,
S7:5, S8:5);
GOTOXY (60,17);WRITELN (‘PORTA PARALELA’);
GOTOXY (68,18);WRITELN (SAIDA);
Tabela 4 - Valores decimais correspondentes
a cada pino da porta paralela.

MECATRÔNICA ATUAL Nº1/OUTUBRO-NOVEMBRO/2001 61


SOFTWARE

{ Montagem do RELÓGIO } THEN BEGIN S7:=1;


REPEAT SAIDA := SAIDA+4; GOTO INICIO;
GETTIME (H,M,S,CS); S3:=1; END;
TEXTCOLOR (15); GOTO INICIO;
GOTOXY (60,23); WRITE END; IF (OP=’7') AND (S7=1)
(H:2); THEN BEGIN
IF M<10 IF (OP=’3') AND (S3=1) SAIDA := SAIDA-64;
THEN BEGIN THEN BEGIN S7:=0;
GOTOXY (62,23); WRITE SAIDA := SAIDA-4; GOTO INICIO;
(‘:0’,M:1); S3:=0; END;
END GOTO INICIO;
ELSE BEGIN END; { Liga/desliga PINO 9 - }
GOTOXY (62,23); WRITE { D7 }
(‘:’,M:2); { Liga/desliga PINO 5 - D3 } IF (OP=’8') AND (S8=0)
END; IF (OP=’4') AND (S4=0) THEN BEGIN
IF S<10 THEN BEGIN SAIDA := SAIDA+128;
THEN BEGIN SAIDA := SAIDA+8; S8:=1;
GOTOXY (65,23); WRITE S4:=1; GOTO INICIO;
(‘:0’,S:1); GOTO INICIO; END;
END END;
ELSE BEGIN
GOTOXY (65,23); WRITE IF (OP=’4') AND (S4=1) IF (OP=’8') AND (S8=1)
(‘:’,S:2); THEN BEGIN THEN BEGIN
END; SAIDA := SAIDA-8; SAIDA := SAIDA-128;
GOTOXY (68,23); WRITE S4:=0; S8:=0;
(‘:’,CS:2); GOTO INICIO; GOTO INICIO;
UNTIL KEYPRESSED; END; END;

GOTOXY (40,13);OP:= { Liga/desliga PINO 6 - } { Reseta o programa }


READKEY; { D4 } IF (OP=’9')
IF (OP=’5') AND (S5=0) THEN BEGIN
{ Liga/desliga PINO 2 - D0 } THEN BEGIN GOTO RESET;
IF (OP=’1') AND (S1=0) SAIDA := SAIDA+16; END;
THEN BEGIN S5:=1;
SAIDA := SAIDA+1; GOTO INICIO; { Finaliza o programa }
S1:=1; END; IF (OP=’0')
GOTO INICIO; THEN BEGIN
END; IF (OP=’5') AND (S5=1) GOTO FIM;
THEN BEGIN END;
IF (OP=’1') AND (S1=1) SAIDA := SAIDA-16;
THEN BEGIN S5:=0; IF (OP<>’0')
SAIDA := SAIDA-1; GOTO INICIO; THEN BEGIN
S1:=0; END; GOTO INICIO;
GOTO INICIO; END;
END; { Liga/desliga PINO 7 - }
{ D5 } FIM:END. { Fim do programa }
{ Liga/desliga PINO 3 - } IF (OP=’6') AND (S6=0)
{ D1 } THEN BEGIN
IF (OP=’2') AND (S2=0) SAIDA := SAIDA+32;
THEN BEGIN S6:=1;
SAIDA := SAIDA+2; GOTO INICIO; Observações Finais
S2:=1; END;
GOTO INICIO; Ao pressionarmos a tecla 1 do te-
END; IF (OP=’6') AND (S6=1) clado a saída D0 da porta paralela será
THEN BEGIN ligada. Ao teclarmos a tecla 1, nova-
IF (OP=’2') AND (S2=1) SAIDA := SAIDA-32;
THEN BEGIN S6:=0; mente, a saída D0 da porta paralela
SAIDA := SAIDA-2; GOTO INICIO; será desligada. E assim sucessiva-
S2:=0; END; mente, até a tecla 8 que comanda a
GOTO INICIO; saída D7. O software utilizado foi o
END; { Liga/desliga PINO 8 - } Borland Pascal 6.0. Esse programa fun-
{ D6 }
{ Liga/desliga PINO 4 -} IF (OP=’7') AND (S7=0) ciona em qualquer PC 286 ou superior,
{ D2 } THEN BEGIN com o Pascal 6.0 ou superior. O códi-
IF (OP=’3') AND (S3=0) SAIDA := SAIDA+64; go-fonte está disponível no endereço
http://www.mecatrônicaatual.com.br/
downloads. l

62 MECATRÔNICA ATUAL Nº1/OUTUBRO-NOVEMBRO/2001

Você também pode gostar