A operação de "Casas Inteligentes" tem atraído a atenção de engenheiros e técnicos. Muitas Feiras de utilidades domésticas, informática e automação já vêm demonstrando equipamentos capazes de controlar vários recursos domésticos. Em julho de 2002, a revista Eletrônica Total voltou às bancas, reformulada e com novas ideias e colaboradores. A matéria de capa, de autoria de Pedro A. Medoe, demonstrou uma casa totalmente automatizada e também como preparar um pequeno circuito experimental para controlar até 8 saídas através da porta paralela de um PC para algumas experiências.

 

Nota: Este artigo saiu numa Eletrônica Total de 2002.

 

Neste artigo, propomos uma ampliação das possibilidades de controle apresentadas com a montagem de um pequeno circuito, que permitirá controlar até 16 portas de saída e 16 portas de entrada através da porta paralela de um PC e um programa instalado no mesmo.

 

 

O CIRCUITO

 

O esquema elétrico pode ser visto na figura 1. Utilizamos apenas 4 circuitos integrados da série TTL para o desenvolvimento do nosso protótipo. Para as saídas temos dois "Buffers/ Latches" de oito bits (74LS573) e para as entradas temos dois multiplexadores 74LS151. Assim, podemos implementar as 16 saídas e 16 entradas (16 bits) com a soma dos dois buffers e dois multiplicadores, respectivamente.

 

 

SAÍDAS

 

Os dois 74LS573 recebem através da via de dados da porta paralela, pinos 2 a 9 da LPT (DO a D7) um byte que conterá as "portas" que desejamos ligar ou desligar. Um "1" no byte liga e um "0" desliga. O programa, então, habilita o Cl referente a "transportar a informação" (pinos 2 a 9 do CI) à porta que desejamos (pinos 12 a 19 do Cl): o Cl1 controla os primeiros 8 bits e Cl2 os 8 últimos. Essa "habilitação" é feita através do pino 11 deste Cl. Quando em "1", ele transporta a informação contida em sua via de entrada para seu buffer de saída. Mesmo que o pino 11 receba um "0" após o transporte, a informação continuará no buffer e as portas manterão seu estado de acordo com a última informação passada.

O leitor pode observar que a habilitação dos Cl1 e Cl2 é feita através da porta paralela, no endereço de controle (37AH para LPT1). Para isso utilizamos os pinos 1 e 14 da porta paralela, respectivamente, "Strob" e "AutoFeed". Estes pinos trabalham com lógica invertida, ou seja, se desejamos o estado lógico "1" em um deles, devemos na verdade "levá-los" ao estado lógico "0", e vice-versa.

 

 

ENTRADAS

 

As entradas são compostas de 2 "MUX" 74LS151 (Cls 3 e 4). Este circuito integrado permite "multiplexar" até 8 bits de entrada (pinos 1 a 4 e 12 a 15) em um único bit de saída (pino 5). Isso é feito através do endereçamento do bit de entrada que desejamos ler (pinos 9, 10 e 11). Podemos notar, então, que basta colocar na via de dados da porta paralela o endereço do bit que desejamos ler (00H a 07H) e habilitar o 74LS151 referente (pino 7). O Cl irá colocar o bit de entrada no bit de saída e, consequentemente, no endereço de "Status" (379H) da porta paralela através dos pinos 15 e 13 ("Select Out" e "Error"), para Cl3 e Cl4, respectivamente.

A habilitação destes Cls, é feita através dos pinos 16 e 17 ("lnit" e "Select In"). O pino 16 trabalha com lógica normal e os pinos 13, 15 e 17 com lógica invertida, já explicada.

 


| Clique na imagem para ampliar |

 

 

Convém lembrar que os pinos 13 e 15 são entradas, e podemos apenas ler seu conteúdo. Não se pode escrever nestes pinos.

O circuito conta ainda com uma fonte própria, com capacidade de fornecer até 1 ampère. Isto é mais que suficiente para o circuito, pequenas "cargas" externas e/ou "driver's" complementares.

O circuito também conta com LEDs bicolores para indicação visual da "porta" em operação. Em nosso protótipo selecionamos a cor vermelha para o primeiro byte, tanto da entrada como da saída, e a cor verde para o segundo byte.

Toda a operação deste circuito é feita através do programa "MULTI PORTAS.EXE" (figura 2) desenvolvido em DELPHI. O "download" do executável, assim como o código-fonte dele pode ser feito no site http://www.arnerobotics.com.br

 

 

MONTAGEM

 

A montagem do circuito é muito simples e foi realizada em uma placa de circuito padrão. Utilize suportes para os Cls. Em nosso protótipo utilizamos capacitores (C3, C4, C5 e C6) cerâmicos de 100 nF para "desacoplar" os Cls.

Os transistores usados admitem equivalências, e qualquer NPN e PNP de uso geral podem ser utilizados. Em nosso protótipo utilizamos para Q1 e Q2 o BC547, e para Q3 e Q4 o BC557. Os LEDs (D3 e D4) utilizados são do tipo bicolores (vermelho e verde) redondos, porém o leitor que achar conveniente poderá utilizar LEDs comuns. Lembre-se apenas de usar 2 LEDs comuns para cada bicolor substituído.

 


| Clique na imagem para ampliar |

 

Ao montar a fonte, tenha atenção na montagem dos componentes "polarizados": os diodos D1 e D2, os capacitores C1 e C2 e o próprio Cl5 um regulador de tensão para 5 V. Aqui o uso de um radiador de calor é recomendável.

A inserção das placas de controle e fonte pode ser feita conforme mostra a figura 3. Esta sugestão de "layout" não é obrigatória e o leitor poderá encontrar outras soluções de acordo com os componentes utilizados em seu projeto.

 

.
.

 

Todas as ligações entre a placa e os conectores foram feitas com cabo tipo "flat" utilizado em HDs e "disc driver's". As 16 saídas foram ligadas ao conector CN2 e as 16 entradas ao conector CN3. Os pinos (17 a 25) que sobraram em CN2 foram ligados ao terra da placa e os de CN3 ao +5 V, também da placa. Isso facilitará as ligações futuras, pois podemos contar com GND e +VCC nos conectores externos.

 


| Clique na imagem para ampliar |

 

 

 

CABO DE LIGAÇÃO

 

O esquema para o cabo de ligação pode ser visto na figura 4. O comprimento do mesmo não deve ser superior a 5 metros. Este cabo pode ser substituído por um cabo "prolongador" para porta paralela (figura 5), facilmente encontrado em lojas de informática.

 


| Clique na imagem para ampliar |

 

 

 

PROVA E USO

 

Para testar o funcionamento do circuito é conveniente fazer uma verificação de todas as ligações. Isso evitará possíveis danos ao circuito e principalmente ao PC. Após conferir tudo, ligue o cabo no PC e no protótipo. Prepare em um "pront-o-board" o circuito apresentado na figura 6. Trata-se de um conjunto de 16 LEDs com resistores limitadores de 330 ohms. Caso o leitor não disponha deste número de LEDs em sua bancada, poderá utilizar apenas um. Porém, deverá realizar os testes em todas as portas de saída. Lembre-se que o GND da placa deve ser conectado ao GND do "pront-o-board". Esta regra é válida para qualquer ligação externa. Assim, formamos um "GND" comum. Sem isto, o sistema não funcionará!

 


| Clique na imagem para ampliar |

 

 

Cada LED representará uma saída e, consequentemente, seu estado lógico. Se aceso, estado lógico = "1", se apagado o estado lógico será igual a "0".

Rode o programa (figura 7). Temos 3 "telas" com as operações possíveis deste programa. O programa foi desenvolvido para uso na LPT1. Caso o leitor deseje utilizar outra L PT, deverá alterar o programa e recompilá-lo. No menu é possível salvar qualquer configuração neste programa.

 


| Clique na imagem para ampliar |

 

 

Na primeira "tela" (figura 8), temos o controle manual das saídas. Ao "clicar" em um dos botões, temos a alteração do mesmo (de "0" para "1", e vice-versa) e imediatamente o leitor poderá ver o efeito dele através do pequeno painel de LEDs montado para os testes. Também é possível inserir um "nome" para o dispositivo ligado a uma saída.

 


| Clique na imagem para ampliar |

 

 

Na segunda "tela" (figura 8), o leitor tem como verificar as entradas e seus estados lógicos. Também é possível inserir um "nome" para os dispositivos conectados as entradas para melhorar o entendimento da aplicação. Não é possível alterar manualmente o estado lógico das entradas. O leitor notará que todas as entradas são inicialmente indicadas com nível lógico "1". Este é o estado natural das portas de entrada, e assim é possível verificar que sua alteração se dá em estado lógico igual a "zero". Este "fator" é importante na hora de se construir os sensores de entrada. Eles devem sempre levar a porta de entrada para o nível "0". E manter a mesma em nível lógico "1" quando em repouso. Só é possível ler a alteração de uma entrada durante o processo de varredura.

Na terceira "tela" (figura 9) é possível fazer "amarrações" entre entradas e saídas, ou seja, é possível controlar uma determinada saída através de uma ou mais entradas. A primeira lista seleciona o estado da entrada ("0" ou "1") que desejamos analisar, a segunda lista seleciona qual saída (1 a 16) sofrerá alterações quando a entrada for modificada e a terceira lista seleciona qual estado deverá ser inserido na saída selecionada ("0" ou "1"). Note que, se a saída selecionada for igual a zero, a entrada referente não será analisada, e esta saída poderá ser operada manualmente. Apenas as saídas que não forem incluídas em "Operações", durante a varredura, estarão disponíveis para o uso manual.

 


| Clique na imagem para ampliar |

 

Toda análise das entradas ocorre durante o ciclo de varredura. É preciso selecionar as operações e em seguida iniciá-las. Para ativar a varredura das entradas, determine o tempo dentro da faixa possível de "0,001" segundo a "1" segundo e clique em "Iniciar". Note que os tempos são "escritos" em forma de segundos x 10-3. Veja a tabela 1.

 


 

 

 

O programa realizará varreduras periódicas de todas as entradas armazenando seu estado atual para o processamento.

Lembrando que um tempo de 1 segundo a cada varredura é ideal para operações de baixa precisão, e que varreduras com tempos de 0,1 segundo ou menores são mais indicadas para operações de maior precisão.

Quanto menor o tempo, maior será o envolvimento do PC no processamento. Outros programas que estiverem rodando junto do processamento do MULTIPORTAS.EXE parecerão mais lentos, e vice-versa. Estes tempos máximos e mínimos podem ser alterados no código-fonte para atender as necessidades de cada um.

 

 

SUGESTÕES PARA APLICAÇÕES

 

O livro "Circuitos & Informações" volumes 1 e 2, de Newton C. Braga, contém vários circuitos de drivers que podem ser adaptados facilmente para uso neste projeto.

Nota: atualmente seção Banco de Circuitos.

 

 

LIGA E DESLIGA COM RELÉS

 

Na figura 10 o leitor pode ver um circuito complementar utilizando reles, que é capaz de ligar cargas de grande potência.

 


| Clique na imagem para ampliar |

 

 

É possível, por exemplo, ligar os terminais do relé em paralelo com um interruptor de uma lâmpada ou mesmo um motor, permitindo ligar e desligar os mesmos.

 

 

CONTROLE DE CARGAS COM TRIACs

 

Os TRIACs permitem controlar cargas em redes CA com muita facilidade. Porém, o circuito necessita de um "isolador" para a rede elétrica. Isso pode ser feito com um acoplador óptico tipo 4N25 ou 4N26. A figura 11 apresenta o esquema para este tipo de "drive" e uma tabela para a escolha do TRIAC de acordo com a rede e a potência da carga. O uso de um bom radiador de calor é indispensável.

 


| Clique na imagem para ampliar |

 

 

 

CONTROLES DE PEQUENAS CARGAS CC

 

Também podemos controlar pequenas cargas CC, como pequenos motores com o uso de transistores comuns. Na figura 12 o leitor tem um exemplo de como isso pode ser feito. Uma aplicação prática está na "automação" de cortinas ou persianas, permitindo o controle da iluminação ambiente em uma sala.

 

 

ENTRADA COM CHAVES

 

Para o controle das entradas é possível adotarmos chaves, reed-switches e similares conforme ilustra a figura 13. Lembrando que para considerarmos a entrada ativa, devemos ligá-la ao "zero volts" (GND).

 


| Clique na imagem para ampliar |

 

 

 

ENTRADA COM FOTOTRANSISTORES E LDRs

 

O uso de fototransistores e LDRs também é possível, permitindo o monitoramento por exemplo de um corredor. A figura 14 demonstra o circuito. Sempre que o "facho" de luz for interrompido, a entrada receberá nível lógico "0". Este "facho" de luz pode ser proveniente de uma pequena lanterna, para o uso do LDR, ou um pequeno diodo IR para o fototransistor. É importante salientar que tanto o LDR o fototransistor, devem ser inseridos em um pequeno tubo opaco para que a luz ambiente não confunda o sistema. O sistema poderia ser configurado para ligar uma sirene de alarme em uma saída livre.

 


| Clique na imagem para ampliar |

 

 

O leitor notou que muitas são as possibilidades para as "saídas" e "entradas" deste circuito. O mais importante é realizar no programa a "amarração" correta. Por exemplo: uma situação em que desejamos controlar o nível de uma caixa d'água. Para isso precisamos construir um sensor com "reed-switches" para detectar se a caixa está no nível mínimo ou no nível máximo. Veja a figura 15. O sensor "A" (entrada 1), deve detectar o nível mínimo e ativar a saída "1" ligando a bomba ou abrindo uma válvula solenoide. Quando o nível d'água atingir o sensor "B" (entrada 9), a saída "1" será desligada. Veja abaixo as "amarrações" feitas no programa para esta operação.

Se entrada 1 = "0", saída "1" = "1"

Se entrada 9 = "0", saída "1" = "0"

 

 


| Clique na imagem para ampliar |

 

 

O "sensor" para esta aplicação pode ser desenvolvido com um pedaço de cano PVC, um ímã de alto-falante, preferencialmente com furação interna com mesmo diâmetro do tubo de PVC e um pedaço de isopor (para sustentar o ímã na superfície da água). Os "reed - switches" são inseridos dentro do tubo (lembre-se que este deve ser vedado para evitar que a água danifique os componentes e ligações). Sempre que o nível sobe ou desce, o ímã acompanhará este nível, permitindo ligar e desligar os "reed-switches".

 

 

CONCLUSÃO

 

O circuito é bem simples e oferece uma infindável gama de soluções e, apesar de tudo parecer pronto, fornecemos o código-fonte para que nossos leitores possam realizar suas alterações de acordo com suas necessidades, exercitando assim o aprendizado e abrindo novos horizontes dentro das várias áreas da eletrônica e automação. Caso o leitor tenha alguma ideia para um uso diferente do apresentado aqui, escreva-nos compartilhando sua ideia. Boa montagem!

 


| Clique na imagem para ampliar |