SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
1
UTFPR – Campus Curitiba
Prof. Amauri Assef
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA
CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA – TECNOLOGIA EM
AUTOMAÇÃO INDUSTRIAL
Sistemas Digitais e Microcontrolados
Módulos Capture/Compare/PWM - PIC16F877A
Prof. Amauri Assef
amauriassef@utfpr.edu.br
Módulos Capture/Compare/PWM
2
UTFPR – Campus Curitiba
Prof. Amauri Assef
Características dos módulos CCP
 2 módulos Capture/Compare/PWM
 CCP1
 CCP2
 Capture
 Registro de 16 bits
 Resolução máxima de 12,5 ns
 Compare
 Registro de 16 bits
 Resolução máxima de 200 ns
 PWM (Pulse Width Modulation)
 Modulação por largura de pulso
 Resolução máxima de 10 bits
Módulos Capture/Compare/PWM
3
UTFPR – Campus Curitiba
Prof. Amauri Assef
Recurso dos Timers
 Timer 1 – 16 bits
 Timer 2 – 8 bits
Capture
 No modo de Captura, os registros CCPR1H:CCPR1L capturam o valor de 16 bits do
par de registradores TMR1 (Timer 1) quando um evento ocorre no pino RC2/CCP1
 Um evento é definido como:
 Cada borda de descida
 Cada borda de subida
 Cada 4ª borda de subida
 Cada 16ª borda de descida
Módulos Capture/Compare/PWM
4
UTFPR – Campus Curitiba
Prof. Amauri Assef
Compare
 No modo de Comparação, os registros CCPR1H:CCPR1L são constantemente
comparados com o par de registradores TMR1 (Timer 1). Quando os valores
coincidem o pino RC2/CCP1 pode ser:
 Setado
 Resetado
 Permanecer inalterado
Módulos Capture/Compare/PWM
5
UTFPR – Campus Curitiba
Prof. Amauri Assef
PWM (Pulse Width Modulation)
 No modo PWM – modulação por largura de pulso – o pino CCPx gera uma saída
PWM com resolução de 10 bits
 Como o CCP1 é multiplexado como o latch de dado do PORTC, o registro TRISC, bit
2, deve ser zerado para configurar o pino RC2/CCP1 como saída
Módulos Capture/Compare/PWM
6
UTFPR – Campus Curitiba
Prof. Amauri Assef
Registrador de configuração do módulo CCPx
 CCPxX:CPxY: Bits LSB do PWM
 Utilizado somente no modo PWM
 CCPxM3:CCPxM0: Modo de seleção dos CCPx
 0000 – CCP desabilitado
 0100 – Capture a cada borda de descida
 0101 - Capture a cada borda de subida
 0110 - Capture a cada 4ª borda de subida
 0111 - Capture a cada 16ª borda de subida
 1000 – Compare, seta saída
 1001 – Compare – reseta saída
 1010 – Compare – gera interrupção sem afetar o pino
 1011 – Compare – trigger de evento especial (A/D)
 11xx - PWM
Módulos Capture/Compare/PWM
7
UTFPR – Campus Curitiba
Prof. Amauri Assef
Diagrama em blocos simplificado do PWM
Módulos Capture/Compare/PWM
8
UTFPR – Campus Curitiba
Prof. Amauri Assef
Cálculo do período PWM
 O período do PWM é especificado escrevendo no registro PR2
 O período pode ser calculado através da seguinte equação:
 Tosc é o período do oscilador (clock)
Período PWM = [(PR2) + 1)] . 4 . Tosc . TMR2 Prescaler
Módulos Capture/Compare/PWM
9
UTFPR – Campus Curitiba
Prof. Amauri Assef
Exemplo de cálculo do período PWM
 Parâmetros
 Período de 50 μs (f = 20 kHz)
 Frequência do cristal de 8 MHz (Tosc = 125 ns)
 Prescaler do Timer 2 igual a 1:1
 Calcular o valor de carga do registro PR2 (banco 1)
Período PWM = [(PR2) + 1)] . 4 . Tosc . TMR2 Prescaler
50 μs = [(PR2 + 1)] . 4 . 125ns . 1
PR2 = 99
Módulos Capture/Compare/PWM
10
UTFPR – Campus Curitiba
Prof. Amauri Assef
Cálculo do duty cycle
 O duty cycle do PWM é especificado através da escrita nos registradores CCPR1L
concatenado com o CCP1CON, bits 5 e 4, com resolução de 10 bits
 O duty cycle pode ser calculado através da seguinte equação:
 Tosc é o período do oscilador (clock)
Duty Cycle PWM = (CCPR1L: CCP1CON <5:4>) . Tosc . TMR2 Prescaler
Calcular o valor de carga para
razão de trabalho igual a 50%:
Obs: O valor deve ser <= 1023
Módulos Capture/Compare/PWM
11
UTFPR – Campus Curitiba
Prof. Amauri Assef
Configuração do Timer 2
 TOUTPS3:TOUTPS0: Seleção do postscale do Timer 2
 0000 – 1:1
 ....
 1111 – 1:16
 TMRON2: Bit para ligar o Timer 2
 0 – Timer 2 desligado
 1 – Timer 2 ligado
 T2CKPS1:T2CKPS0: Seleção do prescaler do Timer 2
 00 – 1:1
 01 – 1:4
 1x – 1: 16
Módulos Capture/Compare/PWM
12
UTFPR – Campus Curitiba
Prof. Amauri Assef
Exemplo de hardware
Módulos Capture/Compare/PWM
13
UTFPR – Campus Curitiba
Prof. Amauri Assef
Exemplo:
1) Escrever o firmware para gerar um sinal PWM no pino RC2/CCP1 com frequência
de 20 kHz (período = 50 μs) e duty cycle inicial de 20% (50 μs . 0,2 = 10 μs):
2) Escrever o firmware para ler o trimpot do canal 1, normalizar o resultado em 8 bits
e enviar para a função de controle da razão de trabalho do módulo PWM1. Utilizar
frequência de 20kHz:
3) Escrever o firmware para controlar o brilho de um LED conectado no pino RC2
através de um trimpot conectado no pino RA0:
Módulos Capture/Compare/PWM
14
UTFPR – Campus Curitiba
Prof. Amauri Assef
1) Programa principal (Assembly):
INICIO BANK1
MOVLW 0X00
MOVWF TRISC ; CONFIGURA PORTC COMO SAÍDA
MOVLW B'00000000' ; TIMER 0 -> PRESCALER DE 1:2
MOVWF OPTION_REG
BANK0
BANK1
MOVLW D'99' ; VALOR PARA PERÍODO DE 50us (20kHz)
MOVWF PR2
BANK0
MOVLW D'20' ; 80/4 = 20%, PARA NÃO UTILIZAR 2 BITS
MOVWF CCPR1L ; DA PARTE BAIXA
Configura o
PIC16F877A
Módulos Capture/Compare/PWM
15
UTFPR – Campus Curitiba
Prof. Amauri Assef
Continuação:
CLRF TMR2
MOVLW B'00000100'
; ||||||||-> T2CKPS0 - PRESCALE - 00 = 1:1
; |||||||--> T2CKPS1
; ||||||---> TMR2ON
; |||||----> TOUTPS0 - POSTSCALE - 0000 = 1:1
; ||||-----> TOUTPS1
; |||------> TOUTPS2
; ||-------> TOUTPS3
; |--------> NÃO IMPLEMENT.
MOVWF T2CON
MOVLW B'00001100' ; CONTROLE DO PWM
; ||||||||-> CCP1M0 - SELEÇÃO DE MODO DO CCP1 - 11XX PARA PWM
; |||||||--> CCP1M1
; ||||||---> CCP1M2
; |||||----> CCP1M3
; ||||-----> CCP1Y - PINOS LSB DO DUTY CYCLE DO PWM
; |||------> CCP1X
; ||-------> NÃO IMPLEMENT.
; |--------> NÃO IMPLEMENT.
MOVWF CCP1CON
GOTO $
END
Módulos Capture/Compare/PWM
16
UTFPR – Campus Curitiba
Prof. Amauri Assef
1) Programa principal (C):
unsigned short i;
void main() {
TRISC = 0x00; // PORTC COMO SAÍDA
PORTC = 0x00; // VALOR INICIAL = 00
Pwm_Init(20000); // INICIALIZA O MODULO PWM COM 20kHz
Pwm_Start(); // INICIA PWM
while(1) {
for (i = 1; i <= 255; i++)
{
Pwm_Change_Duty(i); // INCREMENTA O DUTY CYCLE A CADA 10ms
Delay_ms(5);
}
}
}
Módulos Capture/Compare/PWM
17
UTFPR – Campus Curitiba
Prof. Amauri Assef
1) Programa principal (C) para o Micro C Pro:
unsigned short i;
void main() {
TRISC = 0x00; // PORTC COMO SAÍDA
PORTC = 0x00; // VALOR INICIAL = 00
PWM1_Init(20000); // INICIALIZA O MODULO PWM COM 20kHz
PWM1_Start(); // INICIA PWM
while(1) {
for (i = 1; i < 255; i++)
{
PWM1_Set_Duty(i); // INCREMENTA O DUTY CYCLE A CADA 10ms
Delay_ms(5);
}
}
}
Módulos Capture/Compare/PWM
18
UTFPR – Campus Curitiba
Prof. Amauri Assef
Exemplo com motor DC:
1) Escrever o firmware para fazer o controle de dois motores DC de 5V. Considerando
o CI L293D (ponte H dupla), utilizar os pinos RB0 e RB1 para controle do sentido
dos motores e dois sinais PWM do PIC para controle da velocidade (RC1 e RC2),
que será ajustada conforme o valor de um trimpot conectado no pino RA1 (canal
1). Se chave 1 (CH_1) pressionada, o motor deve girar no sentido horário, caso
contrário, anti-horário. Obs: Ler o valor do trimpot a cada 10 ms.
2) A partir do exercício anteiror, incluir um trimpot para controle de outro motor com
os pinos RD4 e RD5. Utilizar a chave (CH_2) para selecionar o sentido de giro do
segundo motor.
Módulos Capture/Compare/PWM
19
UTFPR – Campus Curitiba
Prof. Amauri Assef
CI L293D
Módulos Capture/Compare/PWM
20
UTFPR – Campus Curitiba
Prof. Amauri Assef
Fonte:http://www.mecatronicaatual.com.br/educacao/1835-sensor-de-
proximidade-infravermelho-com-pci-12f675?start=1
Exemplo com foto-emissor infravermelho e foto-receptor:

Mais conteúdo relacionado

Semelhante a Apostila Apresentacao_PWM_PIC16F877A_2015.pdf

Guia de utilização Apresentacao_ADC_PIC16F877A.pdf
Guia de utilização Apresentacao_ADC_PIC16F877A.pdfGuia de utilização Apresentacao_ADC_PIC16F877A.pdf
Guia de utilização Apresentacao_ADC_PIC16F877A.pdfSilvanildoManoeldaSi
 
Projeto de um PLL ( Phase Locked Loop )
Projeto de um PLL ( Phase Locked Loop )Projeto de um PLL ( Phase Locked Loop )
Projeto de um PLL ( Phase Locked Loop )Ciro Marcus
 
Robotic Light Moving Toy Car Report
Robotic Light Moving Toy Car ReportRobotic Light Moving Toy Car Report
Robotic Light Moving Toy Car ReportPaulo Duarte
 
Projeto – Transmissão de voz digital
Projeto – Transmissão de voz digitalProjeto – Transmissão de voz digital
Projeto – Transmissão de voz digitalCiro Marcus
 
Treinamento – vfs15 pratica
Treinamento – vfs15 praticaTreinamento – vfs15 pratica
Treinamento – vfs15 praticaconfidencial
 
Informativo técnico lavadora extratora industrial
Informativo técnico   lavadora extratora industrialInformativo técnico   lavadora extratora industrial
Informativo técnico lavadora extratora industrialconfidencial
 
APRESENTACAO_-_Aula_04_Linguagem_de_Programacao_Ladder.pdf
APRESENTACAO_-_Aula_04_Linguagem_de_Programacao_Ladder.pdfAPRESENTACAO_-_Aula_04_Linguagem_de_Programacao_Ladder.pdf
APRESENTACAO_-_Aula_04_Linguagem_de_Programacao_Ladder.pdfAlbertoEmoto
 
Catalogo tron controles
Catalogo tron controlesCatalogo tron controles
Catalogo tron controlesLucas Lima
 
Capitulo 2 - Composicao CNC
Capitulo 2 - Composicao CNCCapitulo 2 - Composicao CNC
Capitulo 2 - Composicao CNCSergio Barrios
 
Projeto e desenvolvimento de um robô antropomórfico didático.
Projeto e desenvolvimento de um robô antropomórfico didático.Projeto e desenvolvimento de um robô antropomórfico didático.
Projeto e desenvolvimento de um robô antropomórfico didático.Renan Louzada
 
Controladores logicos programavel industriais
Controladores logicos programavel industriaisControladores logicos programavel industriais
Controladores logicos programavel industriaisJoseMarcelodeAssisSa
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdfmicrocontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdftccunip
 

Semelhante a Apostila Apresentacao_PWM_PIC16F877A_2015.pdf (20)

Guia de utilização Apresentacao_ADC_PIC16F877A.pdf
Guia de utilização Apresentacao_ADC_PIC16F877A.pdfGuia de utilização Apresentacao_ADC_PIC16F877A.pdf
Guia de utilização Apresentacao_ADC_PIC16F877A.pdf
 
ARM
ARMARM
ARM
 
Projeto de um PLL ( Phase Locked Loop )
Projeto de um PLL ( Phase Locked Loop )Projeto de um PLL ( Phase Locked Loop )
Projeto de um PLL ( Phase Locked Loop )
 
Robotic Light Moving Toy Car Report
Robotic Light Moving Toy Car ReportRobotic Light Moving Toy Car Report
Robotic Light Moving Toy Car Report
 
Projeto – Transmissão de voz digital
Projeto – Transmissão de voz digitalProjeto – Transmissão de voz digital
Projeto – Transmissão de voz digital
 
Treinamento – vfs15 pratica
Treinamento – vfs15 praticaTreinamento – vfs15 pratica
Treinamento – vfs15 pratica
 
Pro2 11p
Pro2 11pPro2 11p
Pro2 11p
 
Informativo técnico lavadora extratora industrial
Informativo técnico   lavadora extratora industrialInformativo técnico   lavadora extratora industrial
Informativo técnico lavadora extratora industrial
 
AULA 03 Sistemas de Controle.pptx
AULA 03 Sistemas de Controle.pptxAULA 03 Sistemas de Controle.pptx
AULA 03 Sistemas de Controle.pptx
 
APRESENTACAO_-_Aula_04_Linguagem_de_Programacao_Ladder.pdf
APRESENTACAO_-_Aula_04_Linguagem_de_Programacao_Ladder.pdfAPRESENTACAO_-_Aula_04_Linguagem_de_Programacao_Ladder.pdf
APRESENTACAO_-_Aula_04_Linguagem_de_Programacao_Ladder.pdf
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
Catalogo tron controles
Catalogo tron controlesCatalogo tron controles
Catalogo tron controles
 
Capitulo 2 - Composicao CNC
Capitulo 2 - Composicao CNCCapitulo 2 - Composicao CNC
Capitulo 2 - Composicao CNC
 
Projeto e desenvolvimento de um robô antropomórfico didático.
Projeto e desenvolvimento de um robô antropomórfico didático.Projeto e desenvolvimento de um robô antropomórfico didático.
Projeto e desenvolvimento de um robô antropomórfico didático.
 
Controladores logicos programavel industriais
Controladores logicos programavel industriaisControladores logicos programavel industriais
Controladores logicos programavel industriais
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdfmicrocontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
 
Profibus pa
Profibus paProfibus pa
Profibus pa
 
Profibuspa 140503095338-phpapp01
Profibuspa 140503095338-phpapp01Profibuspa 140503095338-phpapp01
Profibuspa 140503095338-phpapp01
 
Pro2 01p
Pro2 01pPro2 01p
Pro2 01p
 

Apostila Apresentacao_PWM_PIC16F877A_2015.pdf

  • 1. 1 UTFPR – Campus Curitiba Prof. Amauri Assef UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA – TECNOLOGIA EM AUTOMAÇÃO INDUSTRIAL Sistemas Digitais e Microcontrolados Módulos Capture/Compare/PWM - PIC16F877A Prof. Amauri Assef amauriassef@utfpr.edu.br
  • 2. Módulos Capture/Compare/PWM 2 UTFPR – Campus Curitiba Prof. Amauri Assef Características dos módulos CCP  2 módulos Capture/Compare/PWM  CCP1  CCP2  Capture  Registro de 16 bits  Resolução máxima de 12,5 ns  Compare  Registro de 16 bits  Resolução máxima de 200 ns  PWM (Pulse Width Modulation)  Modulação por largura de pulso  Resolução máxima de 10 bits
  • 3. Módulos Capture/Compare/PWM 3 UTFPR – Campus Curitiba Prof. Amauri Assef Recurso dos Timers  Timer 1 – 16 bits  Timer 2 – 8 bits Capture  No modo de Captura, os registros CCPR1H:CCPR1L capturam o valor de 16 bits do par de registradores TMR1 (Timer 1) quando um evento ocorre no pino RC2/CCP1  Um evento é definido como:  Cada borda de descida  Cada borda de subida  Cada 4ª borda de subida  Cada 16ª borda de descida
  • 4. Módulos Capture/Compare/PWM 4 UTFPR – Campus Curitiba Prof. Amauri Assef Compare  No modo de Comparação, os registros CCPR1H:CCPR1L são constantemente comparados com o par de registradores TMR1 (Timer 1). Quando os valores coincidem o pino RC2/CCP1 pode ser:  Setado  Resetado  Permanecer inalterado
  • 5. Módulos Capture/Compare/PWM 5 UTFPR – Campus Curitiba Prof. Amauri Assef PWM (Pulse Width Modulation)  No modo PWM – modulação por largura de pulso – o pino CCPx gera uma saída PWM com resolução de 10 bits  Como o CCP1 é multiplexado como o latch de dado do PORTC, o registro TRISC, bit 2, deve ser zerado para configurar o pino RC2/CCP1 como saída
  • 6. Módulos Capture/Compare/PWM 6 UTFPR – Campus Curitiba Prof. Amauri Assef Registrador de configuração do módulo CCPx  CCPxX:CPxY: Bits LSB do PWM  Utilizado somente no modo PWM  CCPxM3:CCPxM0: Modo de seleção dos CCPx  0000 – CCP desabilitado  0100 – Capture a cada borda de descida  0101 - Capture a cada borda de subida  0110 - Capture a cada 4ª borda de subida  0111 - Capture a cada 16ª borda de subida  1000 – Compare, seta saída  1001 – Compare – reseta saída  1010 – Compare – gera interrupção sem afetar o pino  1011 – Compare – trigger de evento especial (A/D)  11xx - PWM
  • 7. Módulos Capture/Compare/PWM 7 UTFPR – Campus Curitiba Prof. Amauri Assef Diagrama em blocos simplificado do PWM
  • 8. Módulos Capture/Compare/PWM 8 UTFPR – Campus Curitiba Prof. Amauri Assef Cálculo do período PWM  O período do PWM é especificado escrevendo no registro PR2  O período pode ser calculado através da seguinte equação:  Tosc é o período do oscilador (clock) Período PWM = [(PR2) + 1)] . 4 . Tosc . TMR2 Prescaler
  • 9. Módulos Capture/Compare/PWM 9 UTFPR – Campus Curitiba Prof. Amauri Assef Exemplo de cálculo do período PWM  Parâmetros  Período de 50 μs (f = 20 kHz)  Frequência do cristal de 8 MHz (Tosc = 125 ns)  Prescaler do Timer 2 igual a 1:1  Calcular o valor de carga do registro PR2 (banco 1) Período PWM = [(PR2) + 1)] . 4 . Tosc . TMR2 Prescaler 50 μs = [(PR2 + 1)] . 4 . 125ns . 1 PR2 = 99
  • 10. Módulos Capture/Compare/PWM 10 UTFPR – Campus Curitiba Prof. Amauri Assef Cálculo do duty cycle  O duty cycle do PWM é especificado através da escrita nos registradores CCPR1L concatenado com o CCP1CON, bits 5 e 4, com resolução de 10 bits  O duty cycle pode ser calculado através da seguinte equação:  Tosc é o período do oscilador (clock) Duty Cycle PWM = (CCPR1L: CCP1CON <5:4>) . Tosc . TMR2 Prescaler Calcular o valor de carga para razão de trabalho igual a 50%: Obs: O valor deve ser <= 1023
  • 11. Módulos Capture/Compare/PWM 11 UTFPR – Campus Curitiba Prof. Amauri Assef Configuração do Timer 2  TOUTPS3:TOUTPS0: Seleção do postscale do Timer 2  0000 – 1:1  ....  1111 – 1:16  TMRON2: Bit para ligar o Timer 2  0 – Timer 2 desligado  1 – Timer 2 ligado  T2CKPS1:T2CKPS0: Seleção do prescaler do Timer 2  00 – 1:1  01 – 1:4  1x – 1: 16
  • 12. Módulos Capture/Compare/PWM 12 UTFPR – Campus Curitiba Prof. Amauri Assef Exemplo de hardware
  • 13. Módulos Capture/Compare/PWM 13 UTFPR – Campus Curitiba Prof. Amauri Assef Exemplo: 1) Escrever o firmware para gerar um sinal PWM no pino RC2/CCP1 com frequência de 20 kHz (período = 50 μs) e duty cycle inicial de 20% (50 μs . 0,2 = 10 μs): 2) Escrever o firmware para ler o trimpot do canal 1, normalizar o resultado em 8 bits e enviar para a função de controle da razão de trabalho do módulo PWM1. Utilizar frequência de 20kHz: 3) Escrever o firmware para controlar o brilho de um LED conectado no pino RC2 através de um trimpot conectado no pino RA0:
  • 14. Módulos Capture/Compare/PWM 14 UTFPR – Campus Curitiba Prof. Amauri Assef 1) Programa principal (Assembly): INICIO BANK1 MOVLW 0X00 MOVWF TRISC ; CONFIGURA PORTC COMO SAÍDA MOVLW B'00000000' ; TIMER 0 -> PRESCALER DE 1:2 MOVWF OPTION_REG BANK0 BANK1 MOVLW D'99' ; VALOR PARA PERÍODO DE 50us (20kHz) MOVWF PR2 BANK0 MOVLW D'20' ; 80/4 = 20%, PARA NÃO UTILIZAR 2 BITS MOVWF CCPR1L ; DA PARTE BAIXA Configura o PIC16F877A
  • 15. Módulos Capture/Compare/PWM 15 UTFPR – Campus Curitiba Prof. Amauri Assef Continuação: CLRF TMR2 MOVLW B'00000100' ; ||||||||-> T2CKPS0 - PRESCALE - 00 = 1:1 ; |||||||--> T2CKPS1 ; ||||||---> TMR2ON ; |||||----> TOUTPS0 - POSTSCALE - 0000 = 1:1 ; ||||-----> TOUTPS1 ; |||------> TOUTPS2 ; ||-------> TOUTPS3 ; |--------> NÃO IMPLEMENT. MOVWF T2CON MOVLW B'00001100' ; CONTROLE DO PWM ; ||||||||-> CCP1M0 - SELEÇÃO DE MODO DO CCP1 - 11XX PARA PWM ; |||||||--> CCP1M1 ; ||||||---> CCP1M2 ; |||||----> CCP1M3 ; ||||-----> CCP1Y - PINOS LSB DO DUTY CYCLE DO PWM ; |||------> CCP1X ; ||-------> NÃO IMPLEMENT. ; |--------> NÃO IMPLEMENT. MOVWF CCP1CON GOTO $ END
  • 16. Módulos Capture/Compare/PWM 16 UTFPR – Campus Curitiba Prof. Amauri Assef 1) Programa principal (C): unsigned short i; void main() { TRISC = 0x00; // PORTC COMO SAÍDA PORTC = 0x00; // VALOR INICIAL = 00 Pwm_Init(20000); // INICIALIZA O MODULO PWM COM 20kHz Pwm_Start(); // INICIA PWM while(1) { for (i = 1; i <= 255; i++) { Pwm_Change_Duty(i); // INCREMENTA O DUTY CYCLE A CADA 10ms Delay_ms(5); } } }
  • 17. Módulos Capture/Compare/PWM 17 UTFPR – Campus Curitiba Prof. Amauri Assef 1) Programa principal (C) para o Micro C Pro: unsigned short i; void main() { TRISC = 0x00; // PORTC COMO SAÍDA PORTC = 0x00; // VALOR INICIAL = 00 PWM1_Init(20000); // INICIALIZA O MODULO PWM COM 20kHz PWM1_Start(); // INICIA PWM while(1) { for (i = 1; i < 255; i++) { PWM1_Set_Duty(i); // INCREMENTA O DUTY CYCLE A CADA 10ms Delay_ms(5); } } }
  • 18. Módulos Capture/Compare/PWM 18 UTFPR – Campus Curitiba Prof. Amauri Assef Exemplo com motor DC: 1) Escrever o firmware para fazer o controle de dois motores DC de 5V. Considerando o CI L293D (ponte H dupla), utilizar os pinos RB0 e RB1 para controle do sentido dos motores e dois sinais PWM do PIC para controle da velocidade (RC1 e RC2), que será ajustada conforme o valor de um trimpot conectado no pino RA1 (canal 1). Se chave 1 (CH_1) pressionada, o motor deve girar no sentido horário, caso contrário, anti-horário. Obs: Ler o valor do trimpot a cada 10 ms. 2) A partir do exercício anteiror, incluir um trimpot para controle de outro motor com os pinos RD4 e RD5. Utilizar a chave (CH_2) para selecionar o sentido de giro do segundo motor.
  • 19. Módulos Capture/Compare/PWM 19 UTFPR – Campus Curitiba Prof. Amauri Assef CI L293D
  • 20. Módulos Capture/Compare/PWM 20 UTFPR – Campus Curitiba Prof. Amauri Assef Fonte:http://www.mecatronicaatual.com.br/educacao/1835-sensor-de- proximidade-infravermelho-com-pci-12f675?start=1 Exemplo com foto-emissor infravermelho e foto-receptor: