Você está na página 1de 74

Universidade Federal de Campina Grande

Centro de Engenharia Elétrica e Informática


Unidade Acadêmica de Engenharia Elétrica

Trabalho de Conclusão de Curso

Projeto, Desenvolvimento e Montagem de Circuito de Comando


Microcontrolado para Acionamento de Chaves em Conversores
CC-CC do Tipo Buck

Aléssio Trajano Sousa Soares Santos

Campina Grande - PB
Novembro de 2023
Aléssio Trajano Sousa Soares Santos

Trabalho de Conclusão de Curso sub-


metido ao curso de Engenharia Elétrica
da Universidade Federal de Campina
Grande como requisito parcial para a
obtenção do título de Bacharel em En-
genharia Elétrica

Talvanes Meneses Oliveira, Dr.


Professor Orientador

Campina Grande - PB
Novembro de 2023
Agradecimentos

Agradeço, primeiramente, a Deus, por todas as bênçãos que me foram concedidas.


Aos meus pais, Lino e Albaniza, expresso minha gratidão por todo o apoio e incentivo
dados, especialmente nos momentos difíceis. Agradeço por me proporcionarem educação
desde a infância até os dias atuais. Amo vocês profundamente.
Aos meus avós, Luiz e Marcelina, e Hilda, agradeço imensamente por todo o apoio
e incentivo, tanto financeiro quanto emocional. Obrigado por tudo.
Ao meu tio Luimar, e às minhas tias Ligia, Laurimar e Francisca, agradeço por
sempre acreditarem em mim e por nunca deixarem faltar nada durante minha graduação.
Expresso minha gratidão aos meus irmãos, Luiz Neto, Alan e Mikaely, pela paci-
ência e parceria.
À minha namorada, Julia, agradeço por estar ao meu lado nos momentos difíceis
e por me apoiar constantemente. Te amo.
Aos meus amigos que fiz durante esse longo período de graduação, obrigado pela
companhia e paciência. Sucesso para vocês!.
Agradeço aos técnicos Paulo, Wellington, Lúcio e Bianca por toda a assistência
prestada.
Quero expressar minha gratidão ao meu orientador, professor Talvanes, por sua
dedicação, paciência e amizade durante o meu TCC. Sua orientação foi crucial, e sua
disposição em sanar minhas dúvidas fez toda a diferença. Além de um orientador incrível,
você se tornou um grande amigo. Obrigado por tudo.
Resumo
O trabalho consiste no desenvolvimento de uma interface em uma placa de circuito im-
presso, utilizando um microcontrolador PIC16F877A para gerar um sinal PWM (Pulse
Width Modulation), com ciclo de trabalho variando de 0 a 0,99, com uma resolução de
10 bits. Esse sinal é empregado no controle de um módulo de potência de um conversor
buck.

Palavras-chaves: PWM, PIC16F877A, "buck", Interface.


Abstract
The work consists of developing an interface on a printed circuit board, using a PIC16F877A
microcontroller to generate a PWM (Pulse Width Modulation), with duty cycle varying
from 0 to 0.99, with a resolution of 10 bits. This signal is used to control a power module
of a converter buck.

Key-words: PWM, PIC16F877A, "buck", Interface.


Lista de Ilustrações

Figura 1 – Conversor buck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13


Figura 2 – Chave S fechada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Figura 3 – Chave S aberta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Figura 4 – Forma de onda da tensão elétrica no indutor . . . . . . . . . . . . . . . 15
Figura 5 – Simbologia do MOSFET IRF840 . . . . . . . . . . . . . . . . . . . . . 16
Figura 6 – PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Figura 7 – Circuito gerador da PWM . . . . . . . . . . . . . . . . . . . . . . . . . 18
Figura 8 – PIC16F877A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Figura 9 – HCPL-3180 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Figura 10 – Módulo de potência do conversor abaixador . . . . . . . . . . . . . . . 22
Figura 11 – Capacitor de 10𝜇𝐹 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figura 12 – Configuração dos fuses . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Figura 13 – Saída da PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Figura 14 – Diagrama de blocos da PWM . . . . . . . . . . . . . . . . . . . . . . . 31
Figura 15 – Esquemático da IHM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Figura 16 – Layout da IHM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Figura 17 – Modelo 3D da IHM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Figura 18 – Placa da IHM com os componentes . . . . . . . . . . . . . . . . . . . . 35
Figura 19 – Esquemático da placa do microcontrolador . . . . . . . . . . . . . . . . 36
Figura 20 – Layout da placa do microcontrolador . . . . . . . . . . . . . . . . . . . 37
Figura 21 – Modelo 3D da placa do microcontrolador . . . . . . . . . . . . . . . . . 37
Figura 22 – Placa do microcontrolador com os componentes . . . . . . . . . . . . . 37
Figura 23 – Fontes de alimentação das placas e do conversor . . . . . . . . . . . . . 38
Figura 24 – Esquemático do conversor abaixador para simulação . . . . . . . . . . . 39
Figura 25 – Forma de onda da tensão de saída do conversor . . . . . . . . . . . . . 40
Figura 26 – Forma de onda da corrente no indutor na condução contínua . . . . . . 40
Figura 27 – Forma de onda da corrente no indutor na condução descontínua . . . . 41
Figura 28 – Forma de onda da corrente no indutor na condução crítica . . . . . . . 41
Figura 29 – Circuito montado para simulação . . . . . . . . . . . . . . . . . . . . . 42
Figura 30 – Frequência de 1kHz na simulação . . . . . . . . . . . . . . . . . . . . . 42
Figura 31 – Frequência de 5kHz na simulação . . . . . . . . . . . . . . . . . . . . . 42
Figura 32 – Frequência de 10kHz na simulação . . . . . . . . . . . . . . . . . . . . 43
Figura 33 – Frequência de 15kHz na simulação . . . . . . . . . . . . . . . . . . . . 43
Figura 34 – Frequência de 20kHz na simulação . . . . . . . . . . . . . . . . . . . . 43
Figura 35 – PWM medido no osciloscópio do simulador para 1kHz . . . . . . . . . 44
Figura 36 – PWM medido no osciloscópio do simulador para 5kHz . . . . . . . . . 44
Figura 37 – PWM medido no osciloscópio do simulador para 10kHz . . . . . . . . . 45
Figura 38 – PWM medido no osciloscópio do simulador para 15kHz . . . . . . . . . 45
Figura 39 – PWM medido no osciloscópio do simulador para 20kHz . . . . . . . . . 45
Figura 40 – Pulso com precisão de 1% . . . . . . . . . . . . . . . . . . . . . . . . . 46
Figura 41 – Frequência de 1kHz no módulo . . . . . . . . . . . . . . . . . . . . . . 47
Figura 42 – Frequência de 5kHz no módulo . . . . . . . . . . . . . . . . . . . . . . 47
Figura 43 – Frequência de 10kHz no módulo . . . . . . . . . . . . . . . . . . . . . . 47
Figura 44 – Frequência de 15kHz no módulo . . . . . . . . . . . . . . . . . . . . . . 48
Figura 45 – Frequência de 20kHz no módulo . . . . . . . . . . . . . . . . . . . . . . 48
Figura 46 – PWM de 1kHz e 50% de razão cíclica . . . . . . . . . . . . . . . . . . . 49
Figura 47 – PWM de 5kHz e 50% de razão cíclica . . . . . . . . . . . . . . . . . . . 49
Figura 48 – PWM de 10kHz e 50% de razão cíclica . . . . . . . . . . . . . . . . . . 50
Figura 49 – PWM de 15kHz e 50% de razão cíclica . . . . . . . . . . . . . . . . . . 50
Figura 50 – PWM de 20kHz e 50% de razão cíclica . . . . . . . . . . . . . . . . . . 51
Figura 51 – PWM de 10kHz com pulso de 1% de razão cíclica . . . . . . . . . . . . 51
Figura 52 – Aguardando pressionar o botão Enter . . . . . . . . . . . . . . . . . . . 52
Figura 53 – Tensão de saída para 1kHz . . . . . . . . . . . . . . . . . . . . . . . . . 53
Figura 54 – Tensão de saída para 5kHz . . . . . . . . . . . . . . . . . . . . . . . . . 53
Figura 55 – Tensão de saída para 10kHz . . . . . . . . . . . . . . . . . . . . . . . . 54
Figura 56 – Tensão de saída para 15kHz . . . . . . . . . . . . . . . . . . . . . . . . 54
Figura 57 – Tensão de saída para 20kHz . . . . . . . . . . . . . . . . . . . . . . . . 54
Figura 58 – Forma de onda da corrente no indutor para o modo de condução crítica 55
Figura 59 – Forma de onda da corrente no indutor para o modo de condução des-
contínua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Figura 60 – Forma de onda da corrente no indutor para o modo de condução contínua 56
Figura 61 – Conversor buck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Figura 62 – Módulo de potência do conversor buck . . . . . . . . . . . . . . . . . . 62
Figura 63 – Placa IHM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Lista de Abreviaturas e Siglas

CC-CC Corrente Contínua-Corrente Contínua


F Faraday
H Henry
IGBT Insulated Gate Bipolar Transistor
IHM Interface Homem-Máquina
LCD Liquid Crystal Display
LED Light Emitting Diode
m 10−3
MOSFET Metal-Oxide-Semiconductor Field Effect Transistor
PWM Pulse Width Modulation
UFCG Universidade Federal de Campina Grande
𝜇 10−6
Lista de tabelas

Tabela 1 – Valores do registrador PR2 para as frequências desejadas. . . . . . . . 26


Tabela 2 – Valores do conjunto de registradores (CCPR1L:CCP1CON<5:4:) para
as frequências desejadas e ciclo de trabalho de 50%. . . . . . . . . . . . 28
Tabela 3 – Valores de tensão de entrada e saída do conversor para as frequências
de chaveamento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Sumário

Lista de Ilustrações . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Lista de Abreviaturas e Siglas . . . . . . . . . . . . . . . . . . . . . . 7

Lista de tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . 13
2.1 Conversores CC-CC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Chave eletrônica (MOSFET) . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Modulação por Largura de Pulso - PWM . . . . . . . . . . . . . . . . 17
2.4 Microcontrolador PIC16F877A . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Gate Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3 MÓDULO DE POTÊNCIA DO CONVERSOR BUCK . . . . . . . . 22

4 PROGRAMAÇÃO DO MICROCONTROLADOR . . . . . . . . . . . 24
4.1 Bits de Configuração . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2 Rotinas do Código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3 Geração do Sinal PWM . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3.1 Cálculo de PR2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3.2 Resolução do Sinal PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3.3 Cálculo do Conjunto de Registradores (CCPR1L:CCP1CON<5:4>) . . . . . 27
4.3.4 Atribuição dos Valores aos Registradores via Programação . . . . . . . . . 28
4.3.5 Configurando T2CON . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5 INTERFACE HOMEM-MÁQUINA . . . . . . . . . . . . . . . . . . . 32
5.1 Placa da IHM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2 Placa do Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . 35
5.3 Alimentação Elétrica das Placas e do Conversor . . . . . . . . . . . . 37

6 ANÁLISE DOS RESULTADOS . . . . . . . . . . . . . . . . . . . . . 39


6.1 Simulação do Conversor buck . . . . . . . . . . . . . . . . . . . . . . 39
6.2 Simulação do Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.3 Análise dos Resultados no Módulo Didático . . . . . . . . . . . . . . 47

7 TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . 58
8 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

APÊNDICES 61

APÊNDICE A – GUIA DE UTILIZAÇÃO DO MÓDULO . . . . . . 62

APÊNDICE B – CÓDIGO EM LINGUAGEM C DESENVOLVIDO


PARA GERAR O SINAL PWM . . . . . . . . . . . 64
11

1 INTRODUÇÃO

A eletrônica de potência é um ramo fundamental da Engenharia Elétrica que se


concentra na conversão, controle e gerenciamento eficiente de energia elétrica em diferen-
tes níveis de tensão e corrente. Sua importância reside no fato de que ela desempenha um
papel crucial na otimização do uso de energia em uma ampla gama de aplicações industri-
ais, comerciais e até mesmo residenciais. Ao empregar dispositivos eletrônicos de potência
como retificadores, inversores, conversores CC-CC e outras topologias avançadas, a ele-
trônica de potência permite a eficiente adaptação e distribuição de energia, contribuindo
para maior eficiência energética e a redução de perdas.
Os conversores CC-CC são circuitos eletrônicos utilizados para a conversão de
energia elétrica, sendo amplamente usados em muitas aplicações, incluindo carregadores
de bateria e fontes de alimentação. O conversor buck (abaixador de tensão) é um dos tipos
mais comuns de conversor CC-CC.
A disciplina do Laboratório de Eletrônica de Potência do curso de Engenharia
Elétrica da UFCG estuda o funcionamento destes circuitos. Com base nisso, para pro-
porcionar uma experiência ao aluno de modo que ele possa verificar, na prática, o que
foi aprendido na teoria, será desenvolvido um circuito de comando microcontrolado em
uma placa de circuito impresso com uma interface para operar o circuito de potência do
conversor buck. Nesta placa, o aluno contará com botões, LEDs indicativos e um display
LCD, permitindo-lhe configurar a frequência e a razão cíclica do sinal PWM.
Este trabalho está estruturado em sete capítulos, que são: introdução (Capítulo
1); fundamentação teórica (Capítulo 2); módulo de potência do conversor buck (Capítulo
3); programação do microcontrolador (Capítulo 4); interface Homem-Máquina (Capítulo
5); análise dos resultados (Capítulo 6) e trabalhos futuros (Capítulo 7).
Na fundamentação teórica (Capítulo 2), será realizada a análise do conversor CC-
CC abaixador, a dedução das equações da tensão de saída e a equação para dimensio-
namento dos componentes passivos (indutor e capacitor). Será realizada uma análise das
chaves eletrônicas empregadas nesses conversores. Também será abordada a modulação
por largura de pulso, responsável pela frequência de chaveamento do conversor, assim
como o controle da tensão de saída. O capítulo incluirá detalhes sobre o microcontrolador
PIC16F877A, suas funções e equações principais. Por fim, será feita uma análise sobre o
gate drive, responsável pelo ganho de tensão do sinal PWM, para controlar a abertura e
o bloqueio da chave semicondutora do conversor buck.
No capítulo 3, será apresentado o módulo de potência do conversor buck, expondo
os componentes do módulo, bem como o cálculo do capacitor de saída do conversor e o
Capítulo 1. INTRODUÇÃO 12

valor da oscilação da corrente no indutor.


No capítulo 4, será abordada a programação do microcontrolador para a geração
do sinal PWM, incluindo as configurações dos registradores e a atribuição desses valores
por meio de programação.
No capítulo 5, será descrito como foi desenvolvida a interface Homem-Máquina
para que o usuário possa controlar a frequência e o valor do ciclo de trabalho do sinal
PWM gerado pelo microcontrolador.
No capítulo 6, será realizada a análise dos resultados.
Por fim, no capítulo 7, serão discutidos os pontos propostos para atividades a
serem realizadas no futuro.

1.1 Objetivos
O objetivo geral consiste em desenvolver um circuito de comando para um con-
versor buck, visando proporcionar aos estudantes de laboratório um aprendizado prático
sobre princípios de Eletrônica de Potência, controle de tensão e corrente elétrica, além
de promover uma compreensão sobre o funcionamento e aplicações dos conversores de
energia. Os objetivos específicos são:
• projetar e implementar um circuito de comando com microcontrolador em uma
placa de circuito impresso para acionamento de um conversor buck de um módulo didático
do Laboratório de Eletrônica de Potência da UFCG, permitindo o ajuste da frequência e
do ciclo de trabalho do sinal PWM;
• projetar e implementar uma interface que permita aos alunos uma compreensão
dos princípios de funcionamento de um circuito de comando para os conversores CC-CC ;
• Desenvolver uma interface para que o aluno possa configurar o sinal PWM de
saída conforme suas preferências, de modo a permitir que os alunos apliquem os conceitos
teóricos aprendidos em sala de aula na prática, possibilitando a análise das tensões e
correntes elétricas do conversor;
13

2 FUNDAMENTAÇÃO TEÓRICA

2.1 Conversores CC-CC


Os conversores CC-CC desempenham um papel fundamental na Eletrônica de
Potência. Esses circuitos têm a capacidade de fornecer uma tensão elétrica regulada na
saída a partir de uma entrada não regulada ou variável (HART, 2016). Ao contrário de
reguladores lineares comuns, como o LM7805, os conversores são altamente eficientes,
especialmente quando há uma grande disparidade entre as tensões elétricas de entrada
e saída, já que os reguladores operam de maneira dissipativa, enquanto os conversores
funcionam de forma chaveada, minimizando as perdas. Outra vantagem significativa é
que os conversores podem fornecer tanto saídas de tensão elétrica mais altas quanto mais
baixas em comparação com a entrada, enquanto os reguladores lineares apenas reduzem
a tensão de entrada para um nível constante e mais baixo. O conversor CC-CC do tipo
buck (figura 1), produz uma tensão elétrica menor na saída 𝑉𝑜 em relação à entrada 𝑉𝑖𝑛 .

Figura 1 – Conversor buck

Fonte: Autoria própria

O circuito do conversor abaixador é composto por dois elementos passivos, o indu-


tor L e o capacitor C, além de dois componentes semicondutores: o diodo D e uma chave
eletrônica S com controle do estado de condução e bloqueio, unidirecional em tensão e
em corrente, a exemplo de, BJT, MOSFET ou IGBT. Além disso, requer uma tensão de
alimentação e uma carga representada na figura 1 pela resistência R. Para compreender
o princípio de funcionamento do circuito e determinar a relação entre a tensão elétrica de
entrada e saída, é crucial analisar os estágios de comutação da chave S, isto é, realizar a
análise quando a chave está aberta e quando está fechada. Quando a chave S está fechada,
o circuito assume a configuração ilustrada na figura 2.
Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 14

Figura 2 – Chave S fechada

Fonte: Autoria própria

A tensão elétrica 𝑉𝑜 é menor que 𝑉𝑖𝑛 para o estágio de condução da chave S.


Observa-se também que o diodo D estará bloqueado, pois o potencial positivo aparece
no seu terminal de cátodo. Então, ao analisar a malha externa pela Lei de Kirchhoff,
obtém-se a seguinte equação:

−𝑉𝑖𝑛 + 𝑉𝑙 + 𝑉𝑜 = 0
𝑉𝑙 = 𝑉𝑖𝑛 − 𝑉𝑜 . (2.1)

A tensão elétrica no indutor é positiva porque 𝑉𝑜 < 𝑉𝑖𝑛 . Agora, ao analisar o circuito
da figura 3 com a chave S aberta, o diodo entrará rapidamente em condução (idealmente
com uma tensão elétrica nula entre os seus terminais de ânodo e cátodo) devido à im-
possibilidade de variação abrupta na corrente no indutor. Assim, o diodo é polarizado
diretamente.

Figura 3 – Chave S aberta

Fonte: Autoria própria

Para este estágio de condução, a equação (2.2) corresponde à tensão elétrica no


indutor.

𝑉𝑙 = −𝑉𝑜 . (2.2)
Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 15

De posse das equações (2.1) e (2.2) foi elaborado a forma de onda ideal da tensão elétrica
no indutor (figura 4). Considerando que, em regime permanente, a tensão média sobre ele
é 0V, além do fato de que o valor médio de qualquer gráfico é obtido dividindo a sua área
pelo período, tem-se o seguinte:

Figura 4 – Forma de onda da tensão elétrica no indutor

Fonte: Autoria própria.

(𝑉in − 𝑉𝑜 ) × 𝑇on − 𝑉𝑜 × 𝑇off


= 𝑉l_médio = 0,
𝑇𝑠

𝑇off = 𝑇𝑠 − 𝑇on

Então,

𝑉in × 𝑇on
𝑉𝑜 = . (2.3)
𝑇𝑠

Onde, a relação 𝑇𝑇𝑜𝑛𝑠 é conhecida como razão cíclica ou ciclo de trabalho (𝐷),
podendo variar de 0 a 1. Portanto, a relação entre a tensão elétrica de entrada e saída do
conversor é dada pela equação (2.4).

𝑉𝑜 = 𝑉𝑖𝑛 × 𝐷. (2.4)

Para o dimensionamento dos elementos passivos (capacitor e indutor), utilizam-se


as equações (2.5) e (2.6), respectivamente.

(𝑉in − 𝑉𝑜 ) × 𝐷
𝐶= . (2.5)
8 × 𝐿 × Δ𝑉𝑐 × 𝑓 2
Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 16

e
(𝑉in − 𝑉𝑜 ) × 𝐷
𝐿= . (2.6)
𝑓 × Δ𝐼𝐿
Onde Δ𝐼𝐿 e Δ𝑉𝑐 são o diferencial das amplitudes das oscilações de corrente e
tensão elétrica, no indutor e capacitor, em relação aos seus valores mínimos e máximos,
respectivamente. O termo 𝑓 é a frequência de comutação da chave 𝑆.
Sob o ponto de vista de funcionamento, verifica-se que o conversor buck pode
operar em três modos diferentes: o modo de condução contínua, onde a corrente elétrica no
indutor nunca atinge o nível de 0A; o modo de condução descontínua, no qual a corrente
elétrica atinge 0A e permanece neste valor durante um período de funcionamento do
conversor; e, terceiro, o modo de condução crítica, no qual a corrente elétrica no indutor
fica no limiar entre a condução contínua e a descontínua.

2.2 Chave eletrônica (MOSFET)


Conforme ilustrado e citado anteriormente, o conversor requer na sua estrutura
uma chave S totalmente controlada. Deste modo, é desejavel a utilização de chaves semi-
condutores capazes de abrir e fechar em altas frequências. No conversor buck proposto, foi
utilizado um MOSFET IRF840 (figura 5) de canal N como interruptor. De acordo com o
datasheet do fabricante, este componente pode operar com até 500V entre dreno e fonte
e suporta uma corrente de dreno de até 8,5A. Para os conversores CC-CC, o MOSFET
opera nos estados de corte (interruptor aberto) e saturação (interruptor fechado).

Figura 5 – Simbologia do MOSFET IRF840

Fonte: Datasheet do fabricante

Devido às capacitâncias intrínsecas presentes no componente, resultantes do pro-


cesso de fabricação, é necessário carregar e descarregar essas capacitâncias para realizar
a comutação do semicondutor. Para isso, é essencial aplicar uma tensão elétrica entre os
terminais da porta e fonte (𝑉𝐺𝑆 ), sendo essa tensão maior que a tensão de limiar (ou
threshold), que para este modelo de MOSFET é de 4V. Além disso, os tempos de subida
e descida do componente são de 37 e 36ns, respectivamente.
Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 17

O circuito de controle utilizado para realizar o chaveamento é baseado na modu-


lação por largura de pulso (PWM), com uma frequência fixa, variando a razão cíclica.
Para garantir a saturação completa do MOSFET e permitir que ele conduza corrente
eficientemente, um valor típico de 𝑉𝐺𝑆 é 15V.

2.3 Modulação por Largura de Pulso - PWM


A modulação por largura de pulso é uma técnica que permite controlar a quan-
tidade de energia fornecida a um componente ou circuito específico. Isso é alcançado ao
variar o tempo durante o qual o sinal PWM permanece em nível alto, enquanto mantém o
valor do período fixo. Essa variação determina o valor da razão cíclica (𝐷), que é definido
pela relação entre esse tempo em nível alto pelo tempo total do sinal, ou seja, pelo o
período PWM. Essa abordagem é interessante porque possibilita a obtenção de diferentes
tensões elétricas para o mesmo sinal PWM. Usada amplamente na eletrônica de potência,
o sinal PWM também desempenha um papel essencial nos conversores chaveados.
O sinal PWM pode ser gerada ao comparar dois sinais por meio de um amplificador
operacional, por exemplo. Um dos sinais é contínuo ou modulante (em vermelho, conforme
ilustrado na figura 6), enquanto o outro é uma forma de onda dente de serra ou triangular
(portadora, em azul na figura 6), que determina a frequência de repetição do sinal PWM.
Durante a comparação, sempre que o sinal da portadora supera o sinal de referência, o
amplificador operacional satura para 0V, já que o sinal triangular está conectado à entrada
inversora do amplificador. Por outro lado, toda vez que o sinal modulante ultrapassa o da
portadora, o amplificador satura para +𝑉𝑐𝑐 , pois está conectado à entrada não inversora.
É importante notar que a amplitude do sinal modulante determina o ciclo de trabalho. A
figura 7 ilustra o esquema de circuito bastante utilizado para a geração desse sinal.

Figura 6 – PWM

Fonte: Autoria própria


Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 18

Figura 7 – Circuito gerador da PWM

Fonte: Autoria própria

A partir de um sinal seguindo este princípio aplicado nos terminais de porta e fonte
do MOSFET da família MOS, torna-se possível controlar a abertura e o fechamento dessas
chaves semicondutoras. Uma abordagem bastante comum e mais simples para gerar o sinal
PWM é por meio de microcontroladores, que, com programação, conseguem implementar
esse sinal. O sinal PWM pode ser obtido em uma de suas portas de saída com nível alto
de 3,3 e/ou 5V.

2.4 Microcontrolador PIC16F877A


O componente central do projeto é o microcontrolador PIC16F877A da Microchip,
representado na figura 8. Ele possui 40 pinos bidirecionais (exceto pelos pinos de Mas-
ter Clear, ou Reset, pinos de alimentação e clock), ou seja de entrada e saída de sinal,
juntamente com os periféricos Timer 0, Timer 1 e Timer 2, além de dois módulos CCP
(Captura, Comparação e PWM), um conversor analógico-digital de 10 bits e comparado-
res analógicos. Esse microcontrolador pode operar com uma frequência de clock externo
de até 20MHz. Além disso, oferece ajustes de pré-escalonador e pós-escalonador. O mi-
crocontrolador tem a capacidade de gerar um sinal PWM de 8 bits, com uma resolução
máxima de 10 bits, controlados pelo Timer 2, operando a um nível alto de 5V. Para este
projeto, a frequência do cristal oscilador 𝐹𝑜𝑠𝑐 escolhida foi 4MHz, e foram utilizados capa-
citores de 15pF para formar o circuito oscilador, onde esse valor é recomendado na folha
de dados do fabricante para a frequência escolhida.
Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 19

Figura 8 – PIC16F877A

Fonte: (Microchip, 2023)

É importante notar que nesta linha de microcontroladores, o sinal de clock externo


é dividido internamente por 4. Consequentemente, o ciclo de máquina (𝐶𝑚 ) é dado pelo
cálculo a seguir.

)︂−1
𝐹osc
(︂
𝐶𝑚 = = 1𝜇𝑠.
4
Ou seja, o microcontrolador executa as instruções a cada 1𝜇𝑠. O período de osci-
lação do microcontrolador (𝑇osc ) é calculado da seguinte forma,

1
𝑇osc = = 250ns.
4 × 106
O Timer 2 é um temporizador de 8 bits, o que significa que ele pode contar de 0
a 255 e também pode ser utilizado como base de tempo para o sinal PWM. Para definir
o pré-escalonador, que é basicamente um divisor de frequência, é suficiente configurar os
bits 1 a 0 do registrador T2CON, que são os T2CKPS1:T2CKPS0. Isso permite obter um
pré-escalonador de 1:1, 1:4 ou 1:16. Neste caso, foi escolhido o valor de 1:4, configurando
o bit T2CKPS1 para 0 e o bit T2CKPS0 para 1. Para o pós-escalonador, é necessário
configurar os bits TOUTPS3:TOUTPS0. O estouro do Timer 2 pode ser obtido pela
equação (2.7).

Estouro Timer 2 = 𝑃 𝑅2 × pré-escalonador × ciclo de máquina × pós-escalonador. (2.7)

O registrador PR2, também de 8 bits, tem a responsabilidade de definir a frequência do


Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 20

sinal PWM gerado, conforme a equação (2.8).

PWM Period = [(𝑃 𝑅2) + 1] × 4 × 𝑇osc × (pré-escalonador do Timer 2). (2.8)

Além disso, é essencial configurar o ciclo de trabalho para a frequência desejada,


utilizando a equação (2.9).

PWM Duty Cycle = (𝐶𝐶𝑃 𝑅1𝐿 : 𝐶𝐶𝑃 1𝐶𝑂𝑁 < 5 : 4 >) × 𝑇osc × (pré-escalonador).
(2.9)
Onde, o conjunto de registradores (CCPR1L:CCP1CON<5:4>) controlam a razão
cíclica. Por fim, a variável PWM Duty Cycle é calculado multiplicando-se o valor do ciclo
de trabalho desejado pelo período da frequência do sinal PWM desejado. Em outras
palavras,
PWM Duty Cycle = 𝐷 × PWM Period. (2.10)

Dessa forma, é possível definir o valor do conjunto de registradores para cada valor
da razão cíclica correspondente. Assim, como o Timer 2, o Timer 0 também é de 8 bits,
e o estouro pode ser calculado usando a equação (2.11).

Estouro Timer 0 = (256 − TMR0) × pré-escalonador do Timer 0 × ciclo de máquina.


(2.11)

2.5 Gate Drive


Conforme explanado em seção anterior, para acionar chaves eletrônicas, como o
MOSFET, é necessário que haja uma diferença de tensão elétrica entre os terminais da
porta e a fonte, superior à tensão de limiar. Os microcontroladores PIC podem fornecer
no máximo 5V em nível alto, o que não é suficiente para acionar o MOSFET. Por esse
motivo, é preciso utilizar gate drives, responsáveis por garantir um acionamento rápido
e eficaz do semicondutor. Esses dispositivos amplificam o sinal de baixa potência do
microcontrolador para um nível alto, geralmente de 15V, tensão comumente utilizada
para acionar MOSFETs.
Em certas topologias de conversores, como o buck, o terminal da fonte da chave
está flutuando em relação à referência do circuito de potência (configuração High-side).
Nesse caso, não é possível manter um potencial elétrico em 𝑉𝐺𝑆 , o que resulta no mau
funcionamento da chave. Existem técnicas para solucionar esse problema. Uma delas é
a técnica de bootstrap, que utiliza um capacitor para armazenar e manter a diferença de
potencial elétrico entre os terminais do MOSFET. Outra solução é usar um gate drive
isolado, como o HCPL-3180.
O HCPL-3180 (figura 9) é um gate drive optoacoplado, o que significa que não
há conexão elétrica direta entre a entrada e a saída. Ele possui alta velocidade, com
Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 21

uma corrente máxima de saída de 2,5A e pode operar em frequências de até 250kHz.
Além disso, tem tempos de subida e descida de 25ns. É, altamente eficaz em conversores
CC-CC, assegurando o acionamento e o bloqueio eficiente do MOSFET.
Este componente, disponível em um encapsulamento DIP 8, tem o pino 2 (Ânodo)
como entrada do sinal do microcontrolador, referenciado ao pino 3 (Cátodo). Os pinos
8 (Vcc) e 5 (VEE) fornecem energia elétrica ao dispositivo, com um valor máximo reco-
mendado de 20V pelo fabricante. O pino Vo é a saída do pulso de comando amplificado,
conectado ao pino da porta da chave. O HCPL-3180 possui um LED interno que é ativado
pelo sinal de entrada quando há fluxo de corrente elétrica. Isso excita o estágio de saída,
gerando o pulso de comando com valor igual ao da alimentação elétrica do componente.
É importante observar que a fonte de alimentação precisa ser isolada do conversor, pois
o pino VEE está interligado ao pino da fonte do MOSFET.

Figura 9 – HCPL-3180

Fonte: Datasheet do fabricante


22

3 MÓDULO DE POTÊNCIA DO CONVER-


SOR BUCK

O módulo de potência do conversor abaixador (figura 10) já havia sido projetado


anteriormente, faltando apenas o circuito de comando para as chaves. O módulo possui
duas fontes de alimentação de 34V, duas chaves semicondutoras, dois diodos, quatro
indutores, dois capacitores e quatro cargas resistivas, sendo duas de 10W e duas de 100W.
O módulo possui bornes de ligação para permitir a conexão de cada componente de acordo
com a topologia do conversor e da carga.

Figura 10 – Módulo de potência do conversor abaixador

Fonte: Autoria própria

Após os testes de cada componente do módulo, foram realizadas algumas alte-


rações. A primeira modificação foi a substituição das chaves danificadas por MOSFETs
IRF840. A segunda alteração foi a troca do indutor do módulo por um com resposta li-
near, com indutância de 7mH, pois o indutor estava saturando para um determinado valor
de frequência de chaveamento. Por fim, devido a essa alteração do valor da indutância,
o capacitor de saída do conversor buck teve que ser projetado novamente para esse valor
de indutância, bem como, para uma frequência de 10kHz e um ciclo de trabalho de 50%,
levando em consideração uma oscilação (Δ𝑉𝑐 ) de 1% da tensão de saída. O cálculo foi
realizado utilizando a equação (2.5). De acordo com a equação (2.4), o valor da tensão de
saída para essa razão cíclica é de 17V. Então,

(34 − 17) × 0, 5
𝐶= = 8, 9𝜇𝐹.
8×7× 10−3 × 0, 01 × 17 × (10 × 103 )2

O valor de capacitância comercial mais próximo é de 10𝜇𝐹 e este foi escolhido com
Capítulo 3. MÓDULO DE POTÊNCIA DO CONVERSOR BUCK 23

uma tensão elétrica suportada de 100V. A figura 11 ilustra o capacitor soldado na placa
do conversor (destacado em vermelho).

Figura 11 – Capacitor de 10𝜇𝐹

Fonte: Autoria própria

Para esse valor de indutância, a oscilação de corrente elétrica no indutor ( Δ𝐼𝐿 ) é


calculada utlizando a equação (2.6).

(34 − 17) × 0, 5
Δ𝐼𝐿 = = 121, 43 mA.
(10 × 103 ) × (7 × 10−3 )
24

4 PROGRAMAÇÃO DO MICROCONTRO-
LADOR

Toda a programação do PIC16F877A foi desenvolvida em linguagem C utilizando


o software de compilação mikroC PRO for PIC.

4.1 Bits de Configuração


Os bits de configuração, ou fuses, do microcontrolador PIC16F877A desempenham
um papel essencial ao assegurar o funcionamento adequado do dispositivo. Essas configu-
rações de hardware definem diversos aspectos de seu comportamento, incluindo a frequên-
cia do oscilador, proteção de código e outros parâmetros. Os fuses foram configurados da
seguinte forma:

• Oscillator Selection - este bit é configurado de acordo com a frequência do


circuito oscilador utilizado. Para este projeto, optou-se pelo XT oscillator, adequado
para frequências médias, como os 4MHz.

• Watchdog Timer - a principal finalidade do Watchdog Timer é evitar que o


sistema entre em estados de mau funcionamento ou fique preso em loops infinitos.
No entanto, para este projeto, decidiu-se desabilitar esse recurso.

• Power-up Timer - este bit é importante, pois mantém o microcontrolador em


estado de reset por 72ms para estabilizar as configurações dos registradores. Foi
habilitado para este projeto.

• Brown-out Reset - este bit faz com que o microcontrolador reinicie após uma
baixa tensão de alimentação, em torno de 4V, quando essa tensão permanece por
um tempo superior a 100𝜇𝑠. Foi desabilitado para este projeto.

Os outros bits de configuração, como programação em tensão baixa, proteção de


código, escrita na memória flash e depuração, foram configurados como desabilitados.
Essas configurações são ilustradas na figura 12.
Capítulo 4. PROGRAMAÇÃO DO MICROCONTROLADOR 25

Figura 12 – Configuração dos fuses

Fonte: Autoria própria

4.2 Rotinas do Código


Em linguagem C, rotinas referem-se a blocos de código que realizam uma tarefa
específica e que podem ser chamados de outros lugares no programa. Essas rotinas também
são conhecidas como funções.
No código do projeto, foram desenvolvidas as funções de leitura de botões da placa
da interface Homem-Máquina (será apresentada no capítulo 5). Ademais, foi implemen-
tada uma função para selecionar a frequência do sinal PWM, de modo que o usuário
possa também variar a razão cíclica do sinal, outra função para ativar o sinal PWM e
uma terceira para desativá-lo e uma quarta função foi incluída para que se possa proceder
com a limpeza do display LCD.
Os botões são lidos periodicamente por meio da interrupção do Timer 0, que ocorre
a cada 65,536ms. Este é um dos diversos recursos que previnem o efeito de debouncing,
ou seja, problemas de ruídos e instabilidades que podem surgir quando um botão físico
(ou chave) é pressionado ou liberado. Este fenômeno acontece devido à oscilação rápida
do contato físico, gerando múltiplos sinais elétricos transitórios. Essa instabilidade pode
resultar em erros no projeto, como o efeito de pressionar o botão uma vez e observar duas
mudanças.

4.3 Geração do Sinal PWM


Para gerar o sinal PWM, é necessário inicialmente configurar os bits <3:0> do
registrador CCP1CON para 11xx, a fim de colocar o módulo CCP em modo PWM. Em
seguida, deve-se calcular os valores do registrador PR2 de acordo com as frequências
Capítulo 4. PROGRAMAÇÃO DO MICROCONTROLADOR 26

desejadas, utilizando a equação (2.8). Outrossim, se faz necessário definir a resolução


desejada para o sinal PWM. Logo, se deve calcular os valores do conjunto de registradores
(CCPR1L:CCP1CON<5:4>), utilizando as equações (2.9) e (2.10), e em seguida atribuir
esses valores via programação. Por fim, é necessário configurar o bit 2 (TMR2ON) do
registrador T2CON para 1 para ativá-lo e, em seguida, deve-se configurar o registrador
TRISC para saída digital, colocando seu valor para 0. As seções a seguir informam como
são feitos esses procedimentos para geração do sinal PWM.

4.3.1 Cálculo de PR2


Para o sinal PWM proposto, foram utilizadas frequências de 1, 5, 10, 15 e 20kHz.
Em seguida, define-se o valor do pré-escalonador do Timer 2, que já foi escolhido como
1:4. Com esses valores e conhecendo 𝐹𝑜𝑠𝑐 e o valor do pré-escalonador, é possível realizar
a simplificação da equação (2.8), de maneira que se tem o resultado a seguir,

4 × 106
𝑃 𝑅2 = − 1.
𝑓 ×4×4
Para cada frequência desejada no projeto, foram calculados os valores de PR2 e os resul-
tados são listados na tabela 1.

Tabela 1 – Valores do registrador PR2 para as frequências desejadas.


Frequência 1kHz 5kHz 10kHz 15kHz 20kHz
PR2 249 49 24 15 11

Fonte: Autoria própria.

4.3.2 Resolução do Sinal PWM


A resolução do sinal PWM refere-se à precisão com que é possível controlar o
ciclo de trabalho, expressa em bits, definindo a quantidade de "espaços"em que a razão
cíclica pode ser dividida. Assim, quanto maior a resolução do sinal, melhor será a precisão,
permitindo um controle mais efetivo sobre a largura do pulso. A fórmula para correlacionar
a resolução de 10 bits do sinal PWM com o tempo é:

Contagem
Tempo em nível alto = × Período
Valor máximo de contagem
Onde:

• tempo em nível alto - é o tempo durante o qual o sinal PWM está em nível alto;

• contagem - é o valor atual da contagem do registrador que controla a razão cíclica


do sinal PWM (de 0 a 1023, no caso de uma resolução de 10 bits);
Capítulo 4. PROGRAMAÇÃO DO MICROCONTROLADOR 27

• valor máximo de contagem - é o valor máximo possível de contagem (1023 para uma
resolução de 10 bits e por exemplo, 255 para uma resolução de 8 bits);

• período - é o período total do sinal PWM;

Por exemplo, para uma contagem de 512, uma resolução de 10 bits e uma frequência de
1 kHz, pode-se calcular o tempo associado à contagem usando a fórmula de correlação:

1
Contagem = 512, Valor máximo contagem = 1023, Período = = 0, 001 s
Frequência

Substituindo esses valores, obtém-se:

512
Tempo = × 0, 001 s = 0, 0005 s = 500 𝜇s
1023
Então, para um valor de contagem de 512, resolução de 10 bits e uma frequência
de, por exemplo, 1 kHz, o tempo durante o qual o sinal PWM estará em nível alto (5V,
gerado pelo PIC) será 500 𝜇s, ou seja, uma razão cíclica de 0,5, pois 500 𝜇s corresponde a
50% do período (1ms, para essa frequência) do sinal PWM.
Para o conversor proposto, essa resolução de 10 bits foi escolhida para se ter um
melhor controle sobre a tensão elétrica de saída. Para uma frequência de 10kHz, por
exemplo, essa resolução permite gerar um pulso de 1 𝜇s.

4.3.3 Cálculo do Conjunto de Registradores (CCPR1L:CCP1CON<5:4>)


O valor do ciclo de trabalho é controlado escrevendo no registrador CCPR1L,
que possui 8 bits. Para obter o PWM com resolução máxima de 10 bits, torna-se ne-
cessário configurar os bits CCP1CON<5:4> para receber os dois bits menos signifi-
cativos do valor total, ou seja, o registrador CCPR1L recebe os oito bits mais signi-
ficativos, enquanto CCP1X:CCP1Y recebem os dois bits menos significativos. De iní-
cio, considerou-se um ciclo de trabalho inicial de 50% para a obtenção dos valores de
(CCPR1L:CCP1CON<5:4>).
Para exemplificar como é feito o cálculo do valor do conjunto de registradores,
utiliza-se a frequência de 1 kHz. Sabendo que o período para essa frequência é de 1 ms, a
partir das equações (2.9) e (2.10), tem-se os seguintes resultados:

PWM Duty Cycle = 0, 5 × 0, 001 = 0, 0005.

Obtendo-se,
Capítulo 4. PROGRAMAÇÃO DO MICROCONTROLADOR 28

0, 0005
(CCP1RL : CCP1CON < 5 : 4 >) = = 500.
250 × 10−9 × 4
Portanto, seguindo esses passos, obtém-se os valores de (CCP1RL : CCP1CON <
5 : 4 >) para cada frequência desejada para o projeto. Esses resultados estão listados na
tabela 2.

Tabela 2 – Valores do conjunto de registradores (CCPR1L:CCP1CON<5:4>) para as


frequências desejadas e ciclo de trabalho de 50%.
Frequência 1kHz 5kHz 10kHz 15kHz 20kHz
CCPR1L:CCP1CON<5:4> 500 100 50 32 24

Fonte: Autoria própria.

4.3.4 Atribuição dos Valores aos Registradores via Programação


O conjunto de registradores foram nomeados para uma variável chamada "reg"no
código desenvolvido. Em seguida, no código, utilizando-se de uma estrutura switch case,
o valor da frequência é selecionado por meio de uma placa de Interface Homem-Máquina
(IHM). Automaticamente, o algoritmo configura os valores de PR2 e da variável "reg"para
a frequência selecionada. Dessa maneira, o sinal PWM é iniciada com a frequência esco-
lhida e um ciclo de trabalho inicial de 50%. O trecho do código a seguir ilustra como essa
configuração é realizada.

switch(opcaof) {
case 1: % carrega o valor de PR2 para escolha da frequência
PR2 = 249; % PWM_Duty = 50% de valor inicial
reg = 500; % PWM de 1,5,10,15 e 20kHz
break;

case 5:
PR2 = 49;
reg = 100;
break;

case 10:
PR2 = 24;
reg = 50;
break;

case 15:
Capítulo 4. PROGRAMAÇÃO DO MICROCONTROLADOR 29

PR2 = 15;
reg = 32;
break;

case 20:
PR2 = 11;
reg = 24;
break;
}

Após configurar o valor da frequência desejada e carregar o valor de PR2, é necessá-


rio atribuir o valor do conjunto de registradores calculados anteriormente, de acordo com
a frequência escolhida. Entretanto, como explicado anteriormente, o registrador CCPR1L
possui 8 bits (suportando no máximo um valor de 255). Assim sendo, faz-se necessário
deslocar os bits à direita (’»’) do valor da variável "reg"duas vezes, o equivalente a di-
vidir por 4. Em seguida, para obter os dois bits menos significativos do valor de "reg"e
carregá-los em CCP1X e CCP1Y, é necessário realizar uma operação de AND bitwise.
Ou seja, CCP1Y recebe o bit menos significativo da variável "registrador", e para CCP1X
atribui-se o segundo bit menos significativo. O trecho de código explicitado no parágrafo
seguinte mostra como essas atribuições são realizadas.

registrador = ((PWM_Duty * reg) /50);

if (registrador < 1023) {


CCPR1L = registrador >> 2;
CCP1Y_bit = registrador & 0x0001; // % PWM de 10 bites
CCP1X_bit = (registrador & 0x0002) >> 1;
}

A variável "registrador"é equivalente à variável "reg"para cada frequência e ao valor


da razão cíclica desejada. A variável responsavel pelo controle do ciclo de trabalho é a
"PWM_Duty", variando de 0 a 99%. A relação para a variável "registrador"e a variável
"reg"é encontrada utilizando uma regra de três. Observa-se que 50% de ciclo de trabalho
mapeia para os valores de "reg"de acordo com a tabela 2 (DeepBlueEmbedded, 2023).
Portanto, para qualquer valor de ciclo de trabalho e frequência, obtém-se a equação (4.1).

PWM_Duty × reg
registrador = . (4.1)
50
Capítulo 4. PROGRAMAÇÃO DO MICROCONTROLADOR 30

Essa relação simplifica a atribuição, pois não é mais necessário utilizar as equações
(2.9) e (2.10) para recalcular o valor do conjunto de registradores para uma razão cíclica
diferente de 50%.
É importante ressaltar que os valores de PR2 e (CCPR1L:CCP1CON<5:4>) para
as frequências de 15 e 20kHz resultaram em valores decimais, sendo necessário ajustá-los
de maneira a obter frequências próximas do teórico. Esse procedimento se mostra neces-
sário e foi realizado com o objetivo de também garantir que o valor do ciclo de trabalho
não ultrapassasse o período do sinal PWM, conforme indicado na nota do datasheet do
microcontrolador: "Se o valor do ciclo de trabalho do sinal PWM for maior que o período
do sinal PWM, o pino CCP1 não será limpo."A figura 13 ilustra essa afirmação, pois é
possível observar que o ciclo de trabalho (Duty Cycle) nunca ultrapassa o valor do período
do sinal.

Figura 13 – Saída da PWM

Fonte: Datasheet do fabricante

Por outro lado, a resolução máxima do sinal PWM, dado em bits, para uma de-
terminada frequência é calculada pela equação (4.2).

log(𝐹osc /𝐹PWM )
Resolução = . (4.2)
log 2
Então, para 20kHz tem-se no máximo 7 bits e para 15kHz tem-se 8 bits, de maneira que
para essas duas frequências a resolução fica um pouco prejudicada em relação as outras
frequências, de 1 a 10kHz.

4.3.5 Configurando T2CON


Como última instrução, é necessário ativar o temporizador, configurando o bit
TMR2ON do registrador T2CON para 1. Em seguida, deve-se definir o registrador TRISC
como saída digital, atribuindo-lhe o valor 0. Com essas configurações, o sinal PWM estará
disponível no pino RC2 do microcontrolador. No diagrama de blocos do sinal PWM (figura
14), o valor de PR2 é constantemente comparado com o valor de TMR2 até ocorrer uma
correspondência, indicando o término do ciclo do sinal PWM e o início de um novo ciclo.
Capítulo 4. PROGRAMAÇÃO DO MICROCONTROLADOR 31

Desse modo, o valor de PR2 desempenha um papel importante ao determinar o período


de cada ciclo do sinal PWM, controlando a frequência do sinal da saída.

Figura 14 – Diagrama de blocos da PWM

Fonte: Datasheet do fabricante


32

5 INTERFACE HOMEM-MÁQUINA

5.1 Placa da IHM


Para o controle do ciclo de trabalho e a seleção dos valores de frequência de chave-
amento do MOSFET, foi projetada uma Interface Homem-Máquina (IHM) em uma placa
de circuito impresso. O objetivo é permitir que o usuário do módulo tenha o controle da
tensão de saída do conversor. A placa, ilustrada na figura 18, possui botões para a seleção
da frequência e da razão cíclica, além de um display LCD 16x2 que permite visualizar os
valores do ciclo de trabalho e da frequência.
O desenvolvimento dessa placa ocorreu no ambiente do KiCad, um software gra-
tuito e de interface amigável. A primeira etapa da tarefa se destinou a elaborar o esquema
do circuito elétrico (figura 15), o qual inclui o display LCD, três botões com seus res-
pectivos resistores de pull-up, três conectores tipo "banana"para alimentação e fixação da
placa no módulo, dois pinos (PWM Out e Ref) para possibilitar ao usuário medir o sinal
PWM com o osciloscópio, não esquecendo de adicionar um barramento de pinos para a
conexão com a placa que contém o circuito do microcontrolador (Seção 5.2), assim como
dois LEDs de indicação.
Capítulo 5. INTERFACE HOMEM-MÁQUINA 33

Figura 15 – Esquemático da IHM

Fonte: Autoria própria

Com o esquemático pronto, iniciou-se o desenvolvimento do layout da placa (figura


16). Nessa etapa, foram criadas as trilhas de cada camada para interligar os componentes,
além disso, definiu-se a dimensão da placa, serigrafias e, por fim, foram gerados os arquivos
Gerber. De posse desses arquivos, é possível realizar a fabricação da placa.
O modelo 3D pode ser visualizado na figura 17. Na figura 18 é possível observar a
placa com os componentes soldados.
Capítulo 5. INTERFACE HOMEM-MÁQUINA 34

Figura 16 – Layout da IHM

Fonte: Autoria própria

Figura 17 – Modelo 3D da IHM

Fonte: Autoria própria


Capítulo 5. INTERFACE HOMEM-MÁQUINA 35

Figura 18 – Placa da IHM com os componentes

Fonte: Autoria própria

Na figura 18 observa-se a presença de botões, LEDs e pinos, os quais têm como


funcionalidades:

• Botão D/F+ - realiza a seleção da frequência e varia os valores da razão cíclica,


incrementando esses parâmetros;

• Botão D/F- - realiza a seleção da frequência e varia os valores da razão cíclica,


decrementando esses parâmetros;

• Botão Enter - responsável por iniciar e alterar a função de escolha da frequência


para o controle do ciclo de trabalho, ativando o sinal PWM;

• LED verde - indica o funcionamento do módulo;

• LED vermelho - sinaliza a mudança de função, por exemplo, após a escolha da


frequência desejada, o usuário deve manter pressionado o botão "Enter "até que esse
LED realize um piscar, indicando que o usuário deverá soltar o botão e a IHM o
levará para o ajuste da razão cíclica;

• Pinos PWM Out e Ref - nesses pinos, a ponta de prova do osciloscópio deve ser
conectada para medir o sinal PWM;

5.2 Placa do Microcontrolador


A placa contendo o microcontrolador foi desenvolvida de maneira a se conectar
à IHM por meio de um cabo flat. O diagrama esquemático correspondente pode ser ob-
Capítulo 5. INTERFACE HOMEM-MÁQUINA 36

servado na figura 19. Neste diagrama, são apresentados o microcontrolador PIC16F877A,


um barramento de pinos para conexão com a placa da IHM, o gate drive HCPL-3180, o
circuito oscilador, um LED indicador de alimentação, capacitores de desacoplamento de
poliéster de 100nF, o botão de reset do microcontrolador, resistores e dois conectores (um
para alimentação do gate drive, e outro para a saída do mesmo, a qual se conecta nos
terminais da porta e fonte do MOSFET).
É importante salientar que a alimentação do PIC é realizada por meio do cabo
flat utilizado para interligar as duas placas. Isso ocorre visto que a alimentação da IHM
é proveniente dos bornes +5V e GND.

Figura 19 – Esquemático da placa do microcontrolador

Fonte: Autoria própria

O layout, o modelo 3D e a placa com os componentes soldados podem ser visuali-


zados nas figuras 20, 21 e 22, respectivamente.
Capítulo 5. INTERFACE HOMEM-MÁQUINA 37

Figura 20 – Layout da placa do microcontrolador

Fonte: Autoria própria

Figura 21 – Modelo 3D da placa do microcontrolador

Fonte: Autoria própria

Figura 22 – Placa do microcontrolador com os componentes

Fonte: Autoria própria

5.3 Alimentação Elétrica das Placas e do Conversor


Para a alimentação elétrica da placa da IHM e da placa do microcontrolador,
empregou-se uma fonte linear de 5V (destacada em vermelho na figura 23). Para alimentar
o gate drive, utilizou-se outra fonte linear isolada de 15V (destacada em verde na figura
23). Por fim, para alimentar o circuito retificador do módulo de potência, responsável por
fornecer uma tensão contínua de 34V, utilizou-se um transformador de 12 + 12V rms com
capacidade de fornecer uma corrente elétrica de 3A (destacado em roxo na figura 23).
Capítulo 5. INTERFACE HOMEM-MÁQUINA 38

Figura 23 – Fontes de alimentação das placas e do conversor

Fonte: Autoria própria


39

6 ANÁLISE DOS RESULTADOS

Inicialmente, o circuito do conversor abaixador foi simulado com os valores dos


componentes passivos calculados no capítulo 3, juntamente com uma carga resistiva de
100 Ohms. A simulação foi realizada no ambiente do OrCAD Lite, da Cadence Design
Systems. Em seguida, realizou-se a simulação para verificar se o código em linguagem C
desenvolvido para o microcontrolador funcionava perfeitamente utilizando-se o programa
Proteus.

6.1 Simulação do Conversor buck


O conversor buck simulado (figura 24) contém os mesmos componentes presentes
no módulo de potência. Nesta simulação, foram analisadas a tensão de saída para um
valor de frequência igual a 10kHz e uma razão cíclica de 50%, conforme projetado. Além
disso, a forma de onda da corrente elétrica do indutor foi analisada para a frequência de
1kHz, com o objetivo de analisar os modos de condução descontínua e crítico.

Figura 24 – Esquemático do conversor abaixador para simulação

Fonte: Autoria própria

Na figura 25 pode ser observada forma de onda da tensão da carga, ou seja, da


tensão de saída do conversor. Observa-se que o valor médio (sinal em amarelo) de 16,572V
está próximo do valor teórico para as condições fornecidas de frequência e razão cíclica
de 50%, conforme calculado anteriormente, o qual seria de 17V. É notável também que o
valor da oscilação da tensão em relação à tensão média possui um valor de 155,260mV,
muito próximo de 1% da tensão média, conforme projetado.
Capítulo 6. ANÁLISE DOS RESULTADOS 40

Figura 25 – Forma de onda da tensão de saída do conversor

Fonte: Autoria própria

Nessas condições, o conversor opera no modo de condução contínua. Para confirmar


esse modo de operação, analisou-se a forma de onda no indutor. Na figura 26 pode ser
observada essa forma de onda, onde se observa que a corrente nunca atinge o nível de
0A. Além disso, nota-se que a oscilação da corrente elétrica (124,072mA) possui um valor
bastante próximo ao calculado no capítulo 3.

Figura 26 – Forma de onda da corrente no indutor na condução contínua

Fonte: Autoria própria

Para a frequência de chaveamento de 1kHz, é possível analisar o conversor nos


modos de condução descontínua e crítica. Na figura 27 pode ser observada a forma de onda
da corrente elétrica no indutor para essa frequência e ciclo de trabalho de 50%. Observa-se
Capítulo 6. ANÁLISE DOS RESULTADOS 41

que a corrente atinge o valor de 0A e permanece por um período de tempo, caracterizando


o modo de condução descontínua. Para essa mesma frequência, o conversor mantém esse
modo de condução até 90% de razão cíclica, e logo acima desse valor, o conversor opera
no modo de condução crítica, conforme observado na figura 28.

Figura 27 – Forma de onda da corrente no indutor na condução descontínua

Fonte: Autoria própria

Figura 28 – Forma de onda da corrente no indutor na condução crítica

Fonte: Autoria própria

6.2 Simulação do Algoritmo


A simulação do código em linguagem C desenvolvido para o microcontrolador foi
realizada no ambiente do Proteus. O circuito foi montado conforme a figura 29.
Nas figuras 30, 31, 32, 33 e 34 podem ser observadas as frequências disponíveis
para a seleção, que são 1, 5, 10, 15 e 20kHz, respectivamente. Esses valores são mostrados
no display.
Capítulo 6. ANÁLISE DOS RESULTADOS 42

Figura 29 – Circuito montado para simulação

Fonte: Autoria própria

Figura 30 – Frequência de 1kHz na simulação

Fonte: Autoria própria

Figura 31 – Frequência de 5kHz na simulação

Fonte: Autoria própria


Capítulo 6. ANÁLISE DOS RESULTADOS 43

Figura 32 – Frequência de 10kHz na simulação

Fonte: Autoria própria

Figura 33 – Frequência de 15kHz na simulação

Fonte: Autoria própria

Figura 34 – Frequência de 20kHz na simulação

Fonte: Autoria própria

Observa-se nas figuras 35, 36, 37, 38 e 39 sinal PWM medido no osciloscópio
Capítulo 6. ANÁLISE DOS RESULTADOS 44

do simulador para as frequências de 1, 5, 10, 15 e 20kHz, com 50% de razão cíclica,


respectivamente. É possível observar que, conforme explicado anteriormente, os valores
dos períodos das frequências de 15 e 20kHz não são iguais aos teóricos, devido aos valores
dos registradores.

Figura 35 – PWM medido no osciloscópio do simulador para 1kHz

Fonte: Autoria própria

Figura 36 – PWM medido no osciloscópio do simulador para 5kHz

Fonte: Autoria própria


Capítulo 6. ANÁLISE DOS RESULTADOS 45

Figura 37 – PWM medido no osciloscópio do simulador para 10kHz

Fonte: Autoria própria

Figura 38 – PWM medido no osciloscópio do simulador para 15kHz

Fonte: Autoria própria

Figura 39 – PWM medido no osciloscópio do simulador para 20kHz

Fonte: Autoria própria


Capítulo 6. ANÁLISE DOS RESULTADOS 46

Com a resolução de 10 bits, obtém-se pulsos com alta precisão, como exemplificado
por uma razão cíclica de 1% (1 𝜇s) a 10 kHz, conforme observado na figura 40.

Figura 40 – Pulso com precisão de 1%

Fonte: Autoria própria


Capítulo 6. ANÁLISE DOS RESULTADOS 47

6.3 Análise dos Resultados no Módulo Didático


Com o algoritmo simulado e seu funcionamento comprovado, o arquivo foi gra-
vado no microcontrolador por meio do software PICkit 2, com o auxílio de um gravador
específico para o PIC. Dessa forma, todas as ligações de alimentação das placas foram
realizadas, a topologia do conversor buck foi montada e o módulo foi testado. Observa-se
nas figuras 41, 42, 43, 44 e 45 as opções de frequências disponíveis para seleção, conforme
os resultados simulados anteriormente.

Figura 41 – Frequência de 1kHz no módulo

Fonte: Autoria própria

Figura 42 – Frequência de 5kHz no módulo

Fonte: Autoria própria

Figura 43 – Frequência de 10kHz no módulo

Fonte: Autoria própria


Capítulo 6. ANÁLISE DOS RESULTADOS 48

Figura 44 – Frequência de 15kHz no módulo

Fonte: Autoria própria

Figura 45 – Frequência de 20kHz no módulo

Fonte: Autoria própria

Nestas condições, os sinais PWM foram medidos com o osciloscópio. É possível


observar nas figuras 46, 47, 48, 49 e 50 os sinais medidos com um osciloscópio para cada
uma das frequências citadas e 50% de ciclo de trabalho. Todavia, na figura 51 é observado
o sinal com um pulso de 1% (1 𝜇s) a uma frequência de 10 kHz, conforme simulado.
Capítulo 6. ANÁLISE DOS RESULTADOS 49

Figura 46 – PWM de 1kHz e 50% de razão cíclica

Fonte: Autoria própria

Figura 47 – PWM de 5kHz e 50% de razão cíclica

Fonte: Autoria própria


Capítulo 6. ANÁLISE DOS RESULTADOS 50

Figura 48 – PWM de 10kHz e 50% de razão cíclica

Fonte: Autoria própria

Figura 49 – PWM de 15kHz e 50% de razão cíclica

Fonte: Autoria própria


Capítulo 6. ANÁLISE DOS RESULTADOS 51

Figura 50 – PWM de 20kHz e 50% de razão cíclica

Fonte: Autoria própria

Figura 51 – PWM de 10kHz com pulso de 1% de razão cíclica

Fonte: Autoria própria


Capítulo 6. ANÁLISE DOS RESULTADOS 52

A etapa seguinte, para ratificar a operacionalidade do sistema conversor foi proce-


der com a análise da tensão na carga. Essa tensão de saída do conversor foi medida para
cada frequência e considerando o ciclo de trabalho de 50%, conforme observado nas figuras
53, 54, 55, 56 e 57. Na figura 52 é possível observar o conversor assim que é energizado,
aguardando que o usuário pressione o botão "Enter"para selecionar a frequência desejada.
O multímetro à esquerda realiza a medição da tensão de entrada do conversor, enquanto
o multímetro à direita mede a tensão de saída.

Figura 52 – Aguardando pressionar o botão Enter

Fonte: Autoria própria

Após pressionar o botão "Enter", o sinal de comando é gerado (ver figuras 46 a


50), e é devidamente condicionado aos valores de 0 a 15V pelo circuito de interface, sendo
aplicado aos terminais de gatilho e fonte do MOSFET. Assim considerando, para cada
uma das frequência anteriormente citadas são verificadas as tensões de saída do conversor.
Na figura 53 é ilustrado o resultado para a frequência de chaveamento de 1kHz. Verifica-
se que no caso de 1kHz o valor da tensão medida não atende a relação de conversão
da equação (2.4), pois nessas condições o conversor opera no modo de condução crítica,
passando a valer a nova relação entre a tensão de entrada e saída do conversor, sendo:

2
𝑉0 = 𝑉𝑖 × √︁
1+ 1+ 4𝑘
𝐷2
.
onde 𝑘 = 2𝐿
𝑅×𝑇𝑠
.
Ao analisar as figuras 53 a 57, observa-se que, em condições de carga, a fonte
não mais tem a tensão de 34V devido à saturação do transformador de alimentação da
entrada.
Capítulo 6. ANÁLISE DOS RESULTADOS 53

Figura 53 – Tensão de saída para 1kHz

Fonte: Autoria própria

A operação entre 5 e 20kHz permite relação entre tensão de entrada e saída próximo
de 0,5, como pode ser visto nas figuras 54 a 57. A diferença fica basicamente na condição
de queda de tensão nas chaves semicondutoras, MOSFET e diodo, quando em estado de
condução. Conforme explanado, em carga, ocorre uma queda de tensão no valor da tensão
de entrada em relação ao medido na figura 52. No entanto, ao calcular a razão cíclica com
os valores medidos, por exemplo, a 10 kHz, da figura 55, utilizando a equação (2.4) tem-se,

16, 07
𝐷= = 0, 49.
32, 85

Assim, o resultado está bem próximo do valor teórico, que seria 50%. Continuando
as medições, obtém-se,

Figura 54 – Tensão de saída para 5kHz

Fonte: Autoria própria


Capítulo 6. ANÁLISE DOS RESULTADOS 54

Figura 55 – Tensão de saída para 10kHz

Fonte: Autoria própria

Figura 56 – Tensão de saída para 15kHz

Fonte: Autoria própria

Figura 57 – Tensão de saída para 20kHz

Fonte: Autoria própria


Capítulo 6. ANÁLISE DOS RESULTADOS 55

Por fim, utilizando uma ponta de prova para medir corrente, verificou-se a forma
de onda da corrente no indutor a 1 kHz. Para esta frequência é possível se proceder com a
análise do funcionamento do conversor, o modo de condução crítica (figura 58) e o modo
de condução descontínua (figura 59). Além disso, a corrente também foi medida para a
frequência de 10 kHz para observar o modo de condução contínua (Figura 60).

Figura 58 – Forma de onda da corrente no indutor para o modo de condução crítica

Fonte: Autoria própria


Capítulo 6. ANÁLISE DOS RESULTADOS 56

Figura 59 – Forma de onda da corrente no indutor para o modo de condução descontínua

Fonte: Autoria própria

Figura 60 – Forma de onda da corrente no indutor para o modo de condução contínua

Fonte: Autoria própria


Capítulo 6. ANÁLISE DOS RESULTADOS 57

Observa-se que as formas de onda da corrente elétrica no indutor mensuradas no


módulo assemelham-se às encontradas na simulação, para cada modo de condução do
conversor.
58

7 TRABALHOS FUTUROS

Para trabalhos futuros, serão propostos os seguintes pontos:

• ajuste no código para gerar uma PWM com razão cíclica de 40% a 75% para con-
trolar um conversor boost. Essa limitação do ciclo de trabalho ocorre porque, se
for um valor superior aos mencionados, será necessário um transformador com alta
capacidade de corrente, uma vez que a corrente de entrada do conversor será elevada;

• realização da montagem de um segundo módulo didático, considerando que a placa


de potência e todo o circuito de comando já estão prontos;

• adição do valor da frequência de operação no display na tela de ajuste do ciclo de


trabalho;
59

8 CONCLUSÃO

O presente trabalho de conclusão de curso teve como objetivo o desenvolvimento


de um circuito de comando microcontrolado destinado ao acionamento de chaves em
um módulo didático de um conversor abaixador. O microcontrolador foi programado em
linguagem C, proporcionando a criação de uma Interface Homem-Máquina. Essa interface
permite que o usuário, ao utilizar o módulo, possa selecionar a frequência de chaveamento
e ter controle sobre a razão cíclica do sinal PWM.
Simulações foram realizadas tanto para o conversor buck quanto para o código, a
fim de obter uma base de resultados para posterior comparação com os valores práticos.
Em seguida, procedeu-se à montagem do módulo, incorporando o circuito de comando
desenvolvido ao módulo de potência do conversor. Por fim, foram analisados os modos de
condução do conversor buck.
Os resultados práticos foram comparados com os teóricos, revelando uma seme-
lhança, o que confirma o funcionamento do circuito projetado. Este módulo didático, por
sua vez, visa auxiliar os estudantes matriculados na disciplina de Laboratório de Ele-
trônica de Potência a validar seus resultados teóricos e simulados. A disponibilização do
módulo permite se ter mais uma ferramenta de auxílio a análise de circuitos conversores
CC-CC de modo que possa fomentar maior interesse na área, e na disciplina, além de
proporcionar um aprofundamento no conhecimento dos alunos.
60

Referências

DeepBlueEmbedded. PWM (Pulse Width Modulation). 2023. Disponível em:


<https://deepbluembedded.com/pwm-pulse-width-modulation-tutorial/>. Acesso em:
8 de Agosto 2023. Citado na página 29.

HART, D. W. Eletrônica de potência: análise e projetos de circuitos. [S.l.]: McGraw Hill


Brasil, 2016. Citado na página 13.

Microchip. PIC16F877A Product Page. 2023. Disponível em: <https://www.microchip.


com/enus/product/pic16f877a>. Acesso em: 8 de Agosto 2023. Citado na página 19.
Apêndices
62

APÊNDICE A – Guia de Utilização do


módulo

O circuito do conversor buck da figura 61 deve ser montado no módulo (figura 62),
utilizando os cabos e estabelecendo as conexões dos componentes por meio dos bornes de
ligação.

Figura 61 – Conversor buck

Fonte: Autoria própria

Figura 62 – Módulo de potência do conversor buck

Fonte: Autoria própria

Uma vez que o conversor estiver montado, os seguintes passos devem ser realizados
para colocar o módulo em funcionamento e medir as grandezas conforme especificado na
tabela 3.

• o módulo deve ser energizado, ativando o botão na lateral do módulo;

• a primeira mensagem exibida será "LEP", abreviação utilizada no Laboratório de


Eletrônica de Potência;

• em seguida, aparecerá a mensagem: "Conversor CC-CC, Press Enter". O usuário


deve pressionar o botão "Enter"na placa da figura 63;
APÊNDICE A. Guia de Utilização do módulo 63

• na etapa seguinte, é necessário selecionar a frequência desejada entre as opções dis-


poníveis: 1, 5, 10, 15 e 20 kHz, utilizando os botões D/F+ e D/F- para incrementar
e decrementar esses valores;

• após a seleção, o usuário deve segurar o botão "Enter"até que o LED vermelho
pisque, em seguida, deve soltar o botão "Enter";

• em seguida, deve-se selecionar o valor da razão cíclica "D"utilizando os botões D/F+


e D/F- para incrementar e decrementar, respectivamente;

• se houver necessidade de alterar a frequência, basta pressionar "Enter"para retornar


à tela de seleção de frequência;

• com o osciloscópio deve-se medir o sinal da PWM por meio dos pinos da IHM, que
são PWM Out e Ref;

Figura 63 – Placa IHM

Fonte: Autoria própria

Agora, é necessário preencher a tabela 2 conforme as instruções. Meça com um


multímetro a tensão de entrada 𝑉𝑖𝑛 e saída do conversor 𝑉𝑜 para cada frequência, mantendo
uma razão cíclica de 50%.

Tabela 3 – Valores de tensão de entrada e saída do conversor para as frequências de cha-


veamento.
Frequência 1kHz 5kHz 10kHz 15kHz 20kHz
Vin
Vout

Fonte: Autoria própria.

De acordo com a relação entre a tensão de entrada e saída do conversor buck, os


resultados da tabela 3 estão conforme o esperado?
64

APÊNDICE B – Código em linguagem C


desenvolvido para gerar o sinal PWM

#define butt1 RB1_bit


#define butt2 RB2_bit
#define ENTER RB4_bit
#define led RD0_bit
#define led2 RD3_bit

unsigned short opcaof = 0x01, flagLCD = 0x00, flagbutt = 0x00, flagbutt2=0x00 ;


unsigned char dut[7] , frq[7];
unsigned cont=0x00, i=0x00 , control=0x00, cont2=0x00;
unsigned int PWM_Duty=50;
unsigned int reg=0x00;
unsigned int registrador=0x00;
unsigned short flagf=0x00;
void leiturabutt();
void freq();
void dutyc();
void limpLCD();
void PWM_on();
void PWM_off();

// LCD module connections


sbit LCD_RS at RD1_bit;
sbit LCD_EN at RD2_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;
sbit LCD_RS_Direction at TRISD1_bit;
sbit LCD_EN_Direction at TRISD2_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;
APÊNDICE B. Código em linguagem C desenvolvido para gerar o sinal PWM 65

void interrupt(){

if(TMR0IF_bit){

TMR0IF_bit = 0x00;
TMR0 = 0x00;
control++;

if(control==5){
control= 0x00;
led2 = ~ led2;
}
if(flagbutt.B0) cont++;

if(cont==16 && flagbutt.B6){


cont=0x00;
flagbutt.B5 = 0x01 ;

for(i=0;i<5;i++){

led = ~ led ;
delay_ms(50);
}
led=0x00;

if(!butt1) flagbutt.B1 = 0x01;


if(!butt2) flagbutt.B2 = 0x01;

if(butt1 && flagbutt.B1){

flagbutt.B1 = 0x00;
if(flagf.B1 && opcaof==1){

opcaof+=4;
}
APÊNDICE B. Código em linguagem C desenvolvido para gerar o sinal PWM 66

else{

if(flagf.B1) opcaof+=5;
if(opcaof>20) opcaof=20;

if(butt2 && flagbutt.B2){


flagbutt.B2 = 0x00;
if(flagf.B1 && opcaof==5){

opcaof-=4;

}
else{

if(flagf.B1 && opcaof>1) opcaof-=5;

if(flagbutt2.B1 || flagbutt2.B2) cont2++;

if(cont2==8){ // conta 0.52 s


cont2=0x00;

if(!butt1 && flagbutt.B4){

if(PWM_Duty<99){
PWM_Duty++;
}
APÊNDICE B. Código em linguagem C desenvolvido para gerar o sinal PWM 67

if(!butt2 && flagbutt.B4){

if(PWM_Duty>0){
PWM_Duty--;
}
}

}
void main() {

flagLCD=0x00; // flag de limpeza do LCD


CMCON = 0x07; // desabilita os comparadores

TRISB = 0xFF; // Pinos B como input


PORTB = 0x16; // Pino B1,B2 e B4 em high

TRISC = 0xFB; // pino RC2 como output para PWM FB


PORTC = 0x00; // pino C em low

TRISD = 0x00; // pino D como output


PORTD = 0x00; // pino D em low

GIE_bit=0x01; // Habilita interrupçao geral


PEIE_bit=0x01; // Habilita interrupçao por perifericos
OPTION_REG=0x87; // timer0 com prescaler 1:256 Resistor de pull-up off
TMR0IE_bit=0x01; // Timer0 on
TMR0 = 0x00;
APÊNDICE B. Código em linguagem C desenvolvido para gerar o sinal PWM 68

CCPR1L=0x00;
CCP1Y_bit = 0;
CCP1X_bit= 0;

T2CON = 0x05 ; // habilita timer2 com prescaler 1:4


PR2 = 250; // Frquencia inicial em 1kHZ

TRISA = 0xFF; //PortA como input

Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);

Lcd_Chr(1,7,’L’);
Lcd_Chr_Cp (’E’);
Lcd_Chr_Cp (’P’);

delay_ms(1000);

Lcd_Cmd(_LCD_CLEAR);
Lcd_Chr_Cp(’ ’);
Lcd_Chr(1,1,’C’);
Lcd_Chr_Cp(’o’);
Lcd_Chr_Cp(’n’);
Lcd_Chr_Cp(’v’);
Lcd_Chr_Cp(’e’);
Lcd_Chr_Cp(’r’);
Lcd_Chr_Cp(’s’);
Lcd_Chr_Cp(’o’);
Lcd_Chr_Cp(’r’);
Lcd_Chr_Cp(’ ’);
Lcd_Chr_Cp(’C’);
Lcd_Chr_Cp(’C’);
Lcd_Chr_Cp(’-’);
Lcd_Chr_Cp(’C’);
Lcd_Chr_Cp(’C’);
Lcd_Chr_Cp(’ ’);
APÊNDICE B. Código em linguagem C desenvolvido para gerar o sinal PWM 69

Lcd_Chr(2,3,’P’);
Lcd_Chr_Cp(’r’);
Lcd_Chr_Cp(’e’);
Lcd_Chr_Cp(’s’);
Lcd_Chr_Cp(’s’);
Lcd_Chr_Cp(’ ’);
Lcd_Chr_Cp(’E’);
Lcd_Chr_Cp(’n’);
Lcd_Chr_Cp(’t’);
Lcd_Chr_Cp(’e’);
Lcd_Chr_Cp(’r’);

while(1){
leiturabutt();
}

}
void leiturabutt(){

if(!ENTER){
flagbutt.B0 = 0x01;
flagLCD.B1 = 0x01;

}
if(ENTER && flagbutt.B0){
cont = 0x00;
flagbutt.B0 = 0x00;

if(!flagbutt.B5){
freq();
}
else {
dutyc();
}
}
}
APÊNDICE B. Código em linguagem C desenvolvido para gerar o sinal PWM 70

void freq(){

PWM_off(); // Pwm desligado

flagbutt.B4 = 0x00;

for(i=0;i<5;i++){
if(cont==16){

led = ~ led ;
delay_ms(50);

}
led=0x00;
flagf.B1=0x01;

limpLCD(); // limpa o LCD 9


Lcd_Out(1,1,"F(kHz):");
Lcd_Out(2,1,"Segure Enter");

while(!flagbutt.B5){

IntToStr(opcaof,frq);
Lcd_Out(1,8,frq);

switch(opcaof){

case 1 :
PR2 = 249;
reg = 500;
break;

case 5 :
PR2 = 49;
reg = 100;
APÊNDICE B. Código em linguagem C desenvolvido para gerar o sinal PWM 71

break;

case 10 :
PR2 = 24;
reg = 50;
break;

case 15 :
PR2 = 15;
reg = 32;
break;

case 20 :
PR2 = 11;
reg = 24;
break;

if(!ENTER){

flagbutt.B6 =0x01;
break;
}

}
}

void dutyc(){

flagbutt.B4 = 0x01;
flagf.B1=0x00;

flagLCD.B2=0x01;
limpLCD();
Lcd_Out(1,1,"D(%):");
Lcd_Out(2,1,"Enter: Voltar");
APÊNDICE B. Código em linguagem C desenvolvido para gerar o sinal PWM 72

flagbutt.B1 = 0x00;
flagbutt.B2 = 0x00;

while(flagbutt.B5){

registrador = ((PWM_Duty * reg)/50);

if((registrador < 1023)){

CCPR1L = registrador >>2 ;


CCP1Y_bit = (registrador) & 0x0001;
CCP1X_bit = (registrador & 0x0002) >> 1;

PWM_on();
IntToStr(PWM_Duty,dut);
Lcd_Out(1,6,dut);

if(!ENTER) {

flagbutt=0x00;
opcaof=0x01;
break;

}
if(!butt1) flagbutt2.B1=0x01;
if(!butt2) flagbutt2.B2=0x01;

if(butt1 && flagbutt2.B1){

cont2=0x00; // evitar deboucing


flagbutt2.B1=0x00;
APÊNDICE B. Código em linguagem C desenvolvido para gerar o sinal PWM 73

if(cont2==0){
if(PWM_Duty<99) PWM_Duty++;

}
if(butt2 && flagbutt2.B2){
cont2=0x00; // evitar deboucing
flagbutt2.B2=0x00;

if(cont2==0){
if(PWM_Duty>0) PWM_Duty--;

}
}

}
void limpLCD(){ // Limpeza do LCD

if(flagLCD.B2 || flagLCD.B1){
Lcd_Cmd(_LCD_CLEAR);
flagLCD.B2 = 0x00;
flagLCD.B1 = 0x00;
}
}
void PWM_off(){
CCP1M3_bit = 0x00;
CCP1M2_bit = 0x00;
}
void PWM_on(){
CCP1M3_bit = 0x01;
CCP1M2_bit = 0x01;
}

Você também pode gostar