
Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03



O QUE É PWM?
PWM STANDS PARA MODULAÇÃO DE LARGURA DE PULSO é uma técnica pela qual a largura do pulso é variada.
Para entender este conceito, considere claramente um pulso de clock ou qualquer sinal de onda quadrada, ele tem ciclo de trabalho de 50%, o que significa que o período de Ton e Toff é o mesmo. A duração total para a qual o sinal esteve alto e a duração para a qual o sinal esteve baixo é chamada de total período de tempo.
Para a imagem mostrada acima, esta onda tem um ciclo de trabalho de 50%
Ciclo de trabalho = (tempo ON / Tempo total) * 100
Tempo ON - tempo para o qual o sinal estava alto
Tempo DESLIGADO - tempo para o qual o sinal estava baixo. Tempo total - Período de tempo total do pulso (tempo LIGADO e DESLIGADO)
Etapa 1: Seleção do microcontrolador

Selecionando o microcontrolador apropriado para o projeto, esta é a parte essencial do projeto. Os sinais PWM podem ser gerados em microcontroladores com canais PWM (registros CCP). Para este projeto, estou planejando manter o pic16f877. você pode baixar o link da folha de dados é fornecido abaixo
Folha de dados do PIC16F877a clique aqui
O módulo CCP é responsável por produzir o sinal PWM. CCP1 e CCP2 são multiplexados com PORTC. PORTC é uma porta bidirecional de 8 bits. O registro de direção de dados correspondente é TRISC. Definir o bit TRISC (= 1) fará com que o pino PORTC correspondente seja uma entrada. Apagar um bit TRISC (= 0) tornará o pino PORTC correspondente uma saída.
TRISC = 0; // Limpar este bit tornará PORTC como saída
Etapa 2: CONFIGURAR MÓDULO CCP


CCP - CAPTURAR / COMPARAR / MÓDULOS PWM
Cada módulo de Captura / Comparar / PWM (CCP) contém um registro de 16 bits que pode operar como:
• Registro de captura de 16 bits
• Registro de comparação de 16 bits
• Registro de ciclo de trabalho mestre / escravo PWM
Configure o registro CCP1CON para o modo PWM
Descrição do Registro
CCPxCON Este registro é usado para configurar o módulo CCP para operação de Captura / Comparar / PWM.
CCPRxL Este registro contém os bits de 8 Msb do PWM, 2 bits inferiores farão parte do registro CCPxCON.
Contador de funcionamento livre TMR2 que será comparado com CCPR1L e PR2 para gerar a saída PWM.
Agora usarei o binário para representar os bits para configurar o registro CCP1CON.
consulte a imagem acima.
CCP1CON = 0b00001111;
Você também pode usar o formato hexadecimal
CCP1CON = 0x0F; // configurando o registro CCP1CON para o modo PWM
Etapa 3: Configurando o Módulo Timer2 (Registro TMR2)

Timer2 é um temporizador de 8 bits com um prescaler e um postscaler. Ele pode ser usado como a base de tempo PWM para o modo PWM do (s) módulo (s) CCP. O registro TMR2 é legível e gravável e é limpo em qualquer reinicialização do dispositivo.
O registro T2CON é mostrado
A pré-escala e a pós-escala ajustarão a frequência de saída da onda PWM gerada.
Frequência = frequência do relógio / (4 * prescaler * (PR2-TMR2) * Postcaler * contagem)
Onde Tout = 1 / frequência
T2CON = 0b00000100;
Isso irá gerar cristal de 2,5 KHz @ 1Mhz ou 100KHz @ 4MHz (praticamente há uma limitação para esta frequência PWM, consulte a folha de dados específica para obter mais detalhes)
representação hexadecimal
T2CON = 0x04; // habilita T2CON sem configuração de pré-escala e pós-escala
Etapa 4: Configurando PR2 (Registro de Período Timer2)
O módulo Timer2 possui um registro de período de 8 bits, PR2. O cronômetro2 aumenta de 00h até que corresponda a PR2 e, a seguir, é redefinido para 00h no próximo ciclo de incremento. PR2 é um registro legível e gravável. O registro PR2 é inicializado para FFh na reinicialização.
Definir uma faixa apropriada para PR2 permitirá o uso para alterar o ciclo de trabalho da onda PWM gerada
PR2 = 100; // Defina o tempo de ciclo para 100 para variar o ciclo de trabalho de 0-100
Para simplificar, estou usando PR2 = 100 fazendo CCPR1L = 80; O ciclo de trabalho de 80% pode ser alcançado.
Etapa 5: configurar o módulo CCPR1l
Como PR2 = 100, CCPR1l pode ser configurado em qualquer lugar entre 0-100 para obter o ciclo de trabalho desejado.
Etapa 6: Escreva o esboço em você MPLAB X IDE o código é fornecido abaixo

#incluir
void delay (int a) // função para gerar atraso {
para (int i = 0; i <a; i ++)
{
para (int j = 0; j <144; j ++);
}
}
void main ()
{TRISC = 0; // Limpar este bit tornará PORTC como saída.
CCP1CON = 0x0F; // configurando o registro CCP1CON para o modo PWM
T2CON = 0x04; // habilita T2CON sem configuração de pré-escala e pós-escala.
PR2 = 100; // Defina o tempo de ciclo para 100 para variar o ciclo de trabalho de 0-100
enquanto (1) {
CCPR1L = 75; // gerou 75% de atraso do ciclo de trabalho (1);
}
}
Também fiz uma pequena modificação no código para que a frequência da onda PWM gerada
Este é um código simulado em proteus e a onda PWM de saída é mostrada abaixo.
Obrigado
Recomendado:
Faça você mesmo um circuito NE555 para gerar onda senoidal: 6 etapas

Faça você mesmo um circuito NE555 para gerar uma onda senoidal: Este tutorial ensina como fazer um circuito NE555 para gerar uma onda senoidal. Estes kits DIY acessíveis são muito úteis para você entender como os capacitores podem trabalhar com resistores para controlar o tempo de carga e descarga que gera
Braço robótico baseado em microcontrolador PIC: 6 etapas (com imagens)

Braço robótico baseado em microcontrolador PIC: da linha de montagem das indústrias de fabricação de automóveis aos robôs de telecirurgia no espaço, os braços robóticos podem ser encontrados em todos os lugares. Os mecanismos desses robôs são semelhantes aos de um ser humano, que podem ser programados para funções semelhantes e aumentar
Sistema de placa de desenvolvimento de microcontrolador PIC: 3 etapas

Sistema de placa de desenvolvimento de microcontrolador PIC: Este projeto é para o design e uso de uma ferramenta de desenvolvimento de PIC que é flexível para se adequar a uma ampla gama de projetos eletrônicos baseados em PIC. Muitas vezes é mais fácil desenvolver projetos de microcontrolador com o uso de ferramentas de desenvolvimento; que permitem com base no usuário
Configuração de bits de fusível do microcontrolador AVR. Criando e enviando na memória flash do microcontrolador o programa de LED piscando: 5 etapas

Configuração de bits de fusível do microcontrolador AVR. Criando e Carregando na Memória Flash do Microcontrolador o Programa de LED Piscando .: Neste caso iremos criar um programa simples em código C e gravá-lo na memória do microcontrolador. Vamos escrever nosso próprio programa e compilar o arquivo hex, usando o Atmel Studio como plataforma de desenvolvimento integrada. Vamos configurar o fusível bi
Skate com microcontrolador PIC e LEDs: 8 etapas (com fotos)

Skate com microcontrolador PIC e LEDs: O que você ganha quando um engenheiro elétrico constrói um skate do zero para o presente de Natal de uma criança de 13 anos? Você ganha um skate com oito LEDs brancos (faróis), oito LEDs vermelhos (luzes traseiras), todos controlados por microntrolador PIC! E eu mig