pwm com 16f628

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

pwm com 16f628

Mensagempor denis neves » 21 Ago 2007 11:42

e aew pessoal blzzzz?!?!?

eu to tentando construir um esquema de pwm com o pic para acionar um led de alta potencia, eu to utilizando um compilador em c para programar o dito cujo,mas como eu nunca mexi com pwm no pic gostaria que vcs me dessem uma força!!!eu vo utilizar dois push botons para mexer na largura do pulso e tambem gostaria de saber como devo fazer isso!!!

muito obrigado desde já!!!
denis neves
Byte
 
Mensagens: 117
Registrado em: 25 Jul 2007 17:16

Mensagempor microeletronica » 21 Ago 2007 23:31

Ola Denis, tudo bem?

Qual sua experiencia com outros microcontroladores?
Voce esta utilizando um compilador C CCS, Hitech, PICC ou C18?
Como eh seu hardware? Voce mesmo montou? Em protoboard, placa padrao ou placa de duas faces?

O PIC16F628, como pode ver em http://ww1.microchip.com/downloads/en/D ... 40300C.pdf,
possui tres timers, Timer0 e 2, 8 bits e Timer1 com 16 bits. Uma forma de fazer o PWM eh utilizando Timers e manipulando IOs.

Mas a forma mais correta e pratica eh utilizando mesmo as funcoes de PWM. Basicamente deve setar as direcoes das portas, habilitar as funcoes de PWM, configurando apropriadamente os valores e ligar o PWM.
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor microeletronica » 21 Ago 2007 23:47

Determine o Periodo do PWM:
Periodo do PWM = [PR2 + 1] 4 . TOSC . Prescaler do Timer2

Determine o Duty Cycle do PWM:
CCPR1L e CCP1CON, bits 5 e 4

Coloque o CCP1 como saida, Pino 3 de PORTB, TRISB.3 = 0

Coloque um valor no Prescaler do Timer2 (bit 1-0 de T2CON, pagina 53), relativo ao periodo do PWM; habilite o timer 2 escrevenddo em T2CON(bit 2, pagina 53).

Ligue o PWM:
CCP1CON = 0x0F; // Bit 3-0 = 11xx = PWM Mode
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor microeletronica » 22 Ago 2007 00:24

Para a sua aplicacao, o Periodo deve ser fixo e vc deve alterar o Duty Cycle, certo?

Passe pro pessoal deste forum os valores de XT que utiliza e Periodo desejado, que podemos fazer os calculos. Dai eh soh variar o Duty Cycle conforme pressiona as teclas.

Tudo isso se torna simples, dai...
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor denis neves » 22 Ago 2007 08:42

então...eu to usanu o compilador hitech, um cristal de 4MHz, matriz de contatos, pic16f628, e gostaria de uma frequencia de +-100Hz.
é eu quero uma frequencia fixa e variar apenas o duty cycle!!!
Eu ainda to meio que começando a lidar com microcontroladores e ainda nao tenho muita experiencia nao!!!

mas beleza com essas dicas ai ja dá pra me viar aqui!!!

vALEU microeletronica qualquer coisa eu do um toque!!!

Braço
denis neves
Byte
 
Mensagens: 117
Registrado em: 25 Jul 2007 17:16

Mensagempor microeletronica » 24 Ago 2007 22:03

Para um Cristal e 4 MHz, voce tem 1 MHz de frequencia de operacao.
Dai tem 1000000 de ciclos em um segundo.
Digamos que precise implementar um PWM de 100 Hz com duty cycle variando de 0 a 100%...

Coloque o CCP1 como saida, Pino 3 de PORTB, com o comando TRISB.3 = 0, ainal eh este pino que vai ser seu PWM...

PWM period = [(PR2) + 1] • 4 • TOSC •(TMR2 prescale value)
PWM period = [(15) + 1] • 4 • 0,000001 •(16) = 1024*0,000001 = 0,001024

Configure entao: TMR2 prescale value = 16 ->> T2CKPS1:T2CKPS0: Timer2 Clock Prescale Select bits, (T2CON) = 11
Configure entao: PR2 = 15
Consiga assim: freq = 1/0,001024 = 976 Hz

O Duty Cycle, que deseja que varie, use a formula PWM duty cycle = (CCPR1L:CCP1CON<5:4>) • Tosc • (TMR2 prescale value)

Habilite entao o timer 2 escrevendo em T2CON(bit 2, pagina 53).
Aguardo suas duvidas e boa sorte.
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor kaoalex » 25 Ago 2007 14:59

Aqui vai um prog. que eu achei na net para ccs.
http://rapidshare.com/files/51243015/PWMWizard.zip.html
Avatar do usuário
kaoalex
Byte
 
Mensagens: 237
Registrado em: 12 Out 2006 01:52

Mensagempor denis neves » 27 Ago 2007 08:26

ahhhhh ta...puts valeu msm em microeletronik qualquer duvida eu do um toque!!!

e precisanu estou as ordens!!!

AH Kaoalex ahehaheahe...com esse ai q tá na net da pra tirar umas ideias tbm...
o unico problema é q ele é para ccs e eu to usanu um hitech!!! mas valeu pela força...
denis neves
Byte
 
Mensagens: 117
Registrado em: 25 Jul 2007 17:16

Mensagempor denis neves » 27 Ago 2007 17:00

então pessoal agora eu to com uma dificuldade aqui no compilador hi tech...eu tom com dificuldades de configurar entradas e saidas do pic!!!
eu to fasenu assim...

PORTA=0;
TRISA1=1;para configurar o bit 1 do port A como ENTRADA!!!

nao esta dando certo tem algo errado...a minha duvida é com relaçao a port,tris,e RA1,RA2,RA3....RB1....

eu tenho q declarar o PORTA=0 mesmo quando eu declaro TRISA=1???

VALEU...é q eu fiz poucos projetos com pic e nunca usei os pinos como entrada!!!
denis neves
Byte
 
Mensagens: 117
Registrado em: 25 Jul 2007 17:16

Mensagempor ze » 27 Ago 2007 17:22

antes de ler a entrada coloque-a em 1. Funcionava para os 8051´s, antes de ler colocava a saída em 1. Talvez o pic não precise. Mas mantive o padrão.
RA1=1;
TRISA1=1;
CM2=CM1=CM0=1; //se for entrada digital, não te esqueças

abrç
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor luciano » 24 Set 2007 15:03

eae pessoal blz?
também estou fazendo controle com pwm, já consegui fazer funcionar, mas agora estou com um problema de como ele vai monitorar a tensão de saída e ir corrigindo o pwm para se manter na tensão programada.
alguém tem alguma sugestão ?
luciano
Bit
 
Mensagens: 23
Registrado em: 04 Set 2007 14:47

Mensagempor microeletronica » 24 Set 2007 22:02

Explique melhor, Luciano
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor luciano » 25 Set 2007 08:19

Estou fazendo o pwm com o pic 16f628, isso eu já consegui fazer.
Agora eu quero fazer um monitoramento da tensão que está sendo modulada para ir verificando se o que programei é o que está saindo, seria uma realimentação, porém no 16f628 não tenho conversor A/D, porém como fazer essa realimentação ?
luciano
Bit
 
Mensagens: 23
Registrado em: 04 Set 2007 14:47


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x