PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA LABORATÓRIO DE ENGENHARIA DA COMPUTAÇÃO TUTORIAL DE UTILIZAÇÃO DA PLACA DE AQUISIÇÃO E CONTROLE M-5 RESUMO - Este artigo descreve a placa de aquisição de dados M5 que permite comunicação entre um hardware específico e um computador, utilizando a porta serial disponível no PC. O modelo apresentado permite controlar até dois motores de passo, ler até duas entradas analógicas e ainda possui 4 entradas ou saídas digitais. 1 INTRODUÇÃO A placa de aquisição e controle de dados é indicada no desenvolvimento de projetos rápidos e sem a necessidade de uma implementação de hardware muito complexo. O firmware M-5 facilita a utilização de motores de passo, leitura de um sinal analógico e controlar entradas e saídas digitais, requerendo apenas um conhecimento básico de eletrônica digital. Com a integração do software com o hardware, exercitamos os conhecimentos na implementação de programas que controlam um dispositivo eletrônico. O diagrama da Figura 1 mostra o princípio de funcionamento da placa, sendo dividida em módulos que podem ou não ser incluídos no projeto. Figura 1: Diagrama geral Para acionar um dispositivo ou ler alguma informação (por exemplo, um motor de passo, entrada digital, etc.), o PC deve enviar um comando adequado através da linha serial, sendo este interpretado e executado pela placa de aquisição e controle. Em alguns casos, estes comandos retornam valores para o PC sendo então necessária uma comunicação bidirecional. Rev. 1.1 1/14 O modelo M-5 consiste em: Microcontrolador Microchip PIC 16F876; Driver serial utilizando MAX-232; Driver para 2 Motores de Passo; Conversor Analógico/Digital, 2 canais; Entrada/Saída Digital (IO), uma porta de 4Bits. O módulo principal e o modulo da comunicação serial são essenciais para o funcionamento da placa. O driver para motor de passo, o módulo de leitura de sinal analógico e as entradas / saídas (IO) são opcionais, pois são independentes e aplicáveis de acordo com a necessidade do projeto. 2 PROCEDIMENTO DE MONTAGEM E TESTE 2.1 Aquisição do material Este projeto requer apenas componente comercial. A aquisição do microcontrolador Microchip PIC16F876-20/P pode ser feita através do seu representante no Brasil, AUT-COMP, com sede em São Paulo. O contato deve ser feito por telefone (11 – 6915-7443) e o seu custo é de aproximadamente US$ 5,99 + 2% de IPI. A taxa de envio para Curitiba é de R$ 9,99. A forma de pagamento é através de depósito bancário e o tempo para o envio é de aproximadamente uma semana (dados obtidos em 11/09/2002). Quanto aos outros componentes, podem ser encontrados nas lojas de componentes eletrônicos. O motor de passo pode ter um custo alto se for adquirido novo, porém há a opção de comprar um usado ou retirar de alguma sucata de equipamentos como impressora, fax, scanner, e outros. Dê preferência por motores de passo de 5 ou 6 terminais. Modelos com 4 terminais exigem um circuito mais complicado. Cuidado especial deve ser tomado quanto às características elétricas do motor de passo, devendo a tensões e a correntes ser compatível com o circuito montado. Por exemplo, se tivermos um circuito que funcione com 5V e possa suprir no máximo uma corrente de 1A, não podemos ligar nele um motor que consuma 2A ou que tenha uma tensão de alimentação de 2,8V, com risco de danificar o circuito ou o motor. Os demais componentes necessários como resistores e diodos têm seu custo mínimo e o preço pode variar muito dependendo da loja. 2.2 Gravação do PIC A gravação do PIC deve ser feita através do gravador PICStart Plus e do software MPLAB disponíveis no Laboratório de Engenharia de Computação. Através do MPLAB (acessando o menu FILE->IMPORT->IMPORT TO MEMORY), uma caixa de diálogo irá abrir e solicitando o caminho do arquivo M-5.HEX que deve ser importado (ver Figura 2). Rev. 1.1 2/14 Figura 2: Procedimento de gravação Para habilitar o programador, selecione o menu PICSTART PLUS-> ENABLE PROGRAMMER (Figura 3). Figura 3: Habilitação do gravador Ao habilitar o programador, uma nova janela deve abrir e o botão PROGRAM deve ser pressionado, Figura 4. Neste instante a gravação é iniciada e podendo demorar alguns minutos. Concluída a gravação, uma mensagem de sucesso é exibida e o chip pronto! Figura 4: Parâmetros de programação Rev. 1.1 3/14 2.3 Módulo principal O módulo principal é composto do PIC, do MAX-232, do cristal, de um resistor e do cabo serial. Sua montagem deve ser feita seguindo o esquema da Figura 5. O PIC deve ser alimentado com 5V no pino 20 e o GND nos pinos 8 e/ou 19. Um cristal oscilador de 4MHz deve ser ligado entre os pinos 9 e 10 e um resistor de 1kΏ deve ser ligado no pino 1 para reset. A interface serial tem como principal componente o MAX-232. Sua função é conformar o sinal do padrão RS-232, que trabalha com níveis de tensão de 12V a -12V, para o padrão TTL. São necessários quatro capacitores que devem ser ligados, lembrando que os pinos de alimentação são respectivamente os pinos 16 e 15, para Vcc (5V) e GND. Os pinos 9 e 10 são os pinos de TX e RX que devem ser ligados ao PIC, pois trabalham com níveis TTL. Os pinos 7 e 8 são ligados nos pinos 2 e 3 do conector DB-9, no qual o sinal é do tipo RS-232. O GND do conector DB-9 (pino 5) deve ser ligado com o GND da placa, necessariamente. A Figura 6 mostra como deve ser feito o cabo serial, tomando o devido cuidado para não confundir os pinos de DB-9 com o DB-25. Figura 5: Módulo principal Figura 6: Cabo serial Rev. 1.1 4/14 2.4 Teste inicial Para um teste inicial é necessário que o hiperterminal (Windows) seja configurado corretamente conforme a seqüência a) Execute o HIPERTERMINAL do Windows, criando uma nova conexão, como mostra a Figura 7. Figura 7: Nova conexão b) Escolha qual porta serial será direcionamos para a COM1, Figura 8 utilizada. Normalmente Figura 8: Escolhendo a porta serial c) Por fim, conforme a Figura 9 configure: a velocidade, em bits por segundo, para 9600; o número de bits de dados, para 8; a paridade para nenhuma; o bit de parada para 1; o controle de fluxo também para nenhum. Rev. 1.1 5/14 Figura 9: Configurações gerais da porta serial Para sabermos se o hiperterminal foi configurado corretamente, devemos conectar o cabo serial na COM1 e realizar um curto-circuito entre os pinos 2 e 3 da outra ponta do cabo. Quando uma tecla alfanumérica é pressionada este caractere deve aparecer no hiperterminal. Após montar o módulo conforme a Figura 5, conectá-lo ao computador. Ao ligar este módulo, uma mensagem de apresentação deverá ser exibida no hiperterminal conforme a Figura 10. Figura 10: Mensagem inicial Rev. 1.1 6/14 2.5 Configuração das mensagens e do eco do teclado Figura 11: Configuração inicial A placa de aquisição geralmente retorna ao usuário cada tecla digitada (eco) e mensagens para facilitar a visualização. Porém, ao desenvolver uma aplicação no computador, estas opções podem ser inconvenientes. Para ligar/desligar as opções de exibir as mensagens e eco, use o comando CONFIG<ENTER>. Ao digitar este comando, as mensagens da Figura 11 serão apresentadas permitindo ativar ou não estas opções. Estas configurações permanecerão ajustadas mesmo se o PIC for desligado1. 2.6 Módulo de leitura e escrita digital O procedimento a seguir descreve um teste inicial para determinar o funcionamento dos sinais de leitura e escrita digital. Conforme a Figura 12, conecte os pinos da porta de IO (IO-0, IO-1, ...,IO-3) aos LEDs da mesa digital, não esquecendo de ligar o GND da mesa no terra do circuito. Ao digitar o comando WR01<ENTER> no hiperterminal, o primeiro LED deve acender. Obs.: para melhor explicação do comando WR verifique o item 3. Para testar estes sinais como entrada, podemos ligar os pinos de IO nas chaves de mesa digital. Ao digitar o comando RD<ENTER> no hiperterminal, será exibida a leitura dos bits como um valor em hexadecimal. Com estes testes podemos ter uma noção geral do seu funcionamento. 1 Estas configurações são salvas na memória EEPROM (não volátil). Rev. 1.1 7/14 Figura 12: Pinos de IO 2.7 Teste do acionamento de motor de passo O procedimento a seguir descreve um teste inicial para verificar a seqüência de acionamento dos dois motores de passo. Para isto, podemos conectar as saídas das fases nos LEDs da mesa digital, conforme a Figura 13. Ao digitar o comando SM1RUN <ENTER> no hiperterminal, os LEDs ligados a saída SM0..SM3 do motor 1 deverão acender na seqüência de acionamento normal das fases do motor. Ao digitar o comando SMV80<ENTER> a seqüência será executada com uma velocidade maior. Para parar, o comando SM1STOP<ENTER> pode ser utilizado. Obs.: para melhor explicação do comandos acima verifique o item 3. Figura 13: Saídas do motor de passo 2.8 Montagem do driver para motor de passo O procedimento a seguir descreve o funcionamento e características da etapa de potência que controla cada motor de passo. mostra o módulo de driver de motor de passo, necessário para utilizarmos Rev. 1.1 8/14 motores de maior potência. De acordo com os transistores utilizados este módulo permite um aumento na capacidade de corrente das saídas. Os transistores recomendados são de potência (por exemplo, TIP 121), com dissipador de calor e/ou ventilação forçada. Os resistores que ligam o PIC com o transistor servem para limitar a corrente de polarização dos transistores. Também é necessário colocarmos diodos em paralelo com as bobinas do motor, evitando que uma corrente reversa seja descarregada pelo transistor. CUIDADO: observe a polaridade dos diodos na Figura 14! CUIDADO: observe a tensão VR que não deve ultrapassar 30 V e a corrente do transistor não pode ser maior que 2 A. Caso necessário, dissipadores de calor e/ou ventilação forçada devem ser usados.)! Figura 14: Driver do motor de passo com seis e cinco fios respectivamente. Para trabalhar com motores de passo com 4 fios, o driver é um pouco mais complicado. A Figura 15 mostra o diagrama em blocos de ligação no motor. Rev. 1.1 9/14 Motor De Passo Figura 15: Ligação dos 4 drivers com o motor de passo (4 fios) Nesta figura verificamos a necessidade de 4 drivers do tipo SM-DRV. A Figura 16 exibe o diagrama esquemático recomendado para o SM-DRV. Do PIC Para o motor Figura 16: diagrama esquemático do driver SM-DRV. Neste diagrama, T1 utiliza o TIP 125, porém pode ser utilizado TIP126 ou TIP127. Já o transistor T2 recomendado é o TIP 122, porém pode ser utilizado TIP120 ou TIP121 sem problemas. Observe ainda que o valor do resistor R3 deve ser calculado em função do da tensão VR (ver Figura 16). CUIDADO: observe a tensão VR que não deve ultrapassar 30 V e a corrente do transistor não pode ser maior que 2 A. Monitore constantemente a temperatura dos transistores e caso necessário dissipadores de calor e/ou ventilação forçada devem ser usados! Rev. 1.1 10/14 2.9 Modulo de leitura analógica Para utilizar o módulo de leitura de canal analógico necessário que um sinal analógico seja colocado nos pinos correspondentes ao AD1 e AD2. CUIDADO: o sinal analógico aplicado aos terminais AD1 e AD2 deve estar entre a faixa de 0V até 5V. Valores negativos ou maiores que 5 V podem danificar o microcontrolador. A Figura 17 exemplifica exibe uma forma de ligação simples utilizando um potenciômetro. Com seu pino central ligado a entrada analógica e os outros dois contatos ao GND e ao Vcc(5V), podemos variar o valor da tenção em AD0 girando o potenciômetro. Quando solicitada uma leitura através do comando ADx<ENTER> (x representa o numero da porta do AD, de 0 a 3), o valor da tensão é convertido em um valor digital de 8 bits (0V é convertido em 00h e 5V em FFh). Para os valores intermediários basta realizar uma multiplicação inteira (ignorando a parte fracionária) do valor de tensão de entrada por 51d. A resposta será sempre exibida em HEXADECIMAL. Figura 17: Leitura do AD 2.10 Fonte de alimentação O circuito básico de uma fonte de alimentação para ligar o PIC com 5V/1A é mostrado na Figura 18. Figura 18: Fonte de alimentação Rev. 1.1 11/14 ATENÇÃO: tome muito cuidado com montagem da fonte de alimentação, pois está conectada a rede elétrica! Não brinque com este circuito! Caso a montagem não esteja adequada, há riscos de choque-elétrico e queimaduras causadas por curto-circuito! Antes de ligá-lo solicite orientação do professor ou pessoal técnico qualificado. Tabela 1: Lista de materiais da fonte de alimentação. Componente Fusível 2A/250V Transformador 12V/1.5A Diodo 1N4004 Capacitor de 3300µF/50V Capacitor de 100µF/50V Regulador de Tensão 7805 Resistor 270 Ω LED Qtd. 1 1 4 1 1 1 1 1 Os componentes da fonte não estão inclusos na lista de materiais descrita no fim deste documento. 2.11 Outras aplicações O módulo de leitura e escrita digital (item 2.5) também pode ser utilizado para controlar/ler diversos dispositivos (LEDs, relés, displays, ler sensores, switchs, etc.). A Figura 19, mostra como ligar um relé a saída digital para controlar uma lâmpada. Cuidado especial deve ser tomado para que a tensão de alimentação Vr (no máximo 15V) seja compatível com a tensão da bobina do relé. Figura 19: Acionamento de relé 2.12 Características elétricas Rev. 1.1 Tensão de alimentação Vcc = 5V; Consumo: menor que 2mA; 12/14 Tensão da entrada digital: 0/5V (padrão TTL); Tensão da entrada analógica: de 0V até 5V; Impedância máxima do circuito permitida na entrada analógica: 10k ohms; Corrente de saída máxima do terminal do PIC = 20mA; 2.13 MATERIAIS Para a montagem da placa são necessários os seguintes componentes 1 Microcontrolador PIC 16F876-4 (Módulo Principal); 1 Cristal de 4MHz (módulo principal); 1 Resistores de 1k Ώ (módulo principal); 4 Resistores de 330 Ώ (módulo principal); 1 Interface Serial MAX-232 (modulo de comunicação serial); 4 Capacitores de 10µ F/25 V (modulo de comunicação serial); 4 Resistores de 470 Ώ (driver do motor de passo); 8 Transistores TIP 121 ou equivalente (driver do motor de passo); 8 Diodos de uso geral 1N4007 ou 1N4004 (driver do motor de passo). Rev. 1.1 13/14 3 PROTOCOLO DE COMUNICAÇÃO DO MODELO M-5 A seguir são listados os comandos disponíveis para o módulo M-5. Tipo de comando Leitura e escrita digital Leitura do Conversor Analógico/Digital Controle do motor de passo Comando Descrição Lê a porta de I/O (resposta em RD hexadecimal) Escreve o dado dd (hexadecimal) na porta WRdd de I/O Lê o canal “x” do conversor AD (resposta ADx em hexadecimal) Configura o tempo entre as mudanças de SMVdd fase do motor de passo para delay proporcional2 a dd (hexadecimal) Ajusta sentido horário3 de rotação da SMxRR saída do motor de passo x Ajusta sentido anti-horário da rotação da SMxRL saída do motor de passo x Define o número dddd (hexadecimal) de SMxdddd passos que o motor x deverá girar. Retorna com o número de passos que ainda faltam para concluir o comando SMx? SMxdddd do motor x (resposta em hexadecimal) SMxRUN Giro incondicional do motor de passo x SMxSTOP Parada incondicional do motor de passo x Parada incondicional do motor de passo x, SMxFREE com a liberação das bobinas4 Exemplos: 2 Para ler um dado da porta de IO é necessário utilizar o comando: RD<ENTER>. O valor lido é retornado na forma de dois caracteres ASCII, representando um byte em hexadecimal. Para ligar os bits IO3 e IO2 desligando os bits IO2 e IO0 (ver Figura 12) é necessário utilizar o comando: WR0A<ENTER> Para ler um valor analógico do canal AD0 (ver Figura 17) é necessário utilizar o comando: AD0<ENTER>. Será efetuada a leitura do AD0 e retorna dois caracteres ASCII representando um byte em hexadecimal. delay 1024 dddd (onde clock = 4MHz) clock 3 Dependendo da seqüência de montagem das fases, o sentido de rotação pode ficar invertido. Normalmente o motor de passo fica com as bobinas acionadas para fazer o travamento do motor de passo, quando utilizado o comando FREE as bobinas ficam desligadas. Este comando pode ser útil em sistemas onde é necessário economizar energia. 4 Rev. 1.1 14/14