Eletrônica Silveira
Olá, Seja Bem-Vindo ao Fórum Eletrônica Silveira!!!!
Para você poder ver os mais variados Projetos do nosso Fórum, você precisa fazer o cadastro!

Depois de se Cadastrar, não se esqueça de ler as regras do fórum!

https://eletronicasilveira.forumeiros.com/t3-regras-do-forum#3


Administrador do Fórum,
Rafael Silveira

Participe do fórum, é rápido e fácil

Eletrônica Silveira
Olá, Seja Bem-Vindo ao Fórum Eletrônica Silveira!!!!
Para você poder ver os mais variados Projetos do nosso Fórum, você precisa fazer o cadastro!

Depois de se Cadastrar, não se esqueça de ler as regras do fórum!

https://eletronicasilveira.forumeiros.com/t3-regras-do-forum#3


Administrador do Fórum,
Rafael Silveira
Eletrônica Silveira
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
HOMENAGEM

Na vida tudo passa tudo acontece mas alguém igual a você a gente jamais esquece

Estudos PWM em microcontroladores - Parte I 1-74


★ 22 de novembro de 1991

† 12 de março de 2016

Nosso eterno amigo, administrador e fundador deste fórum
Quem está conectado?
219 usuários online :: 0 registrados, 0 invisíveis e 219 visitantes :: 3 motores de busca

Nenhum

O recorde de usuários online foi de 362 em Sex 9 Abr 2021 - 22:11
Últimos assuntos
» Fonte Chaveada 2000W SG3525 & IR2110
Estudos PWM em microcontroladores - Parte I EmptyQua 27 Mar 2024 - 20:57 por sandy silva de oliveira

» >>>>>>> Sobre a criação de novos tópicos<<<<<<<<<<<<<<<
Estudos PWM em microcontroladores - Parte I EmptyDom 24 Mar 2024 - 16:10 por crisnich

» Defeito intermitente amplificador Ciclotron TIP5000
Estudos PWM em microcontroladores - Parte I EmptyQua 20 Mar 2024 - 9:13 por fastaveira

» Esquema Amplificador Audio Leader AL 5.0
Estudos PWM em microcontroladores - Parte I EmptyQua 20 Mar 2024 - 9:01 por fastaveira

» MK4000 - FONTE CHAVEADA FULL BRIDGE
Estudos PWM em microcontroladores - Parte I EmptyDom 17 Mar 2024 - 18:43 por sandy silva de oliveira

» amplificador class h tailandes
Estudos PWM em microcontroladores - Parte I EmptySex 15 Mar 2024 - 22:41 por mehuysal

» Amplificador Super Strong
Estudos PWM em microcontroladores - Parte I EmptyQui 14 Mar 2024 - 13:03 por Reginaldo Silva

» Amplificador Classe D UCD1500
Estudos PWM em microcontroladores - Parte I EmptyQua 13 Mar 2024 - 13:07 por Guille

»  NS450 - FONTE CHAVEADA PARTE 2
Estudos PWM em microcontroladores - Parte I EmptySeg 11 Mar 2024 - 6:55 por ffernand3s

» DETECTOR DE METAIS IDX-PRO
Estudos PWM em microcontroladores - Parte I EmptySex 1 Mar 2024 - 16:41 por Benyamin

» Amplificador Fonte Simples em teia de aranha
Estudos PWM em microcontroladores - Parte I EmptySex 1 Mar 2024 - 12:17 por Reginaldo Silva

» Manutenção Gradiente 366 / 266
Estudos PWM em microcontroladores - Parte I EmptyQui 29 Fev 2024 - 21:40 por tiaogaviao

» Criação pcb esquema phono cápsula ceramica
Estudos PWM em microcontroladores - Parte I EmptyQui 29 Fev 2024 - 16:58 por warley cesar

» DETECTOR DE METAIS MKII (PINPOINTER)
Estudos PWM em microcontroladores - Parte I EmptyQua 28 Fev 2024 - 19:09 por Benyamin

» Fonte chaveada compacta IR2153D - 10 x 10 cm
Estudos PWM em microcontroladores - Parte I EmptyTer 27 Fev 2024 - 22:02 por microbit

Top dos mais postadores
Rafael Silveira (7816)
Estudos PWM em microcontroladores - Parte I I_vote_lcapEstudos PWM em microcontroladores - Parte I I_voting_barEstudos PWM em microcontroladores - Parte I I_vote_rcap 
Caca Silva (6057)
Estudos PWM em microcontroladores - Parte I I_vote_lcapEstudos PWM em microcontroladores - Parte I I_voting_barEstudos PWM em microcontroladores - Parte I I_vote_rcap 
renatoscp (3891)
Estudos PWM em microcontroladores - Parte I I_vote_lcapEstudos PWM em microcontroladores - Parte I I_voting_barEstudos PWM em microcontroladores - Parte I I_vote_rcap 
CMeletronica (3234)
Estudos PWM em microcontroladores - Parte I I_vote_lcapEstudos PWM em microcontroladores - Parte I I_voting_barEstudos PWM em microcontroladores - Parte I I_vote_rcap 
michel chagas (2791)
Estudos PWM em microcontroladores - Parte I I_vote_lcapEstudos PWM em microcontroladores - Parte I I_voting_barEstudos PWM em microcontroladores - Parte I I_vote_rcap 
Railson (2119)
Estudos PWM em microcontroladores - Parte I I_vote_lcapEstudos PWM em microcontroladores - Parte I I_voting_barEstudos PWM em microcontroladores - Parte I I_vote_rcap 
alexsandro rodrigues de a (1835)
Estudos PWM em microcontroladores - Parte I I_vote_lcapEstudos PWM em microcontroladores - Parte I I_voting_barEstudos PWM em microcontroladores - Parte I I_vote_rcap 
naldo santos (1625)
Estudos PWM em microcontroladores - Parte I I_vote_lcapEstudos PWM em microcontroladores - Parte I I_voting_barEstudos PWM em microcontroladores - Parte I I_vote_rcap 
ablacon64 (1222)
Estudos PWM em microcontroladores - Parte I I_vote_lcapEstudos PWM em microcontroladores - Parte I I_voting_barEstudos PWM em microcontroladores - Parte I I_vote_rcap 
gilvantexas (1061)
Estudos PWM em microcontroladores - Parte I I_vote_lcapEstudos PWM em microcontroladores - Parte I I_voting_barEstudos PWM em microcontroladores - Parte I I_vote_rcap 

Medidor de Velocidade


Estudos PWM em microcontroladores - Parte I

Ir para baixo

Tutorial Estudos PWM em microcontroladores - Parte I

Mensagem por Anderson M Seg 14 Abr 2014 - 0:45

Início do estudo sobre PWM (Pulse Width Modulation) com teoria é prática:

Assunto referente ao tópico anterior:

https://eletronicasilveira.forumeiros.com/t5322-sumario-dos-estudos-pwm-em-microcontroladores

Agora serão estudados os princípios do hardware e software do exercício nº 1.

Hardware:

Vamos começar pelo MCU:

O microcontrolador adotado para esta série de exercícios é o PIC 18F452 da Microchip, este modelo em questão é bem versátil nas aplicações, e será detalhado nas próximas linhas.

Algumas características do PIC 18F452:

Um microcontrolador com 40 pinos.
Conversor A/D de 10 bits.
Memória Flash de 32 KB.
Memória RAM de 1.536 KB.
Memória EEPROM 256 KB.

Memória Flash pode ser apagada e escrita por 100.000 vezes.
Memória EEPROM pode ser apagada e escrita por 1.000.000 vezes.  
Retenção das informações de dados na memória Flash e EEPROM por 40 anos.

Opera em 10 MPIs.
Com um cristal de 10 Mhz ele pode operar em 40 Mhz no modo HS Oscillator.

Contém dois módulos CCP.      
Saída do módulo PWM:  
Máxima frequência do PWM na resolução 8 bits = 156 Khz
Máxima frequência do PWM na resolução 10 bits = 39 Khz
Tensão máxima de trabalho: 5.5V
Corrente máxima fornecida nas saídas dos PORTs: 0.025A
Encapsulamento disponíveis: PLCC, TQFP e DIP

Para maiores informações consultar o datasheet:

http://ww1.microchip.com/downloads/en/DeviceDoc/39564b.pdf

_______________________________________________________________________

Vamos adotar o modelo com encapsulamento tipo DIP como na figura abaixo:

Estudos PWM em microcontroladores - Parte I PIC18F452_PINS

Descrição dos pinos principais para este exercício e outros da série PWM:

Pino 1 -> MCLR/Vpp  - Este pino vai alimentação de 5V estabilizado através de um resistor de 10K.
Pino 2 -> RA0/AN0    - Este pino é conectado o terminal central do trimpot RV1.

Pinos 11 e 32  - Alimentação 5V estabilizado.  
Pinos 12 e 31  - GND  

Pino 13 -> OSC1/CLKI    - Pino de entrada do cristal oscilador.
Pino 14 -> OSC2/CLKO   - Pino de saída do cristal oscilador.

Pino 17 -> RC2/CCP1               - Módulo PWM 1
Pino 16 -> RC1/T1OSI/CCP2A   - Módulo PWM 2

______________________________________________________________________

Esquemático do circuito para ser montado na (Protoboard):

Estudos PWM em microcontroladores - Parte I CONTROL_PWM_I_SCHEMATIC.bmp?async&rand=0

Detalhe importante: É recomendado utilizar na experiência os componentes como estão na descrição do esquemático. O transístor Q1 em questão poderá ser substituído por outro, tudo vai depender do consumo de corrente do motor DC empregado na experiência.

NOTA: Para análise do circuito é necessário o uso de um frequencímetro para verificação da frequência e um osciloscópio para análise da variação do (Duty Cycle) ao se realizar os ajustes no trimpot RV1.

Com este circuito temos como objetivo observar o funcionamento do módulo CCP1 habilitado com uma frequência fixa de 30 Khz, esta frequência poderá ser modificada via programação conforme às suas necessidades em seus projetos. Vamos apenas variar o (Duty Cycle), ou (ciclo de trabalho) onde podemos controlar o RPM do motor DC.    

A única modificação que será feita pelo circuito é variação do (Duty Cycle), ou seja, o ciclo de trabalho através do trimpot RV1 conectado ao pino 2 (RA0/AN0). Conforme o valor for lido no (ADC) haverá mudança do (Duty Cycle) no sinal PWM, mas mantendo o valor de frequência constante.

O pino 2 (RA0/AN0) do MCU irá recolher o valor analógico entre 0V e 5V através do RV1 que recolhe esta amostra de tensão no formato analógico, logo em seguida no MCU vai ocorrer o processo de conversão em valores no formato digital. No algorítimo será implementado para efetuar o controle preciso, isto é, usará um fator de conversão na escala entre 0 e 255 para variar o (Duty Cycle) ciclo de trabalho entre 0% e 100%.

Veja na imagem abaixo à nossa proposta:  

Estudos PWM em microcontroladores - Parte I DUTY_CYCLE

O controle de velocidade é baseada no Pulse Width Modulation (PWM), o que significa que o RPM do motor é regulada por variação do ciclo de trabalho.

EX:

Com o ciclo de trabalho em 50%   - O motor DC fica com 50% de potência.
Com o ciclo de trabalho em 75%   - O motor DC fica com 75% de potência.
Com o ciclo de trabalho em 100% - O motor DC fica com 100% de potência, isto é, com sua aceleração máxima.

Veja no gráfico abaixo:

Estudos PWM em microcontroladores - Parte I DUTY_CYCLE_II

Aqui neste projeto estamos usando um motor 12 DCV. O valor de tensão DC média entregue ao motor DC pode ser variada, pela variação do Duty Cycle.

EX:

A tensão DC média em 0V ciclo de trabalho é 0%.
A tensão DC média em 3V ciclo de trabalho é 25%.
A tensão DC média em 6V ciclo de trabalho é 50%.
A tensão DC média em 9V ciclo de trabalho é 75%.
A tensão DC média em 12V ciclo de trabalho é 100%.

O interessante de utilizar esta técnica no controle do motor DC, onde podemos modificar o valor de rotação do motor, sem que haja perda do torque do motor em velocidades mínima.  

_______________________________________________________________________

Software:

Agora será feito comentários particulares relacionado com comandos de habilitação do módulo CCP1 e também do algorítimo implementado do exercício nº 1.

Comandos utilizados na habilitação e configuração do módulo CCP1 na geração do sinal PWM são:

Função: PWM1_Init (Frequência em Hz);

Esta função inicializa o módulo PWM com relação o valor de freqüência fixa, esta frequência desejada é declarada em Hz. Deve ser uma constante numérica, não deve ser uma variável.

EX:

PWM1_Init (5000);       // Inicializa o módulo CCP1 com frequência fixa de 5 Khz.
PWM1_Init (10000);    // Inicializa o módulo CCP1 com frequência fixa de 10 Khz.
PWM1_Init (15000);   // Inicializa o módulo CCP1 com frequência fixa de 15 Khz.
PWM1_Init (30000);  // Inicializa o módulo CCP1 com frequência fixa de 30 Khz.

Função: PWM1_Start ();

Esta função é iniciada na saída do módulo CCP1. A função PWM1_Init (); deve ser chamada antes de chamar esta segunda rotina PWM1_Start();    

EX:

PWM1_Init (30000); // Inicializa o módulo CCP1 com frequência fixa de 30 Khz.
PWM1_Start();      // Inícializa a geração do sinal PWM no módulo CCP1.

_______________________________________________________________________

Código fonte do exercício nº 1:

O algorítimo está com comentários para uma melhor compreensão.  

Selecione, copie e cole o código fonte do exercício nº 1 que está na caixa abaixo:

Código:
/*
 * Projeto: PWM CONTROL I
 * MikroC v6.0.0
 * Copyright (c) Anderson M, 08/04/2014.
 * Fórum: Eletrônica Silveira
 * MCU: PIC 18F452
 * Cristal Oscilador Externo: 10.0 Mhz
 * Oscilador XT
 * Bibliotecas adicionadas: (ADC) & (PWM)
*/
// *****************************************************************************

int y = 0; // Declaração de variável global

void main(){

   ADCON1 = 0b00001001;  // Configura e define os pinos PORT(A) como (A/D)
   TRISA = 255;         // Define os pinos PORTa como entrada

// ************ Ajuste de frequência e inicialização do módulo CCP1 ************
   Pwm1_Init(30000);      // Inicializa o módulo PWM com frequência 30 KHz
   Pwm1_Start();         // Inícializa a geração do sinal PWM no módulo CCP1
// *****************************************************************************

while(1){ //LOOP infinito...
// *************** Leitura e ajuste (DUTY CYCLE) do módulo CCP1 ****************
  y = Adc_Read(0);     // Lê o valor do canal (AD0) e salva na variável (y)
  y = (y * 0.24);     // Converte o valor em (DUTY CYCLE)
  Pwm1_Set_Duty(y);  // Envia o valor lido da variável (y) para o módulo CCP1 PWM - Pino 17 RC2
  Delay_us(10);     // Aguarda 10 microsegundos para próxima leitura
  }
// *****************************************************************************
}

_______________________________________________________________________


Utilizando o compilador MikroC PRO para compilação do código fonte:

Após o software MikroC PRO ser instalado em sua máquina.

Dê um duplo clique no ícone (MikroC PRO for PIC), aguarde o programa ser carregado como na imagem abaixo:

Estudos PWM em microcontroladores - Parte I Interface_I.bmp?async&rand=0

Clique em (New Project) como mostrado na imagem seguinte.

Estudos PWM em microcontroladores - Parte I Interface_II.bmp?async&rand=0

Após isso aparecerá uma caixa para configurações prévias como mostrada na imagem abaixo.

Estudos PWM em microcontroladores - Parte I Interface_III

Clique em (Next) para continuar...

Próximo passo é apresentado e mostrado na imagem seguinte.

Estudos PWM em microcontroladores - Parte I Interface_IV

Aqui devemos configurar os seguintes campos:

Project Name -  Dê um nome ao seu projeto.

Project Folder - Escolha uma pasta específica para o projeto ser salvo, isso é feito clicando no botão (Browse).

Device Name  - Escolha o nome do dispositivo PIC do projeto, isso será realizado selecionando o modelo na caixa, no nosso caso escolha (P18F452).

Device Clock  - Aqui escolhemos o valor da frequência do cristal oscilador em Hz, no nosso projeto vamos utilizar um clock de (10000000) que corresponde um cristal de 10 Mhz.    

Abaixo é mostrado uma imagem da configuração que deve ser feita corretamente.

Estudos PWM em microcontroladores - Parte I Interface_IV

Configurado os parâmetros como estão na imagem, clique em (Next) para continuar.

Estudos PWM em microcontroladores - Parte I Interface_V

Clique em (Next) para continuar.

Em seguida será apresentada outra caixa de configuração e ativação das biblioteca. Isso é mostrado na imagem abaixo.

Estudos PWM em microcontroladores - Parte I Interface_VI

Nesta caixa selecione o check box (Include None Advanced) e para finalizar clique (Next).

NOTA: Escolhemos esta configuração (Include None Advanced) para assim ser adicionadas da forma manual futuramente. Caso seja selecionado (Include All Default), será adicionado todas às nossas bibliotecas do compilador MikroC PRO. Isso seria um erro, pois não seria necessária muitas bibliotecas para o nosso projeto. Portanto, isso acabaria deixando o nosso código pesado.

Finalmente à nossa última configuração para assim começar:

Aqui devemos marcar o check box (Open Edit Project Window To Set Configuration Bits)

Como mostrado na imagem abaixo:

Estudos PWM em microcontroladores - Parte I Interface_VII

Após isso devemos clicar em (Finish) para à nossa próxima etapa que é mostrada na imagem abaixo.

Estudos PWM em microcontroladores - Parte I Interface_VIII

Nesta etapa vamos configurar os FUSES, os únicos parâmetros que serão modificados são: (Oscillator Selection), como (XT Oscillator) e também (Oscillator System Clock Switch) como (Enabled) como estão selecionados na imagem acima.

NOTA: Os outros parâmetros vamos deixar como estão, sem necessidade de alterações para os projetos proposto nos tópicos.

Finalmente clique em OK para abrir o nosso ambiente de trabalho mostrado na imagem seguinte, e assim começar à nossa brincadeira de programação do exercício nº 1.

Estudos PWM em microcontroladores - Parte I Interface_IX.bmp?async&rand=0

Selecione e apague o conteúdo como mostrado na imagem seguinte:

Estudos PWM em microcontroladores - Parte I Interface_X.bmp?async&rand=0

Agora copie e cole o código fonte fornecido no ambiente de trabalho MikroC PRO como mostrado na imagem abaixo.

Estudos PWM em microcontroladores - Parte I Interface_XI.bmp?async&rand=0

Agora chegou o momento da compilação do código fonte.

Clique no ícone (Build) na parte superior, ou use teclas de atalho (CTRL+F9) como está mostrado na imagem abaixo.  

Estudos PWM em microcontroladores - Parte I Interface_XII.bmp?async&rand=0

Opa!!! Ocorreu um erro terrível na compilação do código fonte, Por quê??? Calma pessoal, simplismente eu fiz este erro de maneira proposital para detalhar o que acontece se não for adicionado as bibliotecas necessárias para o trabalho proposto.

O erro ocorrido foi por causa que faltou adicionar às nossas bibliotecas (ADC) e (PWM) como estão detalhada no cabeçalho do nosso código fonte. Agora vamos adicioná-las e compilar o código novamente para observar o que acontece agora.

Adicionando bibliotecas no compilador MikroC:

Para adicionar devemos clicar na opção (Library Manager) que fica localizada na parte inferior à direita como está indicado na imagem abaixo.

Estudos PWM em microcontroladores - Parte I Interface_XIII.bmp?async&rand=0

NOTA: Não estão selecionados às nossas bibliotecas (ADC) e (PWM) como mostrado na imagem acima.

Para adicionar, marcamos o check box (ADC) e (PWM) como mostrado na imagem abaixo.  
 
Estudos PWM em microcontroladores - Parte I Interface_XIV.bmp?async&rand=0

Agora vamos compilar o código fonte novamente clicando em (Build) ou usando teclas de atalho (CTRL+F9) para observar o que acontece.

Nosso código foi compilado com sucesso, sem erros como mostrado nesta última imagem.

Estudos PWM em microcontroladores - Parte I Interface_XV.bmp?async&rand=0

Após os procedimentos descritos, agora temos um arquivo HEX para posteriormente ser programado em nosso PIC 18F452 através do uso de um software e um gravador de PIC.    

______________________________________________________________________

Software PICpgm para programação de microcontroladores da família PIC:

http://picpgm.picprojects.net/download.html  

Lista de microcontroladores suportado pelo PICpgm:

http://picpgm.picprojects.net/devices.html

Guia rápido de utilização do PICpgm:

http://picpgm.picprojects.net/quickstartguide.html


Para dúvidas do exercício estou à disposição....  

Finalizando: Não venham com esta pergunta. Anderson M, como converter este código fonte para o compilador CCS?. Portanto, quem perguntar aqui no tópico vai ficar sem resposta, pois até porque eu não saberia responder, por não trabalhar com este compilador CCS. Quanto dúvidas do projeto ou problemas ocorridos no exercício, estarei à disposição, e assim deixando às suas dúvidas esclarecidas.

Até o exercício nº 2...

Boa sorte a todos Positivo 

Sds Anderson M
Anderson M
Anderson M
Avançado
Avançado

Mensagens : 401
Data de inscrição : 07/07/2011
Localização : São Paulo/SP

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos