PWM – GERANDO DE 0 A 5 VOLTS EM 2 CANAIS PARA CONTROLE DE APLICAÇÕES (COM PIC 12F675)

0

Gostaria de obter de 0-5 volts na saìda de um PIC, acionando um botão ‘UP’ para aumentar e um ‘DOWN’ para diminuir? Usando um PIC sem PWM, simulando por software? E com 2 canais?
Veja mais…

Veja o esquema abaixo:

Em determinados projetos, desejamos controlar uma ou mais cargas, usando alguns botões e gerando uma tensão PWM na saída. É o caso, quando desejamos controlar a rotação de um pequeno motor cc ou mesmo, a intensidade do brilho de uma lâmpada incadescente.
Lógicamente, a viabilidade desta idéia está ligada a sua finalidade única. Se tentarmos adicionar outras rotinas poderá comprometer os tempos do PWM ou ter de faze-lo com uma frequência muito baixa, o que não é interessante. Nesta montagem, com o oscilador interno operando a 4MHZ, conseguimos obter um frequência de PWM por volta de 40 hertz (já baixa). Se for optado por colocar externamente um cristal de 20 MHZ, poderemos melhorar para 200 Hertz, mas deveremos mudar na palavra de configuração para constar ‘_XTAL’ ao invés de ‘_INTRC_OSC_NOCLKOUT ‘.
Em determinados casos, para controlar certos circuitos, necessitamos uma corrente continua o mais pura possivel. Nesta situação, deveremos adicionar os capacitores de filtros após os resistores de saída. Em outras, necessitamos que tenha os tempos ‘on’ e ‘off’ presentes, como no caso do controles de motores e lampadas, pois chaveando a carga, obtemos menor perda de condução (o transistor drive não esquenta tanto).
Na realidade, a saida efetivamente não chega a zero volts na condição mínima, mas por volta de 5/256= 0,01953 volts ( arredondando = 0,2 volts). Na maioria das aplicações, isto não será problema. No arquivo ASM tem a opção de usar também o microcontrolador 12f629, bastando apenas comentar uma linha e descomentar a outra, compilando-se em seguida.

O ARQUIVO ASM

O programa começa com as configurações normais de entradas e saídas, desligando o comparador, ligando pull-ups e ao entrar no loop principal (main), começa testando as 4 chaves e após um delay, volta ao loop principal indefinidamente. Se houve uma chave acionada, irá incrementar/decrementar o registrador responsável pelo tempo de PWM de um canal ou de outro.
É a rotina de interrupção do Timer 0 que se responsabiliza em alterar as saídas correspondentes aos canais ‘A’ e ‘B’.
A operação foi dividida em 2 tempos: tempo ‘on’ e tempo ‘off’. Existe os flags ‘FONA’ E ‘FONB’ que, como um semáforo, controla que tempo está ativo. Ao término de cada tempo, ocorre a recarga do registrador do outro tempo, de forma contínua.
Antes de sair da rotina de interrupção, o timer 0 recebe uma nova carga, objetivando reduzir a frequência de operação do PWM.
Obs. Montagem apenas didática, sujeito a bugs não indentificados ainda, sendo montado e testado apenas em placa de protoboard. Está sendo fornecido o arquivo ASM, podendo ser alterado a vontade pelo hobista, segundo suas necessidades e opções.

Abaixo, temos uma sugestão de uso, controlando uma lâmpada incadescente de 12 volts no canal ‘A’ e um pequeno motor CC no canal ‘B’.

Abaixo vemos como fica a palavra de configuração do PIC, usando o WinPic800:

Segue abaixo o arquivo ASM:

PWM_2C_ASM

Segue abaixo o arquivo HEX:

PWM_2C_HEX

Curiosidades:
Busca de um céus mais seguros
O que aprendemos dos projetos da natureza?
Nostalgicos moinhos de vento!
A história da ‘cortiça’
Carros – no presente e no passado
O sistema de ‘spray’ do besouro
Ouvindo sons do espaço
Porque as estrelas são cintilantes?
Uma voz silenciosa que pode se ouvida

Outros assuntos:
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos
Ensine seus filhos bons principios com atividades de colorir
Como posso ter ânimo para exercitar
Como posso controlar meu peso?
Entrevista com um bioquímico
Adolescentes- O que fazer se estou sofrendo bullying?
Como evitar ferir com palavras?
Como tratar seu cônjuge com respeito?

Até o próximo artigo!!!

0

One comment

Comments are closed.