Sei sulla pagina 1di 56

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO CEARÁ

TECNOLOGIA EM MECATRÔNICA INDUSTRIAL


DISCIPLINA DE ACIONAMENTOS DE MÁQUINA I

Antonio Roberto de França Gomes Oliveira


Felipe Costa do Nascimento
Rerick Pessoa Costa

DRIVE PARA ACIONAMENTO DE UM MOTOR CC


POR MEIO DE PONTE H

Sobral–CE
2018
Antonio Roberto de França Gomes Oliveira
Felipe Costa do Nascimento
Rerick Pessoa Costa

DRIVE PARA ACIONAMENTO DE UM MOTOR CC


POR MEIO DE PONTE H

Relatório técnico apresentado como requisito parcial


para obtenção de aprovação na disciplina de
Acionamento de Máquinas elétricas I, no Curso de
Tecnologia em Mecatrônica Industrial, no Instituto
Federal do Ceará.

Prof. José Aglailson Silva de Olivindo

Sobral–CE
2018
RESUMO
Este trabalho apresenta a metodologia utilizada para o dimensionamento e posterior
construção de um sistema de controle e de potência de um drive para o acionamento de um
motor CC. O sistema de controle é formado basicamente por um microcontrolador
PIC18F4550, juntamente com o CI IR2110. Enquanto que o sistema de potência é formado
pelos MOSFETS que constituem a ponte H. O drive construído apresenta as principais
funcionalidades necessárias ao controle de um motor, como partida em ambos os sentidos,
parada e controle de velocidade por meio da variação do PWM fornecido.

Palavras-chave: Motor CC. Modulação por largura de pulso. Acionamento de motores CC.
Sumário
1. INTRODUÇÃO .................................................................................................................. 1
2. FUNDAMENTAÇÃO TEÓRICA ...................................................................................... 3
2.1 O MOTOR CC ..................................................................................................................... 3
2.1.1 Aspectos construtivos ........................................................................................................ 3
2.1.2 Princípio de funcionamento ............................................................................................... 6
2.1.3 Controle de velocidade de um motor CC .......................................................................... 8
2.1.4 Tipos de excitação ........................................................................................................... 11
2.1.5 Vantagens e desvantagens do acionamento em corrente contínua. ................................. 12
2.1.5.1 Vantagens ..................................................................................................................... 12
2.1.5.2 Desvantagens ................................................................................................................ 13
2.2 IR2110 ................................................................................................................................ 13
2.2.1 Capacitor de BOOTSTRAP............................................................................................. 14
2.2.2 Garantindo a desativação do IR2110 ............................................................................... 15
2.3 PONTE H ........................................................................................................................... 16
2.4 MICROCONTROLADOR PIC18F4550 ........................................................................... 17
2.4.1 Modo PWM ..................................................................................................................... 18
3.4.2 Interrupção e Timer ......................................................................................................... 19
2.5 MPLABX - IDE ................................................................................................................. 19
3. DESENVOLVIMENTO ................................................................................................... 22
3.1 OBJETIVO GERAL ........................................................................................................... 22
3.2 OBJETIVOS ESPECÍFICOS ............................................................................................. 22
3.3 METODOLOGIA ............................................................................................................... 22
3.4 PROCEDIMENTOS ESPERIMENTAIS .......................................................................... 22
3.4.1 Dimensionamento, simulação e confecção do circuito de controle................................. 22
3.4.2 Dimensionamento, simulação e confecção do circuito de potência ................................ 27
3.5 OBSERVAÇÕES DE DEMAIS ERROS APRESENTADOS........................................... 32
3.6 LISTA DE COMPONENTES ............................................................................................ 33
4. RESULTADOS ................................................................................................................. 35
5. CONCLUSÃO .................................................................................................................. 41
6. TRABALHOS FUTUROS................................................................................................ 42
REFERÊNCIAS BIBLIOGRÁGICAS..................................................................................... 43
ANEXO I .................................................................................................................................. 44
1

1. INTRODUÇÃO

A máquina elétrica pode ser definida com uma máquina capaz de converter energia elétrica
em energia mecânica ou o oposto. Segundo Kosow (1982, p. 38) “a máquina de CC é uma
máquina elétrica girante, capaz de converter energia mecânica em energia elétrica (gerador) ou
energia elétrica em energia mecânica (motor)”. É o mais utilizado dentre os tipos de motores,
pois une benefícios como um controle de velocidade preciso, característica necessária em muitas
aplicações, facilidade na limpeza e no comando além de serem máquinas de construção
simplificada e poderem se adaptar a qualquer tipo de carga.
Segundo Toro (1994, p. 266) “A máquina de CC é uma máquina altamente versátil. Pode
fornecer torques de partida elevados, assim como torques de aceleração e desaceleração
elevados. É capaz de inversões rápidas e controle de velocidade numa faixa de 4:1 é obtido com
relativa facilidade, em comparação com todos os outros dispositivos de conversão
eletromecânica de energia”. Como consequência, a máquina CC se apresenta como a melhor
opção em inúmeras aplicações, tais com:
 Máquinas de papel
 Bobinadeiras e desbobinadeiras
 Laminadores
 Máquinas de impressão
 Extrusoras
 Prensas
 Elevadores
 Movimentação e elevação de cargas
 Moinhos de rolos
 Mesa de testes de motores
O microcontrolador é um circuito integrado especial, assim como o microprocessador.
Enquanto um CI comum pode ser formado apenas por portas lógicas, como AND, OR ou NOT,
por exemplo, há também CIs que podem ser usados como temporizadores, osciladores ou
decodificadores, ou seja, existem CIs com funções únicas e bem específicas que fazem apenas
aquilo para que foram projetados, consequentemente, existem milhares de CIs de tipos e funções
diferentes. O microcontrolador, por sua vez, não faz algo específico, ele é um CI de uso geral, já
que dá a possibilidade ao operador de programa-lo para executar uma determinada função.
2

As aplicações que podem ser empregadas ao microcontrolador irão depender dos


conhecimentos e criatividade do programador e do hardware fornecido pelo microcontrolador.
Os microcontroladores também estão limitados a sua memória, capacidade de processamento e
ao número de instruções. O microcontrolador escolhido para realizar o controle do acionamento
e operação do motor foi o PIC18F4550.
3

2. FUNDAMENTAÇÃO TEÓRICA

2.1 O MOTOR CC

2.1.1 Aspectos construtivos


O motor de corrente contínua é composto de duas estruturas magnéticas, que podem ser
visualizadas na Figura 1:
 Estator (enrolamento de campo ou ímã permanente);
 Rotor (enrolamento de armadura).
Figura 1 – Partes do motor.

Fonte: Cardoso 2005


O estator, apresentado na Figura 2, é a parte fixa, possui sapatas polares formadas por
pacotes de lâminas de aço silício justapostas. Em torno das sapatas polares se enrolam fios
condutores que formam bobinas. O rotor, apresentado na Figura 3, é a parte móvel do motor, está
ligada diretamente ao eixo de transmissão de movimento e possui um conjunto de lâminas de aço
silício que apresenta ranhuras, onde são instaladas as bobinas do motor.
4

Figura 2 - Estator

Fonte: Página do edisciplinas, USP


Disponível em:
<https://edisciplinas.usp.br/pluginfile.php/322205/mod_resource/content/1/PEA%202400%20Notas%20de%20aula_6_revB.pdf >
Acesso em Fev. 2018.

Figura 3 - Rotor

Fonte: Página do edisciplinas, USP


5

Disponível em:
<https://edisciplinas.usp.br/pluginfile.php/322205/mod_resource/content/1/PEA%202400%20Notas%20de%20aula_6_revB.pdf >
Acesso em Fev. 2018.

Os terminais dessas bobinas estão conectados diretamente ao coletor. O coletor, apresentado


na Figura 4, conecta eletricamente as bobinas do rotor através de escovas de carvão à fonte de
energia elétrica, de modo a permitir a movimentação do rotor sem causar curtos-circuitos. As
escovas, visualizadas na Figura 5, são constituídas de carvão grafite ou carbono e conduzem a
energia da fonte externa para os contatos do comutador e as bobinas do rotor.

Figura 4 – Coletor de um motor CC

Fonte: Página do Leviclaw projetos


Disponível em: <http://leviclawprojetos.no.comunidades.net/index.php?pagina=1907076966>
Acesso em: Fev. 2018.

Figura 5 – Escovas de um motor CC

Fonte: Página da Wikipédia


Disponível em: https://pt.wikipedia.org/wiki/Escova_(electricidade)
Acesso em: Fev. 2018.
6

2.1.2 Princípio de funcionamento


A Figura 6 mostra, de maneira simplificada, o funcionamento do motor CC de dois pólos.
Figura 6 – Princípio de funcionamento de um motor CC

Fonte: SIEMENS, Motores de corrente contínua.


A figura anterior apresenta um desenho esquemático simples de um motor onde o estator é
composto por ímãs permanentes e o rotor é uma bobina de fio de cobre esmaltado no qual circula
uma corrente elétrica. Sendo que as correntes elétricas produzem campos magnéticos, essa
bobina se mantem como um ímã permanente, com seus pólos N (norte) e S (sul) ilustrados na
respectiva figura.
Na Figura 6a a bobina encontra-se na horizontal. Uma vez que os pólos opostos se atraem, a
bobina adquire um torque que age no sentido de girar a bobina no sentido anti-horário. A bobina
sofre aceleração angular e continua seu giro para a esquerda, como pode ser visto na Figura 6b.
Esse torque continua até que os pólos da bobina alcancem os pólos opostos dos ímãs fixos
(estator). Na Figura 6c a bobina girou 90º, onde não há torque algum, uma vez que os braços de
alavanca são nulos, ou seja, a direção das forças passa pelo centro de rotação.
Neste instante o rotor está em equilíbrio estável (força resultante nula e torque resultante
nulo). Esse é o momento adequado para inverter o sentido da corrente na bobina. Neste instante
os pólos de mesmo nome estão muito próximos e a força de repulsão é intensa. Devido à inércia
do rotor e como a bobina já apresenta um momento angular para a esquerda, ela continua girando
no sentido anti-horário (semelhante a uma “inércia de rotação”) e o novo torque (agora
propiciado por forças de repulsão), representado na Figura 6d, colabora para a manutenção e
aceleração do movimento de rotação.
7

Mesmo após a bobina ter sido rotacionada 180º, cuja situação não está ilustrada na Figura 6,
o movimento continua, a bobina chega à vertical realizando um giro de 270º. No qual o torque
novamente se anula, a corrente então inverte seu sentido, há um novo torque e a bobina chega
novamente à situação apresentada na Figura 6a, finalizando um giro de 360º. E o ciclo se repete.
Essas atrações e repulsões bem coordenadas é que fazem o rotor girar. A inversão do sentido
da corrente (comutação), no momento oportuno, é uma condição indispensável para a
manutenção dos torques que garantem o funcionamento dos motores. A comutação consiste na
mudança de uma lâmina do comutador, onde as bobinas são ligadas em série, para a próxima.
Durante esta comutação a bobina é momentaneamente curto-circuitada pelas escovas, o que
ajuda a liberar energia a armazenada, antes de a corrente fluir no sentido oposto.
Porém, como essa inversão de corrente não é instantânea, uma força eletromotriz é induzida
na espira o que origina uma corrente de curto-circuito que circula no coletor, nas espiras e nas
escovas. Após o curto-circuito, a interrupção dessa corrente dá origem ao aparecimento de
faíscas nos contatos das escovas com o coletor, que podem gerar arcos elétricos perigosos e que
danificam o coletor, tendo, portanto que ser eliminadas. A fim de eliminar as faíscas, torna-se
necessário induzir na espira, durante o curto-circuito, uma força eletromotriz que anule a
resultante do processo de comutação. Conseguido através dos pólos de comutação, de menores
dimensões e situados sobre a linha neutra e percorridos pela mesma corrente do rotor. No entanto
estes pólos, além de anularem o fenômeno da comutação, enfraquecem o fluxo do estator –
fenômeno chamado de “reação magnética do rotor”. Nas máquinas de grandes dimensões esse
fenômeno é eliminado através dos enrolamentos de compensação que, ligados em série com o
rotor e colocados na periferia dos pólos do estator, geram um fluxo com a mesma intensidade e
sentido contrário do fluxo de reação, anulando-o.
8

2.1.3 Controle de velocidade de um motor CC


A Figura 7 ilustra o modelo do circuito elétrico do motor CC.

Figura 7 – Modelo do circuito elétrico do motor CC

Fonte: SIEMENS, Motores de corrente contínua.


A Lei de Kirchhoff aplicada ao circuito de armadura resulta em:
U a  Ra  I a  E (1)
Onde:
Ua = Tensão de armadura.
Ra = Resistência da armadura.
I = Corrente de armadura.
E = Força Eletromotriz induzida ou Força Contra-Eletromotriz da armadura.

Pela Lei da Indução de Faraday, a força eletromotriz induzida é proporcional ao fluxo e à


rotação, ou seja:
E  kE    n (2)
Combinando as eq. (1) e (2), a expressão para a velocidade do motor CC é dada por:
U a  I a  Ra
n (3)
kE  
Onde:
n = Velocidade de rotação.
9

kE = Constante dependente do tamanho do rotor, do número de polos do rotor e


como esses polos são interconectados.
Φ = Fluxo no entreferro.

O conjugado do motor é dado por:


T  KT  I a   (4)

Onde:
T = Conjugado eletromagnético do motor.
KT = Constante de torque.

O controle de velocidade, até à rotação nominal é feito através da variação da tensão da


armadura, mantendo-se o fluxo constante. Dessa forma, observando-se a eq. (4) a corrente de
armadura se eleva de modo a produzir o conjugado total requerido pela carga, mais o conjugado
necessário para a aceleração. O conjugado acelerador incrementa a velocidade da máquina e, de
acordo com a eq. (2), a força eletromotriz induzida no motor também aumenta. Assim, segundo a
eq. (1), a corrente transitória cai até um ponto de equilíbrio, que corresponde à manutenção do
torque exigido pela carga. Esse ponto de equilíbrio é definido pelo valor da tensão de armadura
aplicado e pela queda de tensão na resistência de armadura, como mostra a eq. (1). Se o
conjugado requerido pela carga for constante, o motor tenderá a supri-lo, sempre absorvendo
uma corrente de armadura também praticamente constante.
Somente durante as acelerações provocadas pelo aumento da tensão, a corrente se eleva para
provocar a aceleração da máquina, retornando após isso, ao seu valor original. Portanto, em
regime, o motor CC opera a corrente de armadura essencialmente constante também. O nível
dessa corrente é determinado pela carga no eixo. Assim, no modo de variação pela tensão de
armadura, até a rotação nominal, o motor tem a disponibilidade de acionar a carga exercendo um
torque constante em qualquer rotação de regime estabelecida, como mostra a Figura 8, que
representa as curvas características dos motores CC. Esse torque pode ser qualquer, até o limite
do valor nominal, que corresponde a uma corrente de armadura nominal, definida por aspectos
técnicos de dimensionamento do motor.
Ao relacionar uma nova velocidade a partir de uma velocidade inicial e da variação de tensão
na armadura tem-se a equação (5).
Ua2
n2   n1 (5)
U a1
10

Segundo Toro (1994, p. 297) “a variação na velocidade do motor que ocorre á medida que a
carga muda do valor nominal a em vazio é um importante indicador de desempenho e é chamada
de regulação de velocidade (RV)”. Esse valor é expresso em porcentagem e pode ser obtido a
partir da equação (6).
velocidade0  velocidadeT
RV  (6)
velocidadeT
Onde:
velocidade0 = velocidade em vazio.
velocidadeT = velocidade em plena carga.

Figura 8 – Curvas características de um motor CC

Fonte: SIEMENS, Motores de corrente contínua.


A curva de magnetização é um gráfico obtido experimentalmente, que relaciona a indução
magnética (B) com a intensidade do campo magnético ou excitação magnética (H). O gráfico,
apresentado na figura 9, também pode relacionar o fluxo magnético (ϕ) com a corrente de
excitação.
11

Figura 9 – Curva de magnetização

Fonte: Página da efisica


Disponível em: http://efisica.if.usp.br/eletricidade/basico/campo_magnetico/curva_b_h/
Acesso em: Fev. 2018.

2.1.4 Tipos de excitação


Os motores CC são classificados de acordo com o tipo de excitação, como pode ser
visualizado na Tabela 1.
Tabela 1 – Tipos de motores CC

Tipo de Representação Características


excitação
Série - Bobinas de campo estão em série com
o enrolamento da armadura.
- Só há fluxo no entreferro da máquina
quando a corrente da armadura for
diferente de zero (máquina carregada).
- Conjugado é em função quadrática da
corrente, uma vez que o fluxo é
praticamente proporcional à corrente
de armadura.
- Conjugado elevado em baixa rotação.
- Potência constante.
- Velocidade extremamente elevada
quando o motor é descarregado, por
isso não se recomenda utilizar
transmissões por meio de polias e
correias.
12

Paralelo - Velocidade praticamente constante.


- Velocidade ajustável por variação da
tensão de armadura.

Independente - Motor excitado externamente pelo


circuito de campo.
- Velocidade praticamente constante.
- Velocidade ajustável por variação da
tensão de armadura e também por
enfraquecimento de campo.
- São os motores mais aplicados com
conversores CA/CC na indústria.
- Aplicações mais comuns: máquinas
de papel, laminadores, extrusoras,
fornos de cimento, etc.

Composto - Enrolamento de campo independente.


- Apresenta um fluxo mínimo mesmo
com o motor em vazio.

Fonte: SIEMENS, Motores de corrente contínua.

2.1.5 Vantagens e desvantagens do acionamento em corrente contínua.


De acordo com a aplicação, os acionamentos em corrente contínua são comumente os que
apresentam as maiores vantagens, em termos de confiabilidade, operação amigável e dinâmica
de controle. Entretanto, esse tipo de acionamento impõem alguns pontos negativos que serão
abordados a seguir.

2.1.5.1 Vantagens
 Opera nos quatro quadrantes com custos reduzidos.
 Ciclo permanece contínuo mesmo em rotações baixas.
 Apresenta alto torque na partida e em rotações baixas.
13

 Ampla variação de velocidade.


 Apresenta facilidade em controlar a velocidade
 Confiabilidade
 Flexibilidade (pois apresenta vários tipos de excitação)

2.1.5.2 Desvantagens
 Os motores de corrente contínua são maiores e mais caros que os motores de indução, se
comparados para uma mesma potência.
 É necessária uma maior quantidade de manutenções (devido aos comutadores).
 Ocorrência de arcos e faíscas devido à comutação de corrente por elemento mecânico
(não pode ser instalado em ambientes com risco de explosão e produtos inflamáveis).
 Necessidade de métodos especiais de partida, mesmo em máquinas de pequeno porte.

2.2 IR2110
O IR2110 é um driver de alta tensão para chaves de potência (MOSFET e IGBT) e que
possuam canais de saída independentes referenciados no lado alto e baixo. Quando apenas
MOSFETs do tipo N são utilizados em uma ponte H, é necessário um método para que os
MOSFETs superiores sejam saturados, visto que não possuem referência entre o gate e o source.
Com o uso do IR2110, é possível referenciar o source do MOSFET superior, de modo de que ele
entre em saturação, quando a tensão de saturação for aplicada entre o gate e o source. A Figura
10 representa a conexão típica do driver IR2110.
Os pinos HIN E LIN são as responsáveis por receber o sinal que irá acionar a ponte H. O
pino VDD é o responsável pela alimentação lógica do circuito de 5 V. Os pinos SD e VSS
devem ser aterrados, visto que se o pino SD for posto em estado alto, o IR2110 é desativado. Por
fim, os pinos VCC e 𝑉𝐵 são alimentados com 12 V, os quais são responsáveis por saturar os
MOSFETs da ponte H. Devido ao IR2110 só acionar um sentido da ponte H, é necessário que
dois IRs sejam utilizados para acionar uma ponte completa e assim garantir a mudança de
sentido do motor durante a operação.
14

Figura 10 – Conexão típica do IR2110

Fonte: INTERNATIONAL RECTIFIER. Data Sheet IR2110(-1-2)(S)PbF/IR2113(-1-2)(S)PbF

2.2.1 Capacitor de BOOTSTRAP


O capacitor de bootstrat (CBOOT) é carregado sempre que o drive da parte baixa está
ligado e o pino de saída está abaixo do fornecimento da tensão (VDD) do driver. O capacitor de
bootstrap é descarregado apenas quando o interruptor da parte alta está ligado. Este capacitor é a
tensão de alimentação (VBS) para a seção superior do circuito. O primeiro parâmetro a ser
considerado é a queda de tensão máxima que devemos garantir quando o interruptor da parte alta
está ligado. A queda de tensão máxima permitida (VBOOT) depende da tensão mínima do
acionamento do gate a ser mantida, para o interruptor da parte alta. Se V GSMIN é a tensão mínima
gate-source, a queda no capacitor deve ser:
VBOOT  VCC  VF  VGSMIN (7)

Onde:
VDD = Tensão de alimentação do driver do gate [V].
VF = Queda de tensão do diodo de bootstrap [V].

O valor do capacitor de bootstrap é calculado por:


QTOTAL
CBOOT  (8)
VBOOT
Onde:
QTOTAL = Valor total da carga fornecida pelo capacitor.
15

A carga total fornecida pelo capacitor de bootstrap é calculada pela equação:

QTOTAL  QGATE   I LKCAP  I LKGS  I QBS  I LK  I LKDIODE   ton  QLS (9)

Onde:
QGATE = Carga total do gate;
ILKCAP = Corrente de fuga no gate-source do interruptor;
ILKGS = Corrente de fuga no capacitor de bootstrap;
IQBS = Corrente quiescente do circuito de bootstrap;
ILK = Corrente de fuga do circuito de bootstrap;
ILKDIODE = Corrente de fuga do diodo de bootstrap;
Ton = Tempo de ligação da parte alta;
QLS = Carga requerida pelo deslocador de nível interno, que é definido como 3ηC para
todos os drivers de gate de alta frequência.
A corrente de fuga do capacitor é importante apenas se for usado um capacitor eletrolítico,
caso contrário, pode ser desconsiderada.

2.2.2 Garantindo a desativação do IR2110


Como pode ser vista na imagem abaixo retirada do datasheet do IR2110. O pino SD ao ser
mantido com nível lógico baixo garante que o sinal inserido nos pinos HIN e LIN seja emitido
pelos pinos HO e LO. Entretanto ao alimentar o pino SD com nível lógico alto, os pinos de saída
HO e LO não emitiram nenhum sinal, independente da alimentação inserida nos pinos HIN e
LIN, seja ela de nível lógico alto ou baixo. Garantindo que as chaves não sejam acionadas.

Figura 11 – Diagrama de tempo de entrada/saída

Fonte: INTERNATIONAL RECTIFIER. Data Sheet IR2110(-1-2)(S)PbF/IR2113(-1-2)(S)PbF


16

2.3 PONTE H
A ponte H é um circuito que possibilita a inversão da direção da corrente através de uma
determinada carga e é muito utilizado para o controle do sentido de giro de motores de corrente
contínua. O circuito fornece dois caminhos para a corrente, um para cada sentido de rotação do
motor.
A ponte é composta por quatro interruptores eletrônicos que possuem controle independente.
Geralmente são construídas utilizando transistores ou MOSFETs. O circuito fornece dois
sentidos de circulação para corrente que, no caso de um motor, modifica o sentido de giro do
mesmo. Seu funcionamento depende da combinação das chaves que estão acionadas. A Figura
12 faz a representação básica de uma ponte H.
Figura 12 – Ponte H

Fonte: Autores
De acordo com a combinação das chaves acionadas o sentido percorrido pela corrente no
motor é modificado, como pode ser visualizado na Figura 13 e Figura 14.

Figura 13 – Ponte H operando no sentido horário

Fonte: Autores
17

Figura 14 – Ponte H operando no sentido anti-horário

Fonte: Autores
Quando S1 e S4 estão acionadas a corrente passa pelo motor, considerando a
representação ilustrativa na figura, da “esquerda para a direita”, pois passa primeiro pela chave
S1 depois pelo motor e então por S4. Quando S3 e S2 estão fechados acontece o oposto, a
corrente circula pelo motor indo da “direita para a esquerda” e assim o sentido de giro do motor
muda. O sentido de rotação de um motor é invertido quando se inverte a corrente de armadura ou
o sentido do fluxo de campo. No circuito real as chaves eletrônicas são acionadas por PWM.
Duas chaves de um mesmo braço da ponte H não devem ser acionadas simultaneamente
porque desta forma a fonte será curto-circuitada. Para o acionamento da ponte H são utilizados
drivers IR2110 que fornecem uma saída PWM e uma saída baixa com sinal contínuo. Cada
IR2110 controla dois MOSFETs, ou seja, um braço da ponte H, levando PWM para uma das
chaves e sinal baixo para a outra. A ponte H é controlada por dois IR2110 e necessita de sua
atuação simultânea, sendo um fornecendo o sinal PWM e o outro o sinal contínuo.

2.4 MICROCONTROLADOR PIC18F4550


Os microcontroladores são microprocessadores que podem ser programados para funções
específicas. Em geral, eles são usados para controlar circuitos e, por isso, são comumente
encontrados dentro de outros dispositivos, sendo conhecidos como "controladores embutidos". A
estrutura interna de um microcontrolador apresenta um processador, bem como circuitos de
memória e periféricos de entrada e saída.
Segundo Miyadaira (2013, p. 266) “o PIC18F4550 é construído com base na arquitetura
Harvard com instruções do tipo RISC (Computador com Conjunto Reduzido de Instruções). É
um dispositivo de 8bits dotado de 32Kbytes de memória de programa e 2.048bytes de memória
RAM”. O modelo utilizado possui 40 pinos, sendo que 35 podem ser configurados como I/O. A
Figura 15 apresenta o microcontrolador PIC18F4550 e seus respectivos pinos disponíveis.
18

Figura 15 – PIC18F4550

Fonte: MICROCHIP. Data Sheet PIC18F4550

2.4.1 Modo PWM


Para realizar o controle de rotação bem como de velocidade foi utilizado o modo PWM
(modulação por largura de pulso) presente no microcontrolador. Este por sua vez possui dois
módulos de PWM, o módulo CCP e o módulo ECCP, ambos possuindo uma resolução de PWM
de 10bites. A modulação por largura de pulso (PWM) consiste basicamente em controlar o
tempo em que o sinal permanecerá em nível alto (duty cycle), ou seja, controlar a largura de
pulso em um período pré-estabelecido.
Para determinar o valor para o registro PR2, que especifica o período do PWM, é utilizada a
equação (10).
FOSC
PR2  (10)
FPWM  4  PRESCALE
Onde:
FOSC = Representa o tipo de oscilador.
FPWM = Frequência do PWM.
PRESCALE = Ciclo de Máquina.
O módulo ECCP foi utilizado como gerador do PWM, pois possui características adicionais
em relação ao módulo CCP. Uma dessas características é a configuração do PWM para operar no
19

modo full-bridge. Este modo permite o controle de uma ponte H completa por meio de 4 pinos
de saída, permitindo assim controlar a velocidade e a rotação de um motor CC.

3.4.2 Interrupção e Timer


Segundo Miyadaira “as interrupções desempenham um papel importante em sistemas
microcontrolados, pois permitem suspender a qualquer momento a execução de uma linha de
código e começar a executar uma rotina designada ao tratamento de uma determinada
interrupção”. A interrupção foi utilizada no programa como forma de medir os pulsos enviados
pelo sensor IR, por tratar-se de uma interrupção esses pulsos serão medidos independentemente
do programa principal. O microcontrolador PIC18F4550 possui diversas fontes de interrupção,
sendo possível dessa forma, definir o nível de prioridade de cada uma, visando à importância de
cada rotina no programa.
O microcontrolador PIC18F4550 possui quatro TIMERs incorporados; TIMER 0, TIMER 1,
TIMER 2, TIMER3. Esses TIMERs podem ser usados como contadores, incrementado por uma
fonte externa, ou temporizadores, incrementados por uma fonte de clock interna. Neste projeto o
TIMER é utilizado como temporizador com intervalos de 1 segundo, ou seja, a cada 1 segundo
sua rotina é executada. Essa rotina é responsável por multiplicar o número de pulsos contados na
interrupção do sensor por 60, dando o resultado em rpm e em sequência zera o contador do
sensor para que o mesmo inicie sua contagem a partir do 0.

2.5 MPLABX - IDE


O MPLAB X IDE é um programa de software que roda em um PC (Windows®, Mac OS®,
Linux®) para desenvolver aplicativos para microcontroladores Microchip e controladores de
sinais digitais. É chamado de Ambiente de Desenvolvimento Integrado (IDE), porque fornece
um único "ambiente" integrado para desenvolver código para microcontroladores embutidos.
O MPLAB X Integrated Development Environment traz muitas mudanças para a cadeia de
ferramentas de desenvolvimento de microcontroladores PIC®. Ao contrário das versões
anteriores do MPLAB IDE que foram desenvolvidas completamente internamente, o MPLAB X
IDE é baseado no NetBeans IDE de código aberto da Oracle. Tomando este caminho nos
permitiu adicionar muitos recursos solicitados com muita rapidez e facilidade, além de nos
fornecer uma arquitetura muito mais extensível para trazer ainda mais novos recursos no futuro.
20

2.6 Sensor de Obstáculo Infravermelho IR

O Sensor de Obstáculo Infravermelho IR é um circuito composto por um emissor e um


receptor IR, mais o CI comparador LM393, que facilita sua conexão com Arduino, PIC ou
Raspberry Pi, visto que sua tensão é de 3,3-5V. Seu funcionamento é simples: quando algum
obstáculo é colocado em frente ao sensor, o sinal infravermelho é refletido para o receptor. Quando
isso acontece, o pino de saída OUT é colocado em nível baixo (0), e o led verde do módulo é
aceso, indicando que algum obstáculo foi detectado.

2.7 Diagrama de blocos lógico do programa


21

2.7 Diagrama de potência do projeto


22

3. DESENVOLVIMENTO

3.1 OBJETIVO GERAL


Projetar e construir um drive para o acionamento e controle de velocidade de um motor CC.

3.2 OBJETIVOS ESPECÍFICOS


Dimensionar e executar a construção de um protótipo de um drive que garanta a alimentação
de um motor CC por meio de uma ponte H, bem como realizar o controle de velocidade e sentido
de rotação por meio de um microprocessador do tipo PIC18F4550.

3.3 METODOLOGIA
 Projetar a ponte H e os componentes de proteção, a partir das especificações do motor
que irá ser acionado. Este estágio possui grande importancia para o andamento do
projeto, pois a partir dos dados obtidos iremos dimensionar as chaves e fusíveis.
 Desenvolver a programação referente ao acionamento, controle de velocidade, sentido de
rotação, parada e medição de rpm do motor.
 Realizar a construção do protótipo do drive de potência e do circuito de controle.
 Realizar os teste e fazer os ajustes necessários
 Desenvolver o relatório final do projeto.

3.4 PROCEDIMENTOS ESPERIMENTAIS


Nesta etapa do relatório serão explanados os procedimentos utilizados para o
dimensionamento, simulação e posterior confecção das placas de potência e controle do drive de
acionamento. As etapas referentes ao circuito de potência foram realizadas em sequência,
enquanto que as etapas referentes ao circuito de controle foram realizadas paralelamente.

3.4.1 Dimensionamento, simulação e confecção do circuito de controle


Inicialmente foi desenvolvido o programa que iria realizar o acionamento, parada e controle
de velocidade do motor CC, bem como transmitir as informações relevantes de funcionamento e
status em um display de lcd. O software utilizado para o desenvolvimento do programa foi o
MPLAB X. A construção ocorreu por etapas, de inicio foi desenvolvida a partida em ambos os
sentidos do motor (horário e anti-horário) e sua parada, ao serem acionados botões específicos.
Também foi necessário a implementação de um sistema de intertravamento para evitar que os
23

dois sentidos fossem acionados simultaneamente e assim ocorresse um curto entre os braços da
ponte H. A alimentação do motor seria equivalente a um sinal PWM (modulação por largura de
pulso) emitido pelo microcontrolador.
A próxima etapa do desenvolvimento do programa foi a inserção da variação da velocidade
do motor. Durante esta etapa surgiu um questionamento sobre como seria feito o controle dessa
variação, de modo analógico por meio de um potenciômetro ou de modo digital por meio de
botões. Após uma análise sobre as vantagens e desvantagens dos dois modos foi decidido que
seria implementada de modo digital por meio de botões, pois desta forma teríamos um controle
de velocidade a cada variação de 1% de razão cíclica. A variação da velocidade ocorre por meio
da variação da largura de pulso emitida pelo microcontrolador.
Finalmente, foram inseridas no programa as funções referentes ao sensor infravermelho que
seria responsável pela medição do rpm (rotação por minuto) do motor. Uma função iria contar o
número de pulsos elétricos emitidos pelo sensor, cada pulso equivale a uma rotação do motor. A
segunda função iria contar esse número de pulsos emitidos pelo sensor a cada 1 segundo e
multiplicaria por 60, resultando em um valor em rpm.
Com o programa finalizado iniciaram-se os testes em bancada, incialmente o PWM
fornecido pelo micro controlador possuía frequência de 20 kHz, entretanto devido ao mau
funcionamento do circuito de potência, optou-se por diminuir a frequência para 10 kHz. A
diminuição da frequência do PWM está limitada ao cristal oscilador utilizado que determina o
ciclo de máquina do microcontrolador, no caso deste projeto foi utilizado um cristal de 8 MHz.
Após os testes confirmarem a perfeita operação de todas as funções presentes no programa, a
construção da placa de controle foi iniciada. O software EAGLE foi utilizado para a construção
do esquemático, apresentado na Figura 16, e do layout da placa, cuja versão final está ilustrada
na Figura 17. Todos os botões de controle são pull-down, pois fornecem normalmente sinal alto
e ao serem acionados fornecem sinal baixo. Cada botão é acompanhado de duas resistências uma
resistência de pull-up de 10 kΩ que garante o sinal alto para o respectivo pino do
microcontrolador e outra resistência de 1kΩ necessária para limitar a corrente direcionada ao
pino. Também foi inserido um capacitor eletrolítico de 10 μF em paralelo com o motor com o
intuito de evitar o efeito bouncing.
24

Figura 16 – Esquemático do circuito de controle

a) Microcontrolador PIC18F4550 e conectores de entrada e saída da placa

b) Display LCD, cristal oscilador e botão de reset.


25

c) Botões de controle
Fonte: Autores
Figura 17 – Layout da placa de controle

a) Com representação de componentes


26

b) Sem representação de componentes


Fonte: Autores

O desbaste da placa de circuito impresso foi realizado por meio de uma ploter LPKF E33
presente no laboratório de eletrônica 2. A Figura 18 apresenta a placa finalizada, após o desbaste
e com os devidos componentes soldados.
27

Figura 18 – Placa de controle finalizada.

Fonte: Autores

3.4.2 Dimensionamento, simulação e confecção do circuito de potência


Inicialmente a ponte H juntamente com o IR2110 foi simulada no Proteus, esta etapa visou à
verificação do funcionamento do IR2110 perante o acionamento de um motor CC. A Figura 19
apresenta o circuito simulado no Proteus que serviu como base para a confecção da placa de
potência. Como planejamento inicial foi estabelecido que a placa de potência fosse formada
apenas pela ponte H e que os IRs iriam estar acoplados na placa de controle juntamente com o
microcontrolador e os demais componentes, como pode ser visualizado na Figura 20, onde são
apresentados os layouts iniciais das placas de potência e controle.
28

Figura 19 – Circuito simulado no Proteus

Fonte: Autores

Figura 20 – Layouts das placas de controle e potência versão 1

a) Layout da placa de controle versão 1


29

b) Layout da placa de potência versão 1


Fonte: Autores

Com o desenvolvimento do projeto houve uma primeira grande mudança no design


construtivo, foi sugerido que uníssemos os dois IRs á placa de potência junto da ponte H. Pedido
que foi prontamente atendido e as devidas mudanças ocorreram em sequência. A partir dessas
informações o primeiro esquemático e layout foram desenvolvidos utilizando o software
EAGLE, apresentado na Figura 21 e Figura 22. Além da ponte H e dos dois IRs, também foi
incluído na placa um regulador de tensão de 5 V, já que a placa será alimentada com 12 V. Este
regulador tem a função de fornecer a alimentação de 5 V para o IR2110, que por sua vez
necessita de duas alimentações, uma de 12 V e outra de 5V.

Figura 21 – Esquemático do circuito de potência versão 2.

Fonte: Autores
30

Figura 22 – Layout do circuito de potência versão 2.

Fonte: Autores

Durante os testes em bancada verificou-se que o circuito composto pelo IR2110 não
funcionava como fora projetado. Pois ao alimentar os pinos HIN com PWM e LIN com tensão
contínua, as respectivas saídas HO e LO não operavam como esperado, já que essas saídas
deveriam fornecer um sinal igual ao sinal de entrada fornecido aos pinos HIN e LIN. Algumas
suposições foram criadas para responder a essa questão. A primeira delas é que os capacitores
não estariam respondendo à alta frequência e assim o IR2110 não operava de maneira correta
ocasionando a sua queima. A segunda suposição era que os diodos que se conectam ao gate do
MOSFET estavam fornecendo um caminho para a corrente reversa produzida durante o
chaveamento do motor. A fim de resolver ambas as suposições, um novo esquemático e um novo
layout foram desenvolvidos.
Os diodos que se conectam ao gate do MOSFET foram retirados e os demais diodos foram
trocados por diodos de ação ultrarrápida, já que a frequência do PWM é de 10 kHz. Novos
capacitores cerâmicos foram utilizados ao invés dos capacitores de filme utilizados
anteriormente. Um capacitor eletrolítico 1000μF foi inserido como forma de melhorar a
filtragem no barramento de 12 V que alimenta o motor. Com a realização dos testes em
Com as devidas alterações realizadas, deu-se início a confecção do novo layout. A Figura 23
apresenta o novo esquemático, com as novas alterações. Enquanto que a Figura 24 ilustra o novo
layout e a Figura 25 mostra a placa finalizada.
31

Figura 23 – Esquemático do circuito de potência – versão final

Fonte: Autores

Figura 24 – Layout do circuito de potência – versão final

Fonte: Autores
32

Figura 25 – Placa de potência finalizada

Fonte: Autores

3.5 OBSERVAÇÕES DE DEMAIS ERROS APRESENTADOS


 Devido à alta frequência de comutação de 10 kHz, foi necessária a utilização de diodos
ultrarrápidos, com a finalidade de carrega o capacitor de Bootstrap. Também foram adicionados
diodos ultrarrápidos em paralelo com cada MOSFET, afim diminuir as tensões reversas do motor
e fornecer um caminho para a corrente reversa. Estes diodos ultrarrápidos atuam em conjunto
com os diodos intrínsecos presente normalmente nos MOSFETs. Durante os testes houve a
queima de diversos drives de acionamento (IR2110) devido aos diodos intrínsecos dos
MOSFETs, que estavam inoperantes. Como solução, foram utilizados capacitores eletrolíticos de
100 μF para garantir a ativação dos MOSFETs S1 e S3.
 Inicialmente foi detectado um mau funcionamento do microcontrolador PIC18F4550,
mais precisamente no oscilador externo, causado por um erro no momento da escolha dos
capacitores, em vez de 22 pF foram utilizados capacitores de 22 ηF. Este erro gerou uma
alteração na frequência do cristal oscilador de 8 MHz, tornado o microcontrolador inoperante.
 Após queima de diversos drives de acionamento (IR2110), foi analisado que dois
MOSFETs estavam com seu diodo intrínseco inoperante. Como consequência a corrente reversa
circulava pela referência (pino Vs) do IR2110, causando um erro na comutação dos MOSFETs,
após a substituição dos referidos componentes não foi detectado o problema novamente. Uma
tentativa de corrigir esse problema foi a retirada das conexões Vs com o source dos MOSFETs
33

superiores. Entretanto estes MOSFETs começaram a comutar sem estarem saturados


completamente, ou seja, a tensão não estava sendo fornecida diretamente para carga, tornando o
propósito do projeto invalido. Como consequência, optou-se por trocar os MOSFETs defeituosos
por outros novos e assim o problema foi resolvido.
 Nos testes iniciais foram utilizados capacitores eletrolíticos como capacitor de Bootstrap,
mas como o mesmo não responde a altas frequências tornaram a comutação dos MOSFETs
irregular devido ao fato de seu tempo de carga e descarga não ocorrer no tempo correto. Para
resolver este problema foi utilizado como capacitor de Bootstrap, um capacitor de 100 ηF, de
multicamadas de poliéster.
 Após os testes foi possível observar que o resistor conectado no gate-source estava
atrapalhando a comutação dos MOSFETs, pois geram um caminho auxiliar para a corrente
reversa do motor. Consequentemente gerando um potencial entre gate-source.
 No layout versão 1, incluía um diodo em série com a referência (Vs), até o source dos
MOSFETs 1 e 3, porém com essa adição não foi possível descarregar o capacitor de Bootstrap.
Então foi feita duas mudanças na topologia, à primeira foi a troca do capacitor de 100 μF
eletrolítico por um de 100 ηF cerâmico, pois o primeiro não conseguia carregar e descarrega
completamente, e a segunda mudança foi a retirada do diodo em série com a referência.

3.6 LISTA DE COMPONENTES


A Tabela 2 apresenta os componentes utilizados na placa de controle, enquanto que a Tabela
3 aponta os componentes utilizados na placa de potência.
Tabela 2 – Lista de componentes utilizados na placa de controle

Componente Especificação Fabricante Quantidade


Parâmetros
Microcontrolador PIC18F4550 Microchip 1
Cristal Oscilador - - 1
Push-button - - 6
Resistor 10 kΩ - 6
Resistor 1 kΩ - 5
Capacitor Eletrolítico CD110 JEC 5
10 μF – 50 V
Capacitor Eletrolítico ECR 1L10 HITANO 1
22 μF – 63 V
Capacitor Eletrolítico B41821 EPCOS 1
100 μF – 25 V
Diodo 1N4007 DIODES 1
INCORPORATED
Capacitor Cerâmico 100 ηF Suntan 2
Potênciometro 1 kΩ - 1
34

Display LCD HC 1624-B-LWH Tsingtek 1

Fonte: Autores

Tabela 3 – Lista de componentes utilizados na placa de potência

Componente Especificação Fabricante Quantidade


Parâmetros
Capacitor Eletrolítico B41821-A6108- EPCOS 1
M
1000μF-50 V
Capacitor Eletrolítico 100μF-63 V BUANG 2
Capacitor Eletrolítico 1L10 HITANA 1
22μF-63 V
Capacitor Eletrolítico 10μF-63 V JBC 3

Capacitor de poliéster μ1k63 1H7 EPCOS 1


100nF

Capacitor cerâmico 100nF - 2


Diodo schottky 31DQ1B IOR 6
Diodo retificado 1N4007 NXP 1
MOSFET IRFZ44N IOR 4
Regulado de tensão 5V LM7805 FAIRCHLD 1
Drive de acionamento IR2110 IOR 2
do MOSFET
Resistor 22Ω - 4

Fonte: Autores
35

4. RESULTADOS
O motor CC utilizado para ser acionado e controlado, apresentado na Figura 26, foi um
exemplar MOTRON MR 710 12Vcc.

Figura 26 – Motor CC MOTRON MR 710 12Vcc

Fonte: Autores

Inicialmente o motor foi acionado no sentido horário e no sentido anti-horário. Os dois


sinais PWM emitidos pelo circuito de controle para o circuito de potência são apresentados na
Figura 27 e 28. Na Figura 27 pode-se verificar o sinal PWM que aciona o motor no sentido
horário, onde o canal 1 aponta o sinal de PWM e o canal 2 permanece em estado lógico baixo, e
na Figura 28 os sinais são invertidos, o canal 1 permanece em nível lógico baixo, enquanto que o
canal 2 transmite o sinal de PWM, acionando o sentido anti-horário. O canal 1 mostra o sinal
emitido pelo pino P1D (RD7), enquanto que o canal 2 mostra o sinal fornecido pelo pino P1B
(RD5). A amplitude do sinal é de 5 V e os sinais não podem ser acionados simultaneamente a
fim de evitar um curto entre os braços da ponte H. A razão cíclica inicial fornecida é de 80%,
podendo ser aumentada ou diminuída a cada 1%, de acordo com a necessidade do operador.
36

Figura 27 – Forma de onda transmitida pelo microcontrolador acionando o motor no sentido horário

Fonte: Autores

Figura 28 – Forma de onda transmitida pelo microcontrolador acionando o motor no sentido horário

Anti-horário

Fonte: Autores
A análise das formas de onda foi realizada considerando os dois sentidos de giro do motor, por isso
será apresentada um exemplo de cada situação. A Figura 29 apresenta a comutação e acionamento do
MOSFET S1 no sentido horário e S2 no sentido anti-horário. No canal 1 é apresentado a tensão dreno-
source, os picos de tensão de 12 V ocorrem quando a chave está aberta e a faixa de 0 V ocorre quando a
chave está fechada, consequentemente, conduzindo corrente ao motor. No canal 2 é apresentado a tensão
gate-source, essa tensão é fornecida pelos pinos HO e Vs do IR2110, nesse canal é possível visualizar a
saturação do MOSFET, ou seja, quando há tensão gate-source a tensão dreno-source é praticamente 0 V.
37

Figura 29 – Formas de onda obtidas nos MOSFETs superiores

Fonte: Autores

Na Figura 30 é mostrada a comutação e acionamento do MOSFET S4 no sentido horário e


S3 no sentido anti-horário. De modo semelhante à figura anterior, o canal 1 apresenta a tensão
dreno-source no MOSFET, enquanto que o canal 2 mostra a tensão gate-source. A diferença com
a forma de onda anterior é que esta é fornecida pelo pino LO do IR2110 e o negativo do circuito.
Figura 30 - Formas de onda obtidas nos MOSFETs inferiores

Fonte: Autores
Na Figura 31 é ilustrado o carregamento e descarregamento do capacitor de Bootstrap junto com
o sinal de PWM fornecido pelo pino HO do IR2110 e a referência. O canal 1 apresenta a tensão
no capacitor de Bootstrap e o canal 2 mostra a tensão HO-referência. No instante de tempo toff do
PWM gerado ocorre o carregamento do capacitor de Bootstrap, elevando a sua tensão como pode
ser observado na Figura 31. No instante de tempo ton ocorre o descarregamento do capacitor de
Bootstrap devido a sua carga ser transferida para o gate do MOSFET durante o acionamento.
38

Figura 31 – Carga e descarga do capacitor de bootstrap

Fonte: Autores
A Figura 32 mostra a tensão de acionamento do motor, que nesse caso é formada pela tensão
positiva, já a tensão negativa é gerada pela força contra eletromotriz que ocorre no tempo que o
motor permanece desenergizado. Devido ao motor ser uma carga indutiva, ele tende a
permanecer com a mesma corrente que passa pela os diodos Schottky em paralelo com as
chaves, resultando na inversão da sua polaridade.
Figura 32 – Forma de onda nos terminais do motor

Fonte: Autores

Na Figura 33 é mostrada a tensão do motor no canal 1 do osciloscópio, e a corrente do motor


no canal 2 do osciloscópio. Pode-se associar o motor elétrico a um indutor armazenando energia
na forma de campo magnético, assim, definimos que a tensão é igual à indutância vezes a taxa de
variação da corrente sob a taxa de variação do tempo. Então se aplicarmos uma tensão pulsante
39

positiva o resultado será uma tensão alternada nos terminais do motor, por conta da característica
do indutor ser uma fonte de corrente. Sendo assim, a corrente tende a permanecer no mesmo
sentido, invertendo a tensão nos terminais do motor no instante de tempo toff da comutação.
A corrente se apresentar triangular, pois se divide em dois momentos, no instante de tempo
ton de comutação aumenta até 200 mA e diminui no instante de tempo toff, juntamente com a
tensão que fica negativa, neste momento o motor funciona como um gerador..

Figura 33 – Formas de onda da tensão e corrente nos terminais do motor

Fonte: Autores

Na Figura 34 é apresentado a realização da medição do rpm por meio do encolder produzido


no projeto e o tacômetro Poleterm, com a razão cíclica máxima de 99%.
Medições:
 Valor exato (Paleterm): 3780 rpm
 Valor aproximado (Tacômetro do projeto): 3807 rpm
Calculado o erro da medição de rpm:
Valor _ aproximado  Valor _ exato 3801  3780
%erro   100   100  0.55%
Valor _ exato 3801 (11)
A variação de erro ficou abaixo de 1% em todas as medições.
40

Figura 34 – Comparação de rpm com tacômetro

Fonte: Autores
Tabela 4 – Equipamentos utilizados

Equipamento Modelo
Tacômetro Politerm DT6236B
Fonte CC Minipa MPL-3305M
Multímetro Digital TEKTRONIX DMM4020x
Osciloscópio TEKTRONIX MSO-2012-100MHz
Gerador de Função TEKTRONIX AFG2021
Sonda de Corrente TEKTRONIX TCP312A
Amplificador para Sonda de Corrente TCPA300
TEKTRONIX
Fonte: Autores
41

5. CONCLUSÃO
Neste relatório foi proposto um drive para acionamento de um motor CC de 12 V.
Durante o desenvolvimento do projeto até a sua finalização, diversas conclusões foram possíveis
a partir da análise experimental detalhada e observações realizadas com a utilização dos
equipamentos presentes nos laboratórios de eletrônica 1 e 2. Com o decorrer do
dimensionamento e posterior montagem do drive houve a detecção prática do papel de cada
componente presente no circuito. A escolha inadequada do diodo ocasionou a queima de
diversos drives de acionamento (IR2110) do MOSFET. Durante os testes verificou-se que o uso
do diodo ultrarrápido era essencial para manter a operação na frequência de 10 kHz.
Com as placas de potência e controle já montadas os testes com o respectivo motor foram
feitos. Neles pode-se confirmar o perfeito funcionamento dos circuitos, no qual o motor foi
acionado em ambos os sentidos e o controle da velocidade se mostrou bastante eficaz. O controle
foi bastante preciso proporcionado principalmente pela possibilidade de variação da razão cíclica
em 1% por meio do uso de botões. Também foi detectado que a variação de velocidade
correspondia diretamente à variação de razão cíclica.
Os testes referentes à medição de rpm através do sensor IR foram bastante satisfatórios,
pois apresentaram baixar variações entre os valores medidos pelo sistema de controle e pelo
tacómetro usado no teste. Estes testes apresentaram erros que variam de 0,5 a 1% com o motor
operando em condições máximas, ou seja, com a razão cíclica em torno de 99%. A parada
ocorreu de maneira esperada, ao ser acionado o respectivo botão o PWM fornecido pelo sistema
de controle é desligado completamente e consequentemente promovendo a parada do motor.
O projeto do drive, especialmente da seção dedicada à potência, foi pensado e
desenvolvido visando o acionamento de um motor CC de 24 V e 15 A, em valores nominais, no
entanto pela impossibilidade do acoplamento do equipamento de medição de velocidade no
motor tomado como referência para o desenvolvimento do projeto, o acionamento realizado para
os testes foi de uma máquina CC de menor potência com 12 V de tensão nominal e a corrente
limitada na fonte em 180 mA, sendo este valor fornecido no datasheet da máquina para sua
operação com carga.
42

6. TRABALHOS FUTUROS
Como possíveis trabalhos futuros, pode-se apontar:
 Proteção contra travamentos no eixo.
Existe a possibilidade de desenvolver o código do programa a fim de se obter proteções no
caso de travamentos no eixo, aumentando desta forma, a segurança dos equipamentos e do
operador.
 Sistema supervisório.
Com o andamento do projeto é possível desenvolver um sistema supervisório que interaja
com o sistema de controle a fim de acompanhar em tempo real as informações disponibilizadas
pelo microcontrolador.
 Teclado numérico.
O uso de um teclado numérico pode ser considerado como uma outra forma de se alterar a
velocidade do motor, seja incrementando ou decrementando, ou ainda digitando o valor de razão
cíclica desejada.
 Sistema de proteção para grandes potências.
É aconselhável que seja instalado um sistema de proteção para o uso do drive no
acionamento de potência elevadas, como exemplo, a inclusão de fusíveis e monitoramento da
temperatura do motor.
 Diminuição da frequência de comutação.
Com a diminuição da frequência é possível diminuir as perdas provenientes da comutação
dos MOSFETs. Também irá facilitar o trabalho exercido pelo IR2110, que não necessitará de
diodos ultrarrápidos, barateando o projeto.
43

REFERÊNCIAS BIBLIOGRÁGICAS

INTERNATIONAL RECTIFIER. Data Sheet IR2110(-1-2)(S)PbF/IR2113(-1-2)(S)PbF.

MICROCHIP. Data Sheet PIC18F2455/2550/4455/4550.

KOSOW, I. I. Tradução: DAIELO, F. L. R. e SOARES, P. A. P. MÁQUINAS ELÉTRICAS E


TRANSFORMADORES. 15ª ed. São Paulo. GLOBO. 2005.

MIYADAIRA, A. N. MICROCONTROLADORES PIC18: APRENDA E PROGRAME EM


LINGUAGEM C. 4ª ed. São Paulo. Érica. 2013.

SIEMENS. Motores De Corrente Continua: Guia rápido para uma especificação precisa.
Ed.01.2006.

TORO, V.D. Tradução: Andrade, O. Fundamentos de Máquinas Elétricas. Rio de Janeiro.


LTC. 2009.
44

ANEXO I
/*
* File: lcd_16x2_4bits.c
* Autores: Felipe Costa, Rerick Pessoa, Antonio Roberto de França

*
* Created on 27 de Novembro de 2017, 08:22
*/

// Definições de parâmetros do microcontrolador


/* Aki são configurados os principais parâmetros do microcontrolador, como o
tipo de oscilador, dentre outros.
*/
#pragma config FOSC = HS
#pragma config PLLDIV = 1
#pragma config CPUDIV = OSC1_PLL2
#pragma config MCLRE = ON
#pragma config LVP = OFF
#pragma config WDT = OFF
#pragma config PBADEN = OFF

#include <xc.h> // Inclui a biblioteca do compilador.


#include <stdlib.h> // Inclui a biblioteca stdlib.
#include <stdio.h> // Inclui a biblioteca stdio.
// printf - imprime valor na saída padrão do sistema

#define _XTAL_FREQ 8000000 // Define cristal de 8 MHz


#define RS LATEbits.LATE0
#define RW LATEbits.LATE2
#define EN LATEbits.LATE1

// Protótipos de função do LCD


/* Aki as funções que serão utilizadas pelo display LCD
são descritas.
*/
void inicia_lcd();
void envia_cmd_lcd(char cmd);
void envia_cararacter_lcd(char caracter);
void envia_string_lcd(char *string);
void envia_caracter_cgram_lcd(char carater[]);
void set_pos_cursor(char lin, char col);
void limpa_lcd();
void delay_us_lcd(int us);
void delay_ms_lcd(int ms);

// Declarações de variáveis
int aux1 = 0;
int duty_cycle = 160;
int aux_1 = 0;
45

int aux_2 = 0;
int T0 = 0;

void setup()
{

ADCON1 = 0b1111; // desliga porta analógica.


// Configuração TIMER 0 - 16 bits
INTCON = 0b11100000;
/*GIE = 1;
PEIE = 1;
TMROIE = 1
INTE = 0;
RBIE = 0;
TMR0IF = 0;
INTF = 0;
RBIF = 0;
*/

T0CON = 0b11000111; // TMR0on - habilita o TIMER 0


// T08BIt - modo de operação de 8 bits
// T0CS - fonte de clock interna- fosc/4
// T0SE - nao utilizado
// PSA - usa prescale
// PS2-Ps0 - prescale de 256
TMR0L = 61; // Configura para 1 seg.

// Configuração do PWM
TRISCbits.RC2 = 0; // pino CCP1 como saída para PWM
TRISDbits.RD5 = 0; // pino CCP1 como saída para PWM
TRISDbits.RD6 = 0; // pino CCP1 como saída para PWM
TRISDbits.RD7 = 0; // pino CCP1 como saída para PWM
LATCbits.LATC2 = 0; // Escreve nível lógico baixo no pino
LATDbits.LATD5 = 0; // Escreve nível lógico baixo no pino
LATDbits.LATD6 = 0; // Escreve nível lógico baixo no pino
LATDbits.LATD7 = 0; // Escreve nível lógico baixo no pino
PR2 = 199; // Período do PWM - 10000 Hz
CCPR1L = 160; // Razão cíclica - 80%
T2CON = 0; // Sem prescaler, TRM2 Off

// Configuração do pino do sensor


TRISBbits.RB2 = 1; // Configura o pino RB2 como entrada.
INTCON2bits.RBPU = 0; // habilita pull-ups da porta B

// Configuração da interrupção com níveis de prioridade


RCONbits.IPEN = 1; // Com prioridade de interrupção
INTCONbits.GIE_GIEH = 1; // Habilita interrupção global
INTCONbits.PEIE_GIEL = 1; // Habilita interrupção de periférico
46

// Configuração da interrupção externa INT21


INTCON3bits.INT2IE = 1; // Habilita INT1
INTCON2bits.INTEDG2 = 0; // Interrupção por borda de descida
INTCON3bits.INT2IF = 0; // Limpa a flag de INT2
INTCON3bits.INT2IP = 0; // Baixa prioridade

// Configuração do pino dos botões

TRISBbits.RB3 = 1; // Botão parada


TRISBbits.RB4 = 1; // Botão sentido anti-horário
TRISBbits.RB5 = 1; // Botão sentido horário
TRISBbits.RB6 = 1; // Botão para aumentar a velocidade
TRISBbits.RB7 = 1; // Botão para diminuir a velocidade

ADCON1 = 0b1111; // Desligar as portas analógicas


INTCON2bits.RBPU = 0; // habilita pull-ups da porta B
}

/*---- Função de Tempo ----*/


void delay_ms(int ms) // delay_ms(1000) = 1 Segundo
{
char i;
for (i = 0; i < ms; i++)
{
__delay_ms(1);
}
}

/* Timer 0 - processo para calcular o RPM -


* O número de pulsos medido pelo sensor a cada 1 segundo é multiplicado
* por 60, resultando em um valor em rpm.
*/
void interrupt int_TRM0()
{
if (TMR0IF)
{
TMR0L = 61; // A interrupção irá se repetir a cada 25 ms.
TMR0IF = 0;
T0++;
if (T0 >= 40) // Gera base de tempo de 1 seg - 25 ms x 40
{
T0=0;

aux_2 = aux_1 * 60; // Multiplica o valor do pulso por 60 = valor em rpm


aux_1 = 0;

}
}
47

/* ------- Programa principal*/


void main(void)
{
setup (); // Chama a função setup
inicia_lcd(); // Chama a função que inicia o display

limpa_lcd(); // Chama a função que limpa o LCD


set_pos_cursor(2,3); // Posiciona o cursor na coluna 2 linha 3.
envia_string_lcd ("STAND BY"); // Informa que o motor está em STAND BY.

while (1)
{
// Informa a porcentagem de razão cíclica.
set_pos_cursor(1,1); // Posiciona o cursor na coluna 1 linha 1.
envia_string_lcd ("D:"); // Mostra "D:" no display
set_pos_cursor(1,6); // Posiciona o cursor na coluna 1 linha 6.
envia_string_lcd ("%"); // Mostra "%" no display
set_pos_cursor (1, 3); // Posiciona o cursor na coluna 1 linha 3.
printf ("%03u",duty_cycle/2); // Mostra o valor de razão cíclica

// Mostra RPM
set_pos_cursor (1, 8); // Posiciona o cursor na coluna 1 linha 8.
envia_string_lcd ("RPM:"); // Mostra "RPM" no display
set_pos_cursor (1, 12); // Posiciona o cursor na coluna 1 linha 12
printf ("%05u",aux_2); // Mostra o valor de RPM

// Botão de parada - O motor só liga após acioná-lo


if (!PORTBbits.RB3)
{
T2CONbits.TMR2ON = 0; // Desliga o Timer 2
aux1 = 1;
duty_cycle = 0; // Razão cíclica de 0%
limpa_lcd(); // Limpa o display
set_pos_cursor(1,1); // Posiciona o cursor na coluna 1 linha 1.
envia_string_lcd ("STOP"); // Mostra "STOP" no display
delay_ms(200); // Delay de 200 ms
delay_ms(200); // Delay de 200 ms
limpa_lcd(); // Limpa o display
set_pos_cursor(2,1); // Posiciona o cursor na coluna 2 linha 1.
envia_string_lcd ("MOTOR PARADO"); /*Mostra "MOTOR PARADO" no
display*/

while (aux1 == 1)
{

// Botão que aciona o motor no sentido horário


48

if (!PORTBbits.RB4)
{

CCP1CON = 0b01101100; // Modo PWM e decimal para PWM


TMR2 = 0; // Inicializa a contagem do Timer 2 a partir do zero
T2CONbits.TMR2ON = 1; // Inicia contagem do timer
duty_cycle = 160; // Razão cíclica de 80%
limpa_lcd(); // Limpa o display
set_pos_cursor(1,1); // Posiciona o cursor na coluna 1 linha 1
envia_string_lcd ("SENTIDO"); // Mostra "SENTIDO" no display
set_pos_cursor(2,1); // Posiciona o cursor na coluna 2 linha 1
envia_string_lcd ("HORARIO"); // Mostra "HORARIO" no display
delay_ms(200); // Delay de 200 ms
delay_ms(200); // Delay de 200 ms
limpa_lcd(); // Limpa o display
aux1 = 0;
set_pos_cursor(1,8); // Posiciona o cursor na coluna 1 linha 8
while (!PORTBbits.RB4); /* Só segue se o botão RB4 estiver em
em nível lógico baixo */
}

// Botão que aciona o motor no sentido anti-horário


if (!PORTBbits.RB5)
{

CCP1CON = 0b11101100; // Modo PWM e decimal para PWM


TMR2 = 0; // Inicializa Timer2=0
T2CONbits.TMR2ON = 1; // Inicia contagem do timer
duty_cycle = 160; // Razão cíclica de 80%
limpa_lcd(); // Limpa o display
set_pos_cursor(1,1); // Posiciona o cursor na coluna 1 linha 1.
envia_string_lcd ("SENTIDO"); // Mostra "SENTIDO" no display
set_pos_cursor(2,1); // Posiciona o cursor na coluna 2 linha 1
envia_string_lcd ("ANTI-HORARIO:"); /* Mostra ANTI-HORARIO no
* display */
delay_ms(200); // Delay de 200 ms
delay_ms(200); // Delay de 200 ms
limpa_lcd(); // Limpa o display
aux1 = 0;
while (!PORTBbits.RB5); /*Só segue se o botão RB5 estiver em
* nível lógico baixo */
}

// Botão que aumenta a velocidade.


if(!PORTBbits.RB6)
{
duty_cycle = duty_cycle +2; // Acréscimo a razão cíclica
if (duty_cycle > 199) // Impede que a razão cíclica seja maior que 99%
49

{
duty_cycle = 199;
}

CCPR1L = duty_cycle; // carrega valor da razão cíclica


delay_ms(200); // Delay de 200 ms
set_pos_cursor (1, 3); // Posiciona o cursor na coluna 1 linha 3.
printf ("%03u",duty_cycle/2); // Mostra a razão cíclica no display
INT1IF = 0;

// Botão que diminui a velocidade


if(!PORTBbits.RB7)
{
duty_cycle = duty_cycle -2; // Decréscimo da razão cíclica
if (duty_cycle < 0) // Impede que a razão cíclica seja menor que 0
{
duty_cycle = 0;
}
CCPR1L = duty_cycle; // carrega valor da razão ciclica
delay_ms(200); // Delay de 200 ms
set_pos_cursor (1, 3); // Posiciona o cursor na coluna 1 linha 3
printf ("%03u",duty_cycle/2); // Mostra a razão cíclica no display
INT2IF = 0;
}

// Interrupção do sensor IR
void interrupt low_priority int2_rb2()
{
if(INTCON3bits.INT2IF) // Quando o sensor é acionado, este bit é atribuído 1
{
aux_1++; // Incrementa a cada rotação do motor
INTCON3bits.INT2IF = 0; // Zera a flag da interrupção

}
}

// Biblioteca LCD
void inicia_lcd()
{
// Configura pinos do barramento de dados
TRISDbits.RD0 = 0;
50

TRISDbits.RD1 = 0;
TRISDbits.RD2 = 0;
TRISDbits.RD3 = 0;

LATDbits.LATD0 = 0;
LATDbits.LATD1 = 0;
LATDbits.LATD2 = 0;
LATDbits.LATD3 = 0;

// Configura pinos de controle


TRISEbits.RE0 = 0;
TRISEbits.RE1 = 0;
TRISEbits.RE2 = 0;
RS = 0;
RW = 0;
EN = 0;

// Comandos para inicialização do LCD


delay_ms_lcd(20);
envia_cmd_lcd(0x33);
envia_cmd_lcd(0x32);
envia_cmd_lcd(0x28); // LCD 16x2, célula com matriz 8x5 px
envia_cmd_lcd(0x02); // desloca cursor para linha 1, coluna 1
envia_cmd_lcd(0x0C); // desliga cursor
envia_cmd_lcd(0x06); // desloca cursor para direita quando novo caractere for inserido

char set_bit(char cmd, char comp)


{
if((cmd & comp) >= 1)
{
return 1;
}
else
{
return 0;
}
}

void envia_cmd_lcd(char cmd) // cmd = 0x28 = 0b0010 1000


{
RS = 0; // instrução (comando)
RW = 0; // escrita

LATDbits.LATD0 = set_bit(cmd, 0b00010000); //0


LATDbits.LATD1 = set_bit(cmd, 0b00100000); //0
LATDbits.LATD2 = set_bit(cmd, 0b01000000); //1
LATDbits.LATD3 = set_bit(cmd, 0b10000000); //0

// gerar pulso para unidade de controle


51

EN = 1;
delay_ms_lcd(5);
EN = 0;
LATDbits.LATD0 = set_bit(cmd, 0b00000001); //0
LATDbits.LATD1 = set_bit(cmd, 0b00000010); //0
LATDbits.LATD2 = set_bit(cmd, 0b00000100); //0
LATDbits.LATD3 = set_bit(cmd, 0b00001000); //1

// gerar pulso para unidade de controle


EN = 1;
delay_ms_lcd(5);
EN = 0;
}

void envia_cararacter_lcd(char caracter)


{
RS = 1; // comando para informar que a informação será um caractere
RW = 0; // escrita

LATDbits.LATD0 = set_bit(caracter, 0b00010000);


LATDbits.LATD1 = set_bit(caracter, 0b00100000);
LATDbits.LATD2 = set_bit(caracter, 0b01000000);
LATDbits.LATD3 = set_bit(caracter, 0b10000000);

// gerar pulso para unidade de controle


EN = 1;
delay_ms_lcd(5);
EN = 0;

LATDbits.LATD0 = set_bit(caracter, 0b00000001);


LATDbits.LATD1 = set_bit(caracter, 0b00000010);
LATDbits.LATD2 = set_bit(caracter, 0b00000100);
LATDbits.LATD3 = set_bit(caracter, 0b00001000);

// gerar pulso para unidade de controle


EN = 1;
delay_ms_lcd(5);
EN = 0;
}

void envia_string_lcd(char *string)


{
while(*string != '\0')
{
envia_cararacter_lcd(*string);
string++;
}

void envia_caracter_cgram_lcd(char carater[])


52

{
envia_cmd_lcd(0x40);
int i;
for (i = 0; i < 8; i++)
{
envia_cararacter_lcd(carater[i]);
}

void putch(char c)
{
envia_cararacter_lcd(c);
}

void limpa_lcd()
{
envia_cmd_lcd(0x01);
}

void set_pos_cursor(char lin, char col) // 1,1


{
char pos;

switch(lin)
{
case 1: pos = (0x80 + col) - 1;
break;

case 2: pos = (0xC0 + col) - 1;


break;

default: pos = (0x80 + col) - 1;


break;
}

envia_cmd_lcd(pos);

void delay_ms_lcd(int ms)


{
while(ms--)
__delay_ms(1);
}

void delay_us_lcd(int us)


{
while(us--)
__delay_us(1);
}

Potrebbero piacerti anche