• Nenhum resultado encontrado

CONTROLE RPM DE MOTOR DE CORRENTE CONTÍNUA

N/A
N/A
Protected

Academic year: 2021

Share "CONTROLE RPM DE MOTOR DE CORRENTE CONTÍNUA"

Copied!
16
0
0

Texto

(1)

CONTROLE RPM DE MOTOR DE CORRENTE CONTÍNUA CARLOS MASSAO FUZITAKI1

fuzitaki.carlos2@gmail.com

Prof. ILDEBERTO DE GENOVA BUGATTI2 bugatt.fatec@gmail.com

Resumo – O trabalho de pesquisa foi motivado pela necessidade de acionar motores de corrente contínua controlando sua velocidade de rotação, para contemplar as especificações de precisão e velocidade de uma diversidade de aplicações que utilizam motores de corrente contínua para acionar sistemas mecânicos. Foram estudadas as características de diversos motores de corrente contínua disponibilizados no mercado e, também formas de controle utilizadas. O controle de velocidade desenvolvido é realizado por um microcontrolador que altera a potência do motor conforme a necessidade da aplicação. Para validar o sistema de controle proposto, foi desenvolvido o protótipo de um guindaste utilizando recursos da Mecatrônica Industrial na sua síntese e construção. O protótipo utiliza dois motores para realizar movimentos verticais e de rotação. A velocidade e precisão dos deslocamentos realizados e tratamentos de emergência e segurança é controlada por um programa desenvolvido utilizando linguagem C. Os testes executados com o protótipo confirmaram a viabilidade na obtenção da precisão e velocidade com o uso das tecnologias propostas.

Palavras-chave: Guindaste. Motores. Controle. Velocidade.

Abstract - The research work was motivated by need to activate dc motor controlling its spin velocity to fullfill the specifications of precision and velocity of a variety of applications wich uses dc motors to activate mechanical systems. It was made a study of characteristics of various dc motors available in market and ways of controls used. The velocity control developed is realized with a microcontroller witch change the electric power applied to motor according to need of the application. To validate the proposed control, was developed a prototype of a crane using the knowledge of Industrial Mecatronics to project and make it. The prototype uses 2 motors to make vertical and spin movements. The velocity and precision movements and emergency treating is made with a program developed using C language. The tests made with the prototype confirmed the viability to fullfill de specifications of the precision and velocity related using the technologies proposed.

Keywords: Crane. DC Motor. Control. Velocity.

1. INTRODUÇÃO

O trabalho de pesquisa foi motivado pela necessidade de acionar motores de corrente contínua controlando sua velocidade de rotação, para contemplar as especificações de precisão e velocidade de uma diversidade de aplicações que utilizam motores de corrente contínua para acionar sistemas mecânicos.

1Aluno do curso de Tecnologia em Mecatrônica Industrial de Garça - FATEC 2Docente do curso de Tecnologia em Mecatrônica Industrial de Garça – FATEC

(2)

Objetivo específico – para validar o sistema de controle proposto, foi desenvolvido um protótipo de um guindaste utilizando recursos da Mecatrônica Industrial na sua síntese e construção.

Justificativa ou relevância – o parque industrial regional tem forte atuação na área de eletroeletrônica, caracterizando-se como um pólo de desenvolvimento tecnológico de referência na área.

A diversidade e quantidade de produtos produzidos por essas empresas requerem automação dos processos de manufatura para obter qualidade, eficiência, ganho nos custos e competitividade.

Nas linhas de produção de muitas dessas empresas, são utilizados uma diversidade de equipamentos mecânicos que são acionados por motores de corrente contínua, que geram movimentos necessários e adequados a aplicações específicas. Em muitos casos há necessidade de precisão no controle desses movimentos.

Para o controle do motor será utilizado o microcontrolador PIC 16F877A da fabricante Microchip, como afirma Renato A. Silva (2007, p. 17):

O atual desenvolvimento tecnológico nas áreas de automação e robótica deve se principalmente ao desenvolvimento dos microcontroladores e processadores digitais de sinais (DSP), que possuem memórias e cuja estrutura lembra os microcomputadores atuais.

O protótipo é um guindaste de madeira na parte da estrutura, com os movimentos verticais e horizontais feitos por dois motores aproveitados de uma impressora, alimentados com uma fonte de 12 V e controlados por um microcontrolador modelo PIC16F877A, da fabricante Microchip e para programá-lo foi utilizado o compilador PICC-Lite Compiler, da HI-TECH Software que gera um código em linguagem de máquina com extensão .HEX que pode ser gravado no microcontrolador através do software K-150 e um dispositivo onde se encaixa o PIC e comunica com o micro através de um adaptador USB-RS232 (ambos da empresa DIY eletronics (HK) Ltd.

(3)

2. METODOLOGIA

Para o desenvolvimento desse trabalho foi efetuado um aprofundamento teórico sobre o microcontrolador, tipos de motores, e as interfaces do microcontrolador com os sensores e atuadores utilizados.

2.1 Referencial teórico.

2.1.1 Microcontrolador

O microcontrolador utilizado foi o PIC 16F877A, da fabricante Microchip, cujas características mais importantes são:

- velocidade de operação de até 20 MHz de clock; - memória interna de dados RAM (368 bytes);

- memória de programa FLASH (8000 palavras de 14 bits cada); - 33 pinos de I/O individualmente configurados;

- 3 timers configuráveis (temporizador e/ou contador); - 2 módulos de Captura/Comparação/PWM;

- interface serial RS232 (USART); - 14 fontes de interrupção.

No protótipo foi utilizado um oscilador de 14.302.444 Hz entre os pinos 13. Os capacitores são de 22pF, que conforme o fabricante não são valores ideais, mas para um protótipo não haveria maiores problemas. O resistor entre o pino 14 e o cristal oscilador seria para evitar que o sinal senoidal ficasse truncado o que poderia ser observado por um osciloscópio, conforme figura 1.

(4)

Figura 1: cristal oscilador

Fonte: Zanco (2011)

O botão de reinício do programa (ou reset) fica no pino e os resistores r1 e r2 e o capacitor de 100nF são recomendações do fabricante para manter as tensões estáveis no PIC.

Fonte: Zanco (2011).

Os bits dos registradores de 8 bits PORTA, PORTB, PORTC, PORTD e PORTE correspondem aos pinos das entradas/saídas digitais do PIC. Porém no registrador PORTA apenas os bits 0 a 5 correspondem aos pinos de I/O, e no PORTE apenas os bits 0, 1 e 2 correspondem aos pinos de I/O. Os registradores TRISA, TRISB, TRISC, TRISD e TRISE definem se os pinos correspondentes aos registradores serão de entrada (valor 1) ou saída (valor 0).

Os pinos 33 a 40 que correspondem aos bits 0 a 7 registrador PORTB possuem PULL UP intermo de modo que quando definimos o pino correspondente

(5)

aos bits 0 e 6 do registrador RB como entrada, eles ficam em nível lógico 1 (5V) e os demais ficam com 0 (0 V).

O pino correspondente ao RB0 estará sendo usado como entrada do sinal proveniente dos codecs. Quando há passagem de luz infra-vermelho (IR) do led emissor para o receptor o circuito envia sinal 0 para o PIC enquanto quando a luz é bloqueada pelo disco do codec, temos sinal 1 (5v) na entrada do PIC. Cada vez que há uma mudança de 0 para 1 a rotina de interrupção externa detecta e incrementa um contador. Como há 2 motores e portanto 2 codecs mas apenas uma entrada para interrupção externa (RB0) há um relê controlado através do pino correspondente ao bit 2 do registrador PORTB (ou RB0) para receber o sinal chegando na entrada NA (normalmente aberto) ou NF (normalmente fechado) do relê. Para tanto, foi necessário eliminar o repique causado no momento da mudança da chave do relê através de um atraso de 15ms, para aguardar que o sinal se estabilize, de acordo com a figura 3.

Figura 3: emissor/receptor para codec

Fonte: autor

A cada 100 milésimos de segundo (0,1 s) o programa envia uma certa tensão (val1) para o motor por 30ms(0,03s) e depois desliga por 70ms(0,07s). A cada 100ms o programa verifica se chegou 1 pulso; se não chegou, aumenta a tensão em 4 unidades (máximo 1023); se ultrapassou, diminui em 4 unidades.

A saída dessa tensão é enviada para o pino 17 (RC2) ou 16 (RC1) do PIC e depois amplificada, convertida em corrente e enviada aos motores; entre a saída do

(6)

amplificador e o motor há também um conjunto de 2 relés de 12V que faz com que possamos inverter o sentido de rotação do motor se enviar uma corrente ao circuito de amplificação para os relés. O controle destes reles é feito através de 2 pinos correspondentes aos bits 3 e 4 do registrador PORTB (Figura 4).

Figura 4: circuito de amplificação para motores

Fonte: autor

Para o controle da PWM são usados vários registradores, como T2CON que define parametros do TMR2; CCPxCON (x=1 ou x=2) onde ficam os 2 bits mais significativos e definimos o registrador CCP como sendo para uso em PWM (pode também ser usado para captura e comparação); PR2, onde definimos o período PWM; e CCPRxL e CCPRxH. O registrador CCPRxH é somente de leitura, de modo que somente quando PR2 = TMR2 os 2 bits (CCP1x e CCP1Y) são transferidos para o registrador CCPRxH.

registrador CCP1CON e CCP2CON

7 6 5 4 3 2 1 0

- - CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0

Duty cycle = (CCPR1L:CCP1CON<5,4> * (TMR2 pre scale) / FOSC Período = ((PR2+1) * 4 * (TMR2 pre scale)) / FOSC

Para o caso do protótipo temos:

(7)

Veja trecho da programação: PR2 = 0xff;

masc = 0x00;

CCPR1L = pot >> 2; // pot = valor do PWM masc = pot << 6;

masc = masc >> 2;

CCP1CON = CCP1CON | masc;

TRISC2 = 0; // pino RC2 = saída

T2CON = 0x06; // habilita timer2, pre-scale = 1:16 CCP1CON = CCP1CON | 0x0c;

Para o controle da entrada analógica temos principalmente os registradores PORTA (registrador RA), ADCON0 e ADCON1 onde podemos definir quais pinos do registrador RA funcionarão como entrada analógica ou digital, ligar/desligar a conversão analógico para digital (A/D), o início da conversão A/D, se o clock será FOSC/2 ou FOSC/64 (frequência de oscilação), etc; o resultado da conversão será armazenada nos registradores ADRESH e ADRESL. Se o bit 7 (ADFM) do registrador ADCON1 for 0(zero) os 8 bits mais significativos ficarão no registrador ADRESH e os 2 restantes no outro registrador; se for 1, os 8 bits menos significativos ficarão no registrador ADRESL e os 2 bits restantes no ADRESH.

registrador ADCON0

7 6 5 4 3 2 1 0

ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE - AD0N

registrador ADCON1

7 6 5 4 3 2 1 0

ADFM ADCS2 - - PCFG3 PCFG2 PCFG1 PCFG0

Trecho da programação:

TRISA = 0b00001011; // bits A3, A1, A0 = entrada, restante saida

ADCON0 = 0b10000001; // fosc/64, canal A0 como entrada analogica, habilita conversão

ADCON1 = 0b11000100; // fosc/64, RA0, RA1 e RA3 = entrada, resultado justificado à direita (adresh:adresl)

CHS0 = 0; // leitura do pino A0 delay67(); // pausa de 67 micro-segundos

(8)

ADG0 = 1; // liga go/done while (ADG0);

val1 = ADRESH * 256 + ADRESL;

A entrada analógica foi utilizada para poder encontrar e definir os pontos p1, p2, p3 e p4 para uso na subrotina de automação, através de um potenciômetro para controlar o movimento dos motores.

Para a comunicação com o PC foi utilizado a conexão serial assíncrona RS-232, onde os principais registradores são TXSTA e RCSTA:

Registrador TXSTA

7 6 5 4 3 2 1 0

CSRC TX9 TXEN SYNC BRGH TRMT TX9D

registrador RXSTA

7 6 5 4 3 2 1 0

SPEN RX9 SREN CREN ADDEN FERR OERR RX9

Para escolha do baud rate(velocidade de transmissão), fazemos:

SPBRG = FOSC / (16 * (baud rate)) – 1, e BRGH = 1 (transmissão alta velocidade).

Para implementação de transmissão serial assíncrona: a) iniciar o registrador BRGH para o baud rate desejado; b) configurar pinos RC7 e RC6 como entrada;

c) habilitar porta de comunicação serial: SYNC=0 e SPEN=1; d) habilitar transmissão: TXEN=1;

e) TXREG = dado a transmitir;

f) TRMT = 1 → indicação de transmissão efetuada.

Para a recepção:

(9)

d) habilitar recepção: CREN=1;

e) ler FERR e OERR para ver se houve erro; f) dado = RCREG (8bits);

g) se houver erro, apagar CREN=0.

A comunicação com o PC foi utilizada para fins de depuração do programa no PIC para facilitar na identificação mais rápida na localização de eventuais erros na lógica de programação ou erro de hardware.

2.1.2 Motores

Existem diversos tipos de motores de corrente alternada como os de indução monofásico, bifásico, trifásico, síncronos, assíncronos, mas como o motor escolhido foi o tipo de corrente contínua, o estudo foi focado neste tipo.

Mesmo entre motores de contínua existem os vários tipos, como os de ímã permanente no lugar do estator, e os que possuem dois enrolamentos: um com fios de seção grossa e poucas espiras, ligado em série com o enrolamento da armadura, chamado de enrolamento série, e outro de seção fina com muitas espiras ligada em paralelo com o enrolamento da armadura, chamado de enrolamento shunt, de acordo com a figura 5.

Os motores com enrolamento em série possuem alto torque porém possuem péssimo controle de velocidade, pois se partir sem carga a velocidade pode aumentar muito, quebrar e até ferir pessoas que estiverem por perto.

Figura 5: tipos de enrolamentos

(10)

Os motores com enrolamento em shunt possuem alto torque e baixa velocidade com pouca variação mesmo variando a carga.

Os motores compound podem ser de dois tipos: cumulativo e diferencial. No tipo cumulativo o enrolamento shunt deve produzir campo magnético com mesma direção e sentido ao campo produzido no enrolamento série; como resultado temos alto torque na partida, velocidade limitada, baixa variação de velocidade mesmo com variação de carga;

No tipo diferencial o enrolamento shunt deve produzir campo magnético com mesma direção mas sentido oposto ao campo produzido no enrolamento série; como resultado temos uma queda significativa com o aumento da carga.

Figura 6: motor série

Figura 7: motor paralelo (shunt)

Fonte: Nascimento Junior (2011) Fonte: Nascimento Junior (2011)

(11)

Os motores utilizados foram de uma impressora que são do tipo corrente contínua com escovas/comutador e estator de imã permanente (portanto não é série, nem paralelo, nem compound).

Conforme Nascimento Junior (2011, p. 85):

A principal aplicação de motor de CC está ligada ao controle de velocidade com necessidade crítica de torque, isto é, motores de corrente contínua são excelentes escolhas quando necessitamos manter um torque considerável, mesmo variando a velocidade. Atualmente é possível variar a velocidade de motores CA com inversores de frequência, mas em algumas situações esse tipo de conjunto simplesmente não atende às condições de torqe exigidas e traz outros problemas, como a poluição da rede, que talvez o futuro resolva.

2.1.3 Técnicas de controle existentes

Os controladores industriais têm como princípio de funcionamento a comparação do valor real da saída do sistema onde estão aplicados com o valor desejado para essa saída. Podemos classificar de acordo com a sua ação de controle como:

a) controladores ON-OFF – apenas dois valores: ligado ou desligado;

b) controladores proporcionais (P) – amplificador com ganho ajustável de acordo com o erro/desvio;

Figura 8: motor compound

(12)

c) controladores de ação integral (I) – o sinal de saída em cada instante é dado pela área sob a curva do erro até esse instante. O controle Integral é sempre usado em conjunto com o controle proporcional, pois sem este auxílio pode assumir valor não nulo mesmo quando o erro é zero.

d) Controladores de ação derivativo (PD) – a ação de controle derivativo tem um efeito antecipado. A sua principal desvantagem reside no fato de que os sinais de ruído são amplificados e pode ocorrer saturação do atuador. É sempre usado em combinação com ação proporcional (P) ou proporcional-integral (PI).

e) Controladores de ação proporcional-integral-derivativa (PID) – é uma combinação dos controles proporcionais, integrais e derivativos.

2.2 Desenvolvimento do protótipo

A metodologia escolhida foi estudar a geometria e funcionalidades do protótipo para depois definir a técnicas de programação do microcontrolador.

No caso a geometria seria a de um guindaste com movimento de subida e descida e giro para esquerda ou direita em 90° ou pouco mais.

Para o controle do motor foi utilizado o seguinte método: o programa envia uma certa tensão PWM ao circuito de potência para movimentar o motor durante 30 ms (milissegundos ) , em seguida o motor fica desligado por 70 ms. A cada 100 ms o programa verifica se o sensor de rotação do motor (encoder) enviou um pulso indicando que o eixo se moveu um certo ângulo (no caso de um encoder com 4 furos, seria de 90 graus) nesse intervalo de tempo; se a tensão não foi suficiente, ela aumenta de 4 unidades (que vai de 0 a 1023) para o próximo ciclo; se moveu mais do que o esperado, ela diminui em 4 unidades para o próximo ciclo.

O circuito de potência foi descrito na seção 2.1 referencial teórico onde descrevemos sobre o PWM.

Os pinos 33 a 40 que correspondem aos bits 0 a 7 do registrador PORTB possuem PULL UP interno de modo que quando setamos o bit 7 do registrador

(13)

OPTION_REG (registrador que configura as interrupções externa e timer0), isto é RBPU = 1, todos os pinos configurados como entrada ficam no nível 1 (5v).

O pino correspondente ao bit 0 do PORTB é a entrada dos sensores do encoder. Como existe apenas uma interrupção externa no PIC 16F877A e portanto apenas um pino associado a ela, foi utilizado um relê para selecionar o sinal proveniente do sensor de rotação do motor de subida/descida da carga ou do giro da plataforma.

O pino correspondente ao bit ao bit 6 foi usado como entrada do botão de parada de emergência e o pino 7 para o botão de inversão de rotação do motor na direção vertical.

Para a saída aos amplificadores que movimentarão os motores temos os pinos 16 e 17 que correspondem ao registrador PORTC, bits 1 e 2 (pwm1 e pwm2)

Figura 9: protótipo do guindaste

(14)

Parte mecânica

Para movimentação do objeto na vertical, temos 3 eixos para redução: redução do motor para eixo 2: 8,0mm/37,5mm = 0,213

redução do eixo 2 para eixo 3: 12mm/46mm = 0,2609 redução total = 0.213*0,2609 = ,05557

Portanto, para cada 1/0.05557 = 18 rotações do eixo motor temos 1 volta no eixo que vai elevar/abaixar a carga; para cada volta, o guincho sobe ou desce 8*pi = 25 mm; no início da subida, a cada volta no eixo motor, o guincho sobre 25/18 = 1,39 mm.

Levando-se em consideração que a altura máxima do guicho é de 180mm, o eixo motor girará 180/1,39 = 129 voltas, mas como o codec está instalado no eixo 2, e possui 3 furos, deverá chegar 129*0,213*3 = 82 pulsos ao controlador.

Sendo um protótipo com as polias feitas de borracha de chinelo cortadas a mão com estilete, e as correias feitas de elástico, as medidas podem resultar bem diferente do calculado, de modo que para programação foi considerado máximo de 80 voltas no eixo motor antes de parar.

Para a movimentação horizontal, temos 4 eixos: redução do motor para eixo 2: 7,0/37,5 = 0,187 redução do eixo 2 para eixo 3: 13/50 = 0,26

redução do eixo 3 para o eixo 4: 18,5/66,3 = 0,279 redução total = 0.187*0,260*0,279=0,01356

Portanto, para cada 1/0.01356 = 73,7 rotações do eixo motor temos 1 volta no eixo que vai girar a plataforma do guindaste. Fixando num máximo de 180° de giro, o eixo motor deverá girar no máximo 73,7/2/2 = 18,4 voltas para direita ou esquerda.

Porém o codec está instalado no eixo 2, temos 18,4*0.187 = 3,44; e como o disco do codec possui 4 furos, deverá chegar 3,44*4 = 13.7, isto é, aproximadamente 14 pulsos para chegar da posição zero para 90° ou -90°.

(15)

2.3 Resultados

Nas primeiras tentativas, ocorreram muitos problemas de mau contato na parte entre os emissores e sensores porque a conexão era feita por “amarração” mas quando foi devidamente soldada, esta parte foi resolvida, porém a imprecisão na parte mecânica ainda trouxe muitos atrasos.

O controle de velocidade está bastante satisfatório considerando as imprecisões na estrutura mecânica, pois mesmo variando o peso da carga de 20g a 220g a velocidade se manteve a mesma, e o motor consome somente o necessário para mover o guindaste.

Nos últimos testes foi perdido muito tempo tentando descobrir a causa de um problema que fazia o microcontrolador reiniciar depois de concluir metade do trajeto (os movimentos foram divididos em 6 fases: 1.levantar o objeto até cert a altura, 2.girar um certo ângulo, 3.pousar o objeto, 4.depois de uma pausa, levantar o objeto para voltar a posição inicial ou apenas devolver o guincho à posição inicial, 5.girar no sentido contrario ao item 2, 6.abaixar até a posição inicial).

Obviamente a primeira coisa a fazer foi conferir a tensão, mas no momento estava dentro dos limites, porém como não fiquei de olho todos os momentos, achei que o problema estava em outro lugar, mas quando substituí a fonte de energia (uma fonte originária de um PC) por uma bateria de 12v e um conjunto de 4 pilhas, percebi que era mesmo a fonte o problema de reinicializar toda hora.

3. CONSIDERAÇÕES FINAIS

A idéia original seria medir a posição inicial do guincho, a altura máxima, o ângulo de giro e a posição de pouso apertando um botão a cada vez que chegasse em uma dessas posições (que seria medido pelos pulsos enviados do codec ao microcontrolador e visualizados em um display) movendo o guincho com 2 potenciômetros (um para descida/subida e outro para giro na horizontal), porém foi deixado de lado em vista do pouco tempo que faltava e o foco era o controle de velocidade e precisão dos motores, não as várias funcionalidades que o protótipo deveria apresentar para ficar mais parecido com um guindaste comercial.

(16)

4. REFERÊNCIAS

NASCIMENTO JUNIOR, Geraldo Carvalho do. Máquinas elétricas: teoria e ensaios. 4. ed. São Paulo: Érica, 2011.

SILVA, Renato A.. Programando microcontroladores PIC: linguagem C. São Paulo: Ensino profissional, 2006.

ZANCO, Wagner da Silva. Microcontroladores PIC: técnicas de software e hardware para projetos de circuitos eletrônicos. 2. ed. São Paulo: Érica, 2011.

______. Microcontrolador PIC 18 com linguagem C: uma abordagem prática e objetiva com base no PIC 18F4520. São Paulo: Érica, 2011.

Referências

Documentos relacionados

[r]

Solicita alteração de Solo Rural , REOC – Espaço destinado a equipamentos e outras estruturas ou ocupações compatíveis com o solo rural - Herdades e Quintas com Edificação

A Justiça seria valorizada pelo seu fim, devido a que não é um bem em si, mas um meio de atingir o mesmo (DI LORENZO, 2000, p. A Justiça na visão de Aristóteles ocupa o

Movimentos Políticos Pan-Europeus: os movimentos escolhem também os candidatos principais para mobilizar o eleitorado e organizam a estratégia de campanha em diferentes níveis:

Desta forma, os objetivos deste estudo foram avaliar o envolvimento periodontal e o perfil lipídico dos pacientes com DMJ e controles saudáveis, incluindo dados

Combinaram encontrar-se às 21h

a) “O velho dá um passo à frente, três passos atrás, dois passos à frente” _________________. b) O velho estava desorientado

O objetivo desta revisão da literatura é avaliar os conceitos e critérios de resistência e refratariedade ao tratamento, abordar os aspectos intrínsecos e extrínsecos à