Ir ao conteúdo
  • Cadastre-se

mariorafael02

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

0
  1. aqui tem os arquivos( codigo e o circuito no proteus). Projeto_PWM.rar
  2. entendi obrigado @Marsil arrumei os ifs e whiles, porém mesmo assim tem algo na logica que não esta funcionando pois ainda não consigo fazer que a variavel "sentido" mude de valor com o apertar do push button, acho que estou usando o comando errado ou errando a ordem da logica. #define botao_incremento Portd.f0#define botao_decremento Portd.f1#define botao_stop Portd.f2#define botao_inverte Portd.f4unsigned char ciclo_1, ciclo_2;unsigned char sentido , stop ;void Config() { sentido =0; trisd = 255; // configura todos os ports do trisc como entrada trisb = 0; // configura todos os ports do trisb como saida trisc = 0; // configura todos os ports do trisc como saida portd = 0; portc = 0; portb = 0; PWM1_Init(5000); // Initialize PWM1 module at 5KHz PWM2_Init(5000); // Initialize PWM2 module at 5KHz }void main(){ Config(); PWM1_Start(); PWM2_Start(); { if (stop == 1) { portb.f0 = 1; if (sentido == 0) { PWM1_Set_Duty(125); PWM2_Set_Duty(0); }; if (sentido == 1) { PWM2_Set_Duty(125); PWM1_Set_Duty(0); }; if (botao_inverte ==1) { sentido=0; do{ sentido++; portc=~portc; } while(botao_inverte ==1); delay_ms(10); } // Endless loop if (stop == 0) portb.f0 =0; } if (botao_stop ==1) { stop++; do{portb.f0=0;} while(botao_stop ==1); } }}
  3. opa tudo bem ? então estava lendo esse topico, pois estou com um problema mais ou menos parecido com esse, tenho que fazer controle de um motor dc usando pwm do pic, tipo controlar velocidade e sentido do motor ligar e desligar. tenho que utilizar o pic 18f4520 e o compilador mikroc, achei esse topico porém não estou conseguindo desenvolver não tenho muita pratica com programação e acho que estou errando em alguma logica, primeiro estava tentando fazer o motor ligar e desligar e iinverter seu sentido para depois fazer a parte de velocidade, porém não estou conseguindo. se alguem puder dar um help ficarei grato. unsigned char ciclo_1, ciclo_2;unsigned char sentido=0 , stop ;void Config() { trisd = 255; // configura todos os ports do trisc como entrada trisb = 0; // configura todos os ports do trisb como saida trisc = 0; // configura todos os ports do trisc como saida portd = 0; portc = 0; portb = 0; PWM1_Init(5000); // Initialize PWM1 module at 5KHz PWM1_Start(); PWM2_Init(5000); // Initialize PWM2 module at 5KHz PWM2_Start(); }void main(){ Config(); { if (stop == 1) { portb.f0 = 1; if (sentido == 0) { PWM1_Set_Duty(125); PWM2_Set_Duty(0); }; if (sentido == 1) { PWM2_Set_Duty(125); PWM1_Set_Duty(0); }; if (botao_inverte =1) { sentido ++ ; do{} while(botao_inverte =1); } } if (stop == 0) portb.f0 =0; if (botao_stop =1) { stop++; do{} while(botao_stop =1); } }}

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...