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-3 RESUMO - Este artigo descreve a possibilidade de se estabelecer a comunicação entre um hardware específico e um computador, utilizando a porta serial disponível no PC. O modelo apresentado possui as características de ler até quatro entradas analógicas e ainda possui 8 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-3 facilita a utilização de entradas e saídas digitais, contagem de eventos e controle de PWM, 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 principal Para acionar um dispositivo ou ler alguma informação (por exemplo, um motor, chaves, 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. O modelo M-3 consiste em: Rev. 1.1 1/12 Microcontrolador Microchip PIC 16F876; Interface Serial utilizando MAX-232; Entrada contadora de eventos, 4 entradas; Entrada/Saída Digital (IO), uma porta de 8 bits; Saída de PWM, 2 saídas. O módulo principal e o modulo da comunicação serial são essenciais para o funcionamento da placa. O módulo de contagem de eventos, as entradas/saídas (IO) e saídas de PWM 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$ 7,22 + 2% de IPI. A taxa de envio para Curitiba é de R$ 13,00. 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-3.HEX que deve ser importado (ver Figura 2). Rev. 1.1 2/12 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/12 2.3 Modulo 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/12 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/12 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/12 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/12 Figura 12: Pinos de IO 2.7 Contador de Eventos Podemos testar o contador de eventos, ligando os respectivos pinos as chaves da mesa digital, ao mudarmos o estado da chave de 1 para 0 e vice versa, geramos os valores a serem contados. Temos três modos de leitura do contador de eventos, pode ser por rampa de subida, rampa de descida e por nível. Para iniciarmos a sua utilização, devemos usar o comando ECON<ENTER>, que habilita o contador de eventos. Para lermos os valores dos registros usamos, para ler o registro 1, por exemplo, EC1RD<ENTER>. Este modelo possui 4 registros contadores de eventos e para iniciarmos a contagem estes registros devem ser zerados através do comando ECxCLR<ENTER>. O x representa o registro, que pode ser de 1 a 4. A Figura 13 mostra os pinos correspondentes ao contador de eventos. Figura 13: Contador de eventos 2.8 PWM: Podemos testar o PWM, devemos ligar a saída de PWM ao osciloscópio para vermos a variação do duty cycle. Devemos ajustar o duty para 50%, isto Rev. 1.1 8/12 significa que metade do tempo o sinal fica em 0 e a outra metade em 1. O comando PWM180<ENTER>, faz este ajuste. Se o valor for modificado para 10 o sinal vai ficar mais tempo em 0 do que em 1, desta forma o comando fica PWM110<ENTER>. Para desliga-lo usamos o comando PWM1OFF<ENTER>. A Figura 14 mostra as saídas 1 e 2 de PWM. Figura 14: Módulo de PWM Se for necessária a ligação de um motor, por exemplo, o circuito da Figura 15 deve ser colocado na saída do PWM. Figura 15: Driver do PWM CUIDADO: a tesão VR não deve ultrapassar 40 V e a corrente máxima que pode ser fornecida é de 1 A. ATENÇÃO: ao ligar o circuito com o motor, monitore constantemente a temperatura do transistor e se for necessário utilize um dissipador de calor e/ou ventilação forçada. Rev. 1.1 9/12 2.9 Fonte de alimentação O circuito básico de uma fonte de alimentação para ligar o PIC com 5V/1A é mostrado na Figura 16. Figura 16: Fonte de alimentação 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 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.10 Outras aplicações O módulo de leitura e escrita digital (item Figura 17) também pode ser utilizado para controlar/ler diversos dispositivos (LEDs, relés, displays, ler sensores, switchs, etc.). A Figura 17, mostra como ligar um relé a saída digital para controlar uma Rev. 1.1 10/12 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 17: Acionamento de relé 2.11 Características elétricas Tensão de alimentação Vcc = 5V; Consumo: menor que 2mA; 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.12 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 1 kΩ (módulo principal); 1 Interface Serial MAX-232 (módulo de comunicação serial); 4 Capacitores de 10 µF/25 V (módulo de comunicação serial); 4 Resistores de 330Ω (módulo de IO); 1 Transistor BD 139 (módulo de PWM); 1 Resistor de 330 Ω (módulo de PWM); 1 Diodo 1N4004 (módulo de PWM). 3 PROTOCOLO DE COMUNICAÇÃO DO MODELO M-3 A seguir são listados os comandos disponíveis para o módulo M-3. Rev. 1.1 11/12 Tabela 2: Descrição dos protocolo Tipo de comando Comando RD Leitura e escrita digital WRdd ECON Contador de eventos Descrição Lê a porta de I/O (resposta em hexadecimal) Escreve o dado dd (hexadecimal) na porta de I/O Liga o módulo contador de eventos ECxCLR Ler o valor do registro do contador de eventos x Zera o registro do contador de eventos x ECOFF Desliga módulo contador de eventos PWMxdd Ajusta PWM x com duty cycle “dd” (em Hexadecimal) PWMxOFF Desativa saída x de PWM ECxRD Controle da saída de PWM Exemplos: 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 o valor de um registro do contador de eventos 1, por exemplo, use o comando: ECON<ENTER>. Fará com que o módulo de contagem de eventos ligue, após é necessário que o contador seja zerado com o comando EC1CLR<ENTER> com isto podemos iniciar a contagem de eventos. Quando for necessária uma leitura o comando EC1RD<ENTER> retorna o valor do contador, por exemplo, 12(em hexadecimal). Para desativar o módulo de contagem de eventos use o comando ECOFF<ENTER>. Para ativar uma saída de PWM (ver Figura 14) é necessário utilizar o comando: PWM180<ENTER>, o 80(em Hexadecimal), representa do duty cycle do PWM, para ativar a outra saída de PWM utilizar o comando: PWM280<ENTER>. Se quisermos desativar o PWM, utilizamos o comando PWM1OFF<ENTER> e PWM2OFF<ENTER>. Rev. 1.1 12/12