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!

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


Administrador do Fórum,
Rafael Silveira
HOMENAGEM

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




★ 22 de novembro de 1991

† 12 de março de 2016

Nosso eterno amigo, administrador e fundador deste fórum
Quem está conectado
55 usuários online :: 16 usuários cadastrados, Nenhum Invisível e 39 Visitantes :: 2 Motores de busca

Ademir, alexsandro rodrigues de a, ARIELSONxD, caboaugusto, chaves_paulo, dionatanquadros, EdyGuitar, euripedes t matos, evilasiomarlene, jocelino, maxerox281169, Nisito BH-MG, Paulo Vieira, phissico, Self-design, wandows

[ Ver toda a lista ]


O recorde de usuários online foi de 264 em Seg 18 Mar 2013 - 11:54
Últimos assuntos
Eletrônica Perez
CM Eletrônica
Top dos mais postadores
Rafael Silveira (7816)
 
Caca Silva (5939)
 
renatoscp (3821)
 
CMeletronica (3102)
 
michel chagas (2791)
 
Railson (2118)
 
alexsandro rodrigues de a (1772)
 
naldo santos (1599)
 
ablacon64 (1220)
 
gilvantexas (1061)
 

Medidor de Velocidade

Publicidade

Estudos PWM em microcontroladores - Parte III

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Tutorial Estudos PWM em microcontroladores - Parte III

Mensagem por Anderson M em Sex 25 Jul 2014 - 13:00

Estudos PWM em microcontroladores - Parte III:

Configurações dos módulos CCP1 e CCP2 com Duty Cycle estático determinado pelo usuário.

Continuação do tópico anterior...

http://eletronicasilveira.forumeiros.com/t5357-estudos-pwm-em-microcontroladores-parte-ii

Neste exercício vamos configurar o Duty Cycle de maneira estática desejada e
definida na programação, isso é, o valor do Duty Cycle poderá ser fixado diretamente no programa nos valores entre 0% e 100%, sem uso de (trimpots) de ajustes conectados nos canais ADC do MCU do exercício anterior.

Esquemático:



NOTE: Este esquema seria o mesmo do exercício anterior, apenas foram retirados os RV1 e RV2 conectados aos canais ADC do MCU.

Algorítimo:

Sintaxe da função no algorítimo:

Pwm_Set_Duty(Valor atribuído desejado);

Antes de postar o algorítimo do exercício, vamos lidar com um pouco de matemática para ser definido o valor desejado do Duty Cycle para aplicação.

Como já foi dito anteriormente, os valores de Duty Cycle poderão ser na escala de 0% e 100%. Tudo vai depender do valor atribuído dentro do parênteses da função responsável.

Pwm_Set_Duty(Valor atribuído desejado);

______________________________________________________________________

Cálculo:

Para o cálculo vamos utilizar o valor fixo de (255), que corresponde um Duty Cycle (100%)  

Fórmula:

( ? ) = (Percentual Pwm * 255) / 100

1º  Exemplo:

EX: Queremos um Duty Cycle com valor fixo de 45%

(114.75 ) = (45 * 255) / 100

NOTE: O resultado gerado foi um valor quebrado, logo devemos atribuir um valor arredondado de (115)  

Pwm_Set_Duty(115);

O valor de 115 carregado entre parênteses corresponde Duty Cycle de (45%).  

______________________________________________________________________

2º  Exemplo:

EX: Queremos um Duty Cycle com valor fixo de 50%

(127.5 ) = (50 * 255) / 100

NOTE: O resultado gerado foi um valor quebrado, logo devemos atribuir um valor arredondado de (127)  

Pwm_Set_Duty(127);

O valor de 127 carregado entre parênteses corresponde Duty Cycle de (50%).

Para outros valores de Duty Cycle fazer utilização da equação abaixo.

( ? ) = (Percentual Pwm * 255) / 100

______________________________________________________________________

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

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

Código:
/*
 * Projeto: PWM CONTROL III
 * MikroC v6.0.0
 * Copyright (c) Anderson M, 25/07/2014.
 * Fórum: Eletrônica Silveira
 * MCU: PIC 18F452
 * Cristal Oscilador Externo: 10.0 Mhz
 * Oscilador XT, MCRL (Habilitado), PWRT ON (Habilitado), WDT OFF (Desabilitado)
 * Biblioteca adicionada: (PWM)
*/
// *****************************************************************************

void main(){

//*********************** Configurações dos PORTs ******************************

   ADCON1 = 0b00001001;  // Configura e define os pinos PORT A como (A/D)
   TRISA = 255;         // Define os pinos PORTa como entrada
// *****************************************************************************
  
//******************** Configuração PWM do módulo CCP1 *************************

   Pwm1_Init(30000);     // Inicializa o módulo PWM (1) com frequência 30 KHz
   Pwm1_Set_Duty(115);  // Valor atribuído do cálculo correspondente (45%)
   Pwm1_Start();       // Inícializa a geração do sinal PWM no módulo CCP1
// *****************************************************************************

//******************** Configuração PWM do módulo CCP2 *************************

   Pwm2_Init(30000);     // Inicializa o módulo PWM (2) com frequência 30 KHz
   Pwm2_Set_Duty(115);  // Valor atribuído do cálculo correspondente (45%)
   Pwm2_Start();       // Inícializa a geração do sinal PWM no módulo CCP2
// *****************************************************************************

}

Assim vamos encerrando o tópico do exercício nº 3

O próximo tópico do execício nº 4, o nosso algorítimo ficará mais extenso, ou seja, terá muitas linhas de código, foi por este motivo que tive esta decisão de começar de um projeto simples, para uma melhor compreensão dos iniciantes.

Nosso próximo projeto será bem mais interessante, pois vamos utilizar tomada de decisão na linguagem C.

O projeto será 2 em 1, será possível controlar velocidade por variação do Duty Cycle e ainda mudar o sentido de rotação dos motores DC. Ao invés de utilizar MOSFETs como tem sido até agora, vamos utilizar C.I driver de motor DC.

Haverá teclas táctil conectado ao MCU atuando como controles de velocidade e sentido de rotação dos motores DC.

É isso aí...  

Boa sorte a todos Positivo 

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

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

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum