Pesquisar neste blog

16/09/2020

PWM com PIC 16F628A

Código feito em CCS C Compiler


#include <16F628a.h>

#fuses intrc_io,nowdt,nomclr//configurando os fuses bits

#use delay(clock = 8M)

#use fast_io(a)

#use fast_io(b)

int valor; 

void main(void){

   set_tris_b(0x00);//todo port b como saída

   setup_ccp1(CCP_PWM);//setando o canal PWM

  //(corresponde pro escale: pode ser 1 ou 16 , carga do registrador que deixar o ciclo em 0 ,ciclo ativo: registrador ccpR1L)

   setup_timer_2(T2_DIV_BY_16,255,1);//função que configura o PWM

   

   while(true){

      for(valor = 0; valor < 255; valor++){

         set_pwm1_duty(valor);

         delay_ms(100);

      }

      

      for(valor = 255; valor > 1; valor--){

         set_pwm1_duty(valor);

         delay_ms(100);

      }

   

   }

}



Motor DC usando PWM com PIC 18F4550


Objetivo: Fazer um motor de corrente contínua que seja controlado sua velocidade.

Código feito em CCS C Compiler

#include <18f4550.h>
#device ADC = 8//configurando o canal analógico em 8 bits
#fuses intrc_io,nowdt,nomclr//configurando os fuses bits do PIC
#use delay(clock = 8MHz)
//diretivas das portas
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)

int canal;
 
void main(void){
   set_tris_c(0x00);//todo port c como saída
   set_tris_a(0xff);//todo port a como entrada
   setup_timer_2(T2_DIV_BY_16, 255, 1);//setando o timer 2
   setup_ccp1(CCP_PWM);//setando o canal PWM
   setup_oscillator(OSC_1MHZ|OSC_INTRC);//Configurando o oscilador interno em 1MHz
   setup_adc_ports(AN0);//setando o canal 0, canal analógico
   setup_adc(ADC_CLOCK_INTERNAL);//setando o clock interno para a conversão ad
   set_adc_channel(0);//função para setar o canal 0
   
   while(true){
      canal = read_adc();//capturando o valor do canal analógico
      delay_ms(50);
      set_pwm1_duty(canal);//coloca ao valor que foi setado
      
      if(input(pin_d0) == true){         
         set_adc_channel(1);
      }
      
      if(input(pin_e2) == true){
         set_adc_channel(0);
      }

   }
}

Software: Proteus versão 7.6