Você está na página 1de 2

PWM pode ser usado para controlar um driver de motor ou gerar amostras de som.

O registo especificamente usado para configurar PWM são os TRISC, PR2, CCP1CON, CCP2CON,
CCPR1L, CCPR2L e registra T2CON. Existem dois canais de PWM sobre o PIC16F877. Estes
módulos são cunhadas CCP1 et CCP2. Estes módulos são implementados nos pinos 16 e 17 do
PIC16F877. Há duas maneiras de conectar esses pinos para uma L293D H-Bridge. Eu
recomendo para ligar estes aos pinos Habilitar L293D Chip. PWM então controla a
porcentagem de tempo que o chip é ativado.

Existem dois parâmetros que afetam o comportamento do PWM. A primeira é a freqüência de


pulsos, o segundo é a duração destes pulsos. O comprimento do pulso é também chamado de
ciclo de trabalho, por exemplo, o percentual de tempo que o motor é ativado. Em um
ambiente ideal, se um motor normalmente apresentam 100 RPM, então ele deve fazer 25 RPM
com um ciclo de 25%.

É importante experimentar com esses parâmetros para encontrar a configuração que é certo
para sua aplicação, porque nenhum dois motores são os mesmos. Alguns motores são
melhores quando a freqüência é baixa (entre 2 000-5 000 Hz). Outros motores são melhores
quando a freqüência é alta, digamos entre 15 000 e 20 000 Hz. Note-se que uma freqüência
baixa (entre 1 000 e 8 000 Hz) irá produzir um som audível que pode ser muito chato. Eu testei
três robôs com diferentes peso (500 g para 15 kg) e com motores diferentes e descobriram
que uma frequência de 15 000 a 20 000 Hz dá bons resultados. Eu nunca vi qualquer
movimento robô com um ciclo de trabalho de menos de 50%. Se você quiser fazer isso, você
tem que encontrar maneiras de controlar PWM em software, ou seja, para um ciclo de
trabalho de 25%, use um ciclo de trabalho de 50% e vire PWM 50% do tempo. Idealmente,
você vai encontrar motores que não são demasiado rápido em 50% e rápido o suficiente em
100%.

O registo TRISC deve ser inicializado para que RC1 et RC2 são identificados como portas de
saída (bits 1 e 2 do TRISC deve ser definido para 0).

CCP1CON e CCP2CON são usados para configurar CCP1 e CCP2 modo de módulos. Um valor de
12 configura esses módulos para o modo PWM.

Timer2 é usado por CCP1 e CCP2 módulos para fins de PWM. Timer2 prescaler está
configurado usando bits TCKPS0 et TCKPS1 de T2CON registo (bits 0 e 1). Um valor de 0 para
estes dois bits configura um divisor de 1. TMR2ON bit (bit 2) deve ser inicializado para 1 para
iniciar Timer2.

PR2 registo controla a freqüência de pulso. A fórmula utilizada para calcular o período de pulso
é:

(PR2 + 1) * 4 * tosc * (Timer2 valor prescaler).

Freqüência de pulso é um período /. Se PR2 é igual a 255 eo PIC funciona a 20 MHz, freqüência
de pulso é 19,53 kHz com um prescaler Timer2 de 1, ou seja, 1 / ((255 + 1) * 4 * 1 / 20 000 000
* 1).

O CCPR1L et CCPR2L registra configurar o "ciclo". O "ciclo" é relativo ao PR2. Se PR2 é 100 e
CCPR1 é 50, então o "ciclo" é efetivamente 50% (metade da PR2).

CCS fornece macros para configurar esses registros de forma adequada. Aqui está um exemplo
de programa que mostra como configurar PWM com CCS:

Você também pode gostar