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-2 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-2 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 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 Rev. 1.1 1/13 uma comunicação bidirecional. O modelo M-2 consiste em: Microcontrolador Microchip PIC 16F876; Interface Serial utilizando MAX-232; Conversor Analógico/Digital, 2 canais; Entrada/Saída Digital (IO), uma porta de 8Bits; 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 leitura de sinal analógico e 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 1.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,21 + 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. 1.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-2.HEX que deve ser importado (ver Figura 2). Rev. 1.1 2/13 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/13 1.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/13 1.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/13 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/13 1.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. 1.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-7) 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/13 Figura 12: Pinos de IO 1.7 Módulo 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 13 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 número da porta do AD, de 0 a 3), o valor da tensão é convertido em um valor digital de 8 bits (0V é convertido em 00 h 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 51 d. A resposta será sempre exibida em HEXADECIMAL. Rev. 1.1 8/13 Figura 13: Leitura do AD 1.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 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. Rev. 1.1 9/13 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. 1.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. Rev. 1.1 10/13 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. 1.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 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é 1.11 Características elétricas Rev. 1.1 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; 11/13 1.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); 8 Resistores de 330Ω (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); 1 Potenciômetro 10 kΩ (módulo de AD); 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-2 A seguir são listados os comandos disponíveis para o módulo M-2. Tabela 2: Descrição dos protocolo Tipo de comando Leitura e escrita digital Leitura do Conversor Analógico/Digital Controle da saída de PWM 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) Ajusta PWM “x” com duty cycle “dd” (em PWMxdd Hexadecimal) PWMxOFF Desativa saida “x” 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 um valor analógico do canal AD0 (ver Figura 13) é necessário utilizar o comando: AD0<ENTER>. Será efetuada a leitura do AD0 retornando o valor da tensão de entrada multiplicada por 51d (valor exibido hexadecimal). 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 Rev. 1.1 12/13 PWM1OFF<ENTER> e PWM2OFF<ENTER>. Rev. 1.1 13/13