Muitos leitores proprietários de aparelhos de som mais antigos não dispõem neles da possibilidade do controle do volume de áudio a "distância". O projeto que propomos neste artigo permitirá que este controle seja feito "mecanicamente" através de um motor de passo e um microcontrolador. O projeto poderá ser aproveitado para outros automatismos como: controle de cortinas e persianas, varais mecatrônicos, e muitos outros. Todo o controle é feito através de um PC. Unindo este projeto ao Controle para Casa Inteligente já publicado, o leitor poderá controlar de forma mais "completa" sua sala, quarto ou casa.

 

 


 

 

 

Nota: O artigo é de 2006

 

Como dito na introdução do artigo, o projeto permite controlar através de um PC, com uma porta RS-232, aparelhos eletrônicos de uso doméstico como: aparelhos de som mais antigos (volume de áudio e/ou sintonia), venezianas, cortinas, varais, etc. As aplicações são muitas.

O controle mecatrônico possui um motor de passo que "mecanicamente" será acoplado ao equipamento que se deseja "controlar a distância" através de um PC com porta RS-232. A este motor de passo (eixo) pode-se acoplar uma engrenagem qualquer, eixo de um potenciômetro, etc. Um programa desenvolvido em Logo permitirá o controle do circuito pelo PC.

O uso deste circuito não tem limites. Com uma boa dose de criatividade o leitor poderá utilizá-lo em uma série de aplicações em sua residência e até mesmo em seu ambiente de trabalho.

 

FUNCIONAMENTO DE UM MOTOR DE PASSO

Os motores de passo são amplamente difundidos no mundo da eletrônica / mecatrônica / microrobótica. Sua precisão, aliada a sua força (torque) fazem deste motor um excelente "posicionador". Eles estão presentes em impressoras, pequenos CNCs, mesas "XY", etc.

Para operar um motor de passo, temos que "ligar" e "desligar" suas bobinas em uma sequência correta. A frequência com que estas bobinas são "chaveadas" (liga / desliga) determinará a velocidade de giro do motor. Para fazê-lo girar em sentido contrário devemos inverter a sequência de chaveamento. Veja a tabela 1, nela descrevemos a sequência para operar um motor de passo "unipolar" de seis fios (duas bobinas independentes).

 


| Clique na imagem para ampliar |

 

 

Os valores iguais a "1" equivalem à bobina ligada e os valores iguais a "0" equivalem à bobina desligada. A análise da tabela é feita do "passo 1" para o "passo 4". A partir desse ponto a operação é repetida para manter o motor em funcionamento.

Os motores de passo têm seu passo dado em graus. Por exemplo, um motor de 7,5° por passo precisa de 48 passos para dar uma volta completa. Veja a fórmula a seguir:

 


| Clique na imagem para ampliar |

 

Para fazer o motor girar no sentido contrário, devemos fazer a análise inversa na tabela. O primeiro passo passa a ser o de número "4" e o último o de número "1". Esta operação é repetida até conseguirmos o número de voltas desejado.

Infelizmente não existe uma padronização entre os fabricantes de motores de passo, que nos permita através de um código de cores identificar as ligações de suas bobinas internamente. Para isso o leitor pode optar entre duas soluções:

- verificar o "datasheet" do fabricante;

- de posse de um multímetro, na posição de leitura de resistências, fazer uma análise de seu motor. A figura 1 demonstra como isso é feito.

Agora que o leitor conheceu um pouco a respeito do funcionamento de um motor de passo, é hora de tratarmos do circuito.

 


| Clique na imagem para ampliar |

 

 

O CIRCUITO

Na figura 2 o leitor tem o circuito eletrônico do Controle Mecatrônico proposto neste artigo. Cl1 é um microcontrolador PIC16F628 Microchip. Suas principais características são:

- Memória de programa com 2 kbytes de FLASH; - 224 bytes de RAM;

- 128 de EEPROM; - 15 pinos de I/O com dreno de corrente na ordem de 20 mA;

- Dois comparadores analógicos;

- Dois "timer's" de 8 bits e um de 16 bits;

- Um canal CCP (Capture, Compare and PWM);

- Um canal USART para comunicação RS-232 ou SPI;

- Várias opções para oscilador inclusive interno a 4MHz;

- Watch dog timer (cão de guarda) interno;

- Controle de "power-on reset" e "Power-up timer";

- Proteção de código contra cópias;

- Código de instruções reduzido (35 instruções);

- Encapsulamento Dl P com 18 pinos;

- etc.

Para aqueles que desejam maiores informações sobre este microcontrolador, aconselhamos o "download" do "datasheet" no site do fabricante, www.microchip.com.

 


| Clique na imagem para ampliar |

 

 

A função de Cl1 é receber um dado via RS-232 (de acordo com um “protocolo” a ser detalhado mais adiante), processá-lo e atuar sobre o motor de passo através de Cl2. Uma outra forma de controle para Cl1 é feita através das chaves S1 e S2. Através destas chaves é possível fazer o controle do motor de passo "manualmente". A chave S1 gira o motor no sentido horário e a chave S, gira o motor no sentido anti-horário. O jumper JP1 é na verdade a entrada para a chave que indica final de curso para o giro anti-horário. Ela também servirá para marcar o "ponto inicial". Para o giro horário a limitação deste é feita através do software, contando o número de passos máximos no sentido horário, a partir do "ponto inicial".

Cl2 é um circuito integrado com sete "drives" tipo "darlington". Este Cl permite o controle, através de suas saídas, de motores DC, motores de passo e outros dispositivos que trabalhem com tensão de até 50 VDC e dreno de corrente de até 500 rnA máximos por "drive". Sua entrada tem níveis de tensão e corrente dentro do padrão TTL. Na figura 3 vemos o diagrama interno deste Cl.

 


 

 

 

Cl4 (MAX232) permite converter os níveis de tensão do padrão RS-232 de um PC (+/- 12 VDC) par o padrão TTL (0-5 VDC) do PIC, e vice-versa. Na figura 4 é mostrado o diagrama interno do MAX232.

 


| Clique na imagem para ampliar |

 

 

A alimentação do circuito deverá ser retirada de uma fonte de 12 VDC com capacidade de fornecer 1 A de corrente máxima. Cl3 é um regulador de tensão para 5 VDC (7805). Os capacitores C1, C2, C3 e C4 atuam como filtros para a alimentação do circuito. O diodo D1 garante a integridade do circuito, caso a alimentação externa seja ligada de maneira invertida. O LED D2, juntamente com seu resistor limitador de corrente, informa a presença dos 5 VDC no circuito.

O diodo D3 pisca a uma frequência aproximada de 1 Hz, indicando o funcionamento do circuito. A alimentação para o motor de passo é retirada na entrada do conector CN1, antes do diodo D1. Assim, para motores de 12 VDC a alimentação deve preferencialmente ter este valor em sua entrada. Motores menores, do tipo micro, funcionam bem com tensões entre 7,5 e 9 VDC. Estes valores também são aceitos para a tensão de entrada.

 

MONTAGEM

Na figura 5 o leitor tem nossa sugestão do layout para a confecção do circuito impresso. O mesmo tem apenas uma face e sua confecção não será trabalhosa. A montagem do circuito em placas tipo padrão ou mesmo em matrizes de contato também é possível. A escolha de um método ou outro é livre.

Utilize soquetes para todos os Cls. Diodos, circuitos integrados, LEDs e capacitores eletrolíticos são componentes polarizados. Tenha cuidado ao montá-los na placa! Qualquer inversão poderá provocar a perda do componente e o circuito não funcionará! O uso de um radiador de calor para Cl3 é recomendável.

Tenha cuidado também ao montar os resistores. Os mesmos não são polarizados, mas possuem valores diferentes na placa. Use a lista de materiais (código de cores) para se orientar quanto ao seu valor.

 


| Clique na imagem para ampliar |

 

 

As chaves S1 e S2 são do tipo "push-button" normalmente abertas. A escolha pelo tipo "mini para PCI" (como as utilizadas em nosso protótipo — veja figura 5) ou ainda pelo tipo aéreo (para montagem em uma caixa) dependerá exclusivamente do leitor. A chave "fim de curso" a ser ligada em JP1 deverá ser adaptada na montagem mecânica pelo leitor. Lembramos que esta chave tem importante função no circuito e não poderá ser omitida, nem mesmo para os testes do circuito em bancada. Na figura 6, o leitor tem a montagem mecânica desenvolvida pelo autor para o controle de um potenciômetro (opção do autor).

 


| Clique na imagem para ampliar |

 

 

O motor de passo é um item bastante importante para o circuito também. Dependendo do tipo de controle, quanto menor o mesmo for, melhor será, porém em outros casos nem tanto. Tudo depende da aplicação final.

O motor utilizado pelo autor tem tamanho bastante reduzido e foi retirado de um "floppy" de PC (unidade leitora de disquetes) fora de uso. Seu uso é ideal para inserção em pequenas caixas plásticas ou ainda para a inserção do conjunto em um equipamento como um aparelho de som, por exemplo.

O leitor que não encontrar um motor similar em tamanho em sua sucata, poderá recorrer ao mercado especializado. A Tato Equipamentos Eletrônicos (www.tato.ind.br) tem em seus estoques pequenos motores de passos, muito parecidos com o utilizado pelo autor.

O conector CN1 utilizado em nosso protótipo é do tipo P4 fêmea, mas o leitor poderá soldar os fios da fonte de alimentação diretamente na placa. O uso de um conector para a ligação do motor de passo facilitará bastante a sua conexão. Em nosso protótipo utilizamos um conector tipo KRE com seis segmentos, para esta função.

O conector CN2 utilizado em nosso protótipo é do tipo DB09 fêmea 90°, para montagem na placa. Porém o leitor poderá utilizar o tipo "aéreo" no caso da instalação do circuito em uma caixa (opcional).

O cabo de comunicação serial a ser utilizado com este circuito poderá ser adquirido pronto no mercado especializado em produtos de informática, com o nome "Cabo de comunicação serial" (não cruzado - um para um) ou ainda ser construído a partir das informações presentes na figura 7.

 


| Clique na imagem para ampliar |

 

 

O uso de uma caixa de madeira, metálica ou ainda plástica, como as da fabricante Patola (www.patola. com.br), para a inserção da placa e "parte mecânica" (a ser desenvolvida pelo próprio leitor de acordo com sua ideia de uso) dará um excelente acabamento final a montagem.

 

O PROGRAMA

Como dito anteriormente, temos um PC enviando dados para um microcontrolador à distância, através de sua porta RS-232. Assim temos dois programas envolvidos no controle propriamente dito: um para o PC, desenvolvido em Logo (bastante conhecido de nossos leitores) e outro para o microcontrolador, desenvolvido na Linguagem C. A seguir falaremos um pouco sobre cada um dos programas.

 

O PROGRAMA PARA O PC

Na figura 8 apresentamos o fluxograma do programa VOL_CONTROL. LGO, disponível gratuitamente em nosso site. Detalharemos a seguir o seu funcionamento, que é bem simples. O mesmo abre a porta RS-232 com os seguintes parâmetros:

- velocidade: 9600 bps (bits por segundo);

- número de bits: 8; - número de stop bits: 1;

- paridade: nenhuma;

- controle de fluxo: nenhum.

 


 

 

 

Em seguida, a tela de controle é montada com apenas três botões ("+", "-" e "Fim"). Ao "clicar" no botão "+" o programa envia através da porta RS-232 os caracteres "H"" e ao "clicar" no botão "-" são enviados os caracteres "A*". Este é nosso pequeno protocolo de controle. Veja a tabela 2.

 


 

 

 

Para que o motor avance em um dos sentidos escolhidos (passo) é necessário enviar um caractere para informar o sentido e outro para finalizar o protocolo. O leitor com experiência em programação poderá, por exemplo, alterar o programa de maneira que quando um dos botões mencionados for acionado, sejam enviados mais de um conjunto de caracteres descritos por vez. Desta forma a velocidade final do giro do motor poderá ser aumentada. Tudo dependerá da aplicação escolhida. Esta ou qualquer outra alteração fica por conta de cada um.

Estudar o programa poderá ajudar ainda mais na sua compreensão. O Super Logo possui um "help" (ajuda) muito bem documentado e o que é ainda melhor, em língua portuguesa. Use-o para estudar cada comando.

 

O PROGRAMA PARA O MICROCONTROLADOR

Em nosso site disponibilizamos um programa, montado na Linguagem C chamado VOL_CONTROL.C. Utilizamos para a montagem e compilação deste programa o compilador PICC CCS (www.ccsinfo.com). A empresa CCS fornece uma versão demo que poderá ser utilizada pelo leitor em seus testes. Esta versão possui algumas limitações como os tipos de microcontroladores habilitados e também no tamanho máximo do programa a ser compilado, porém é uma boa alternativa para aqueles que desejam "entrar" no mundo da programação na linguagem C, mais especificamente dedicada aos microcontroladores PIC Microchip.

É importante salientar que o leitor não precisa baixar da Internet o compilador, pois juntamente com o código-fonte, também foi fornecido o arquivo compilado com mesmo nome, porém extensão HEX (VOL_CONTROL.HEX). Este arquivo será utilizado para a gravação do microcontrolador, sendo o uso do compilador necessário apenas para mudanças, estudos ou outra.

O código-fonte foi ricamente comentado para ajudar nosso leitor na sua compreensão. Porém, a seguir trataremos um pouco sobre o seu funcionamento, descrevendo um pouco mais o uso das funções incluídas no programa.

Na figura 9 temos o fluxograma que descreve a operação do programa desenvolvido para o circuito proposto neste artigo. Ele começa por inicializar o microcontrolador: a direção dos pinos (entrada ou saída), o "watch dog timer" — relógio cão de guarda que evita que o programa se perda e assim que o microcontrolador trave por algum motivo, o "Timerl" — interrupção responsável pelo "piscar" do LED D3 e a USART do microcontrolador, para a comunicação RS-232 com o PC.

 


| Clique na imagem para ampliar |

 

 

Após a inicialização do microcontrolador, o programa ficará preso na função "main0" (principal). Nesta função apenas as condições das chaves S, e S2 são testadas. Nenhuma outra função é chamada. Pode parecer estranho para os leitores sem muito conhecimento com microcontroladores, mas todas as outras funções presentes no processo são operadas por meio de interrupções.

Uma dessas operações por interrupção no programa é realizada pelo Timer1 do microcontrolador. Este "timer" causa uma interrupção no microcontrolador a cada 0,526 segundos. Quando isso acontece a função "trata int ti () " é chamada. Esta função verifica quantas interrupções aconteceram: se duas (2 x 0,526 = 1,052 segundos) a função troca o estado atual do LED, fazendo-o piscar na frequência de 1 Hz, descrita anteriormente.

Temos no programa também uma interrupção para tratamento de um dado recebido do PC. Sempre que um caractere for recebido pela USART do microcontrolador, esta gera uma interrupção e então o programa é desviado para a função "RDA isr ". Esta função emite um caractere de "eco" (envia ao elemento transmissor, o PC, o caractere recebido) e faz o tratamento do dado recebido.

Este tratamento consiste em verificar se os caracteres recebidos pertencem ao protocolo desenvolvido para a comunicação entre o PC e o PIC para, então, realizar a movimentação do motor através da chamada da função "drive_step () ". Se os caracteres recebidos não condizem com o protocolo mencionado, os caracteres são descartados do buffer.

priority timerl , RDA
priority timerl , RDA" inserida no começo do programa, definimos qual interrupção tem maior prioridade. No caso definimos a interrupção do "Timer1" com maior prioridade. É importante salientar que a prioridade de interrupção controla apenas qual das interrupções deve ser atendida primeiro, caso sejam disparadas ao mesmo tempo. O Timer1 tem prioridade sobre RDA.

 

Um outro detalhe também muito importante é que o compilador CCS insere no código final a ser gravado no microcontrolador (arquivo HEX), comandos que permitem ligar e desligar as interrupções. Isso evita que ao atender uma determinada interrupção, o microcontrolador sofra uma segunda interrupção e assim consecutivamente. Ou seja, ao entrar em uma função de tratamento de interrupção, todas as outras (e a própria) são desabilitadas. Enquanto as operações dentro da função de tratamento de interrupção atual não se finalizarem, nenhuma outra será chamada ou atendida. Agora o leitor pode entender a importância do "watch dog timer". Caso algo na lógica do programa saia errado, o WDT "resetará" o microcontrolador, reiniciando as operações.

 

TESTE E USO

Após a montagem, seja qual for o método escolhido, aconselhamos uma verificação minuciosa na mesma. Reveja todas as ligações, as soldas, posições dos componentes, etc. Gaste alguns minutos nesta verificação. Não tenha pressa em ligar o circuito. Alguns minutos gastos em uma boa checagem poderão representar a diferença entre o sucesso e o fracasso nesta montagem. Faça o "download" dos programas disponíveis em nosso "site" para o PC e também para gravar o microcontrolador. Grave o arquivo HEX fornecido no microcontrolador.

Conecte o cabo de comunicação à porta RS-232 do PC (COMI) e execute o programa Super Logo, abra o arquivo CONTROL VOL.LGO e inicie sua execução (basta digitar "control vol" na linha de comandos e clicar no botão "Executar"). A figura 10 mostra a aparência da tela do programa desenvolvido no Logo, durante sua execução.

 


 

 

 

Após gravar o microcontrolador, insira-o novamente na placa, matriz de contatos ou placa padrão, de acordo com sua montagem e alimente o circuito. O LED D3 deverá piscar a uma frequência de 1 Hz indicando o funcionamento do circuito.

Clique em um botão de controle ("+" ou "-") para ver o motor girar no sentido escolhido. Lembrando que quando o motor chegar a um dos extremos, ele só se movimentará em sentido contrário.

O circuito é funcional e não apresentou qualquer problema durante os testes no laboratório do autor. Caso a sua placa não funcione adequadamente, você deverá verificar sua montagem novamente. Reveja todas as etapas. Verifique se não existem erros na confecção da placa, se não há soldas frias ou pequenos curtos provocados por pontos muito próximos, a ligação do motor, etc.

Toda verificação deve ser feita com muita calma, e preferencialmente com a ajuda de um amigo ou professor. Geralmente um "terceiro" tem mais chance de encontrar um erro que nos passou despercebido.

 

CONCLUSÃO

Atualmente são cada vez mais comuns circuitos para uso em "automação", seja residencial, comercial ou industrial. Estas áreas não param de crescer e quanto mais o leitor estudá-las e experimentá-las, melhor serão suas chances de sucesso com a mesma, não somente profissional, mas também no hobby. Acreditamos que num futuro próximo, cada vez mais "automatismos" estarão presentes nas fábricas e principalmente em nossos lares, e estes possibilitaram os mais inusitados controles e muitos destes, com certeza, um dia foram considerados "impossíveis".

.