Академический Документы
Профессиональный Документы
Культура Документы
Sobral–CE
2018
Antonio Roberto de França Gomes Oliveira
Felipe Costa do Nascimento
Rerick Pessoa Costa
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
2. FUNDAMENTAÇÃO TEÓRICA
2.1 O MOTOR CC
Figura 2 - Estator
Figura 3 - Rotor
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.
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
Onde:
T = Conjugado eletromagnético do motor.
KT = Constante de torque.
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.
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
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
Onde:
VDD = Tensão de alimentação do driver do gate [V].
VF = Queda de tensão do diodo de bootstrap [V].
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.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.
Fonte: Autores
17
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.
Figura 15 – PIC18F4550
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. DESENVOLVIMENTO
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.
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
c) Botões de controle
Fonte: Autores
Figura 17 – Layout da placa de controle
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
Fonte: Autores
Fonte: Autores
Fonte: Autores
30
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
Fonte: Autores
Fonte: Autores
32
Fonte: Autores
Fonte: Autores
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.
Fonte: Autores
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
Fonte: Autores
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
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
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..
Fonte: Autores
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
SIEMENS. Motores De Corrente Continua: Guia rápido para uma especificação precisa.
Ed.01.2006.
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
*/
// 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()
{
// 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
}
}
47
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
while (aux1 == 1)
{
if (!PORTBbits.RB4)
{
{
duty_cycle = 199;
}
// 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;
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
{
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);
}
switch(lin)
{
case 1: pos = (0x80 + col) - 1;
break;
envia_cmd_lcd(pos);