标题: STM32红外遥控控制风扇转速(L298N、直流电机、PWM输出、红外遥控) [打印本页]

作者: 荷听雨声荷听雨    时间: 2019-7-26 14:40
标题: STM32红外遥控控制风扇转速(L298N、直流电机、PWM输出、红外遥控)
此代码可用于STM32控制风扇转速(电机转速),加上无线红外控制系统之。

extern void PWM_IN1IN2(void);
extern void TIM3_PWM_Init();

int main(void)
{  
u8 key;
u16 led0pwmval=0;
u8 dir=1;
delay_init();       //延时函数初始化   
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
LED_Init();        //LED端口初始化  
Remote_Init();   //红外接收初始化
delay_init();       //延时函数初始化   
PWM_IN1IN2();       //使能初始化
TIM3_PWM_Init(899,0);  //不分频。PWM频率=72000000/900=80Khz  

while(1)
{
  key=Remote_Scan();
     
   switch(key)
   {
     case 162:   
     if(dir)led0pwmval=500;
     delay_ms(10);
     TIM_SetCompare2(TIM3,led0pwmval);
     GPIO_SetBits(GPIOA,GPIO_Pin_2);
     ;break;     //1
   
     case 98:
    {
     if(dir)led0pwmval=700;
    delay_ms(10);
    TIM_SetCompare2(TIM3,led0pwmval);
    GPIO_SetBits(GPIOA,GPIO_Pin_2);         
    }
    ;break;  //2  
     
     case 226:
     if(dir)led0pwmval=899;
     delay_ms(10);
     TIM_SetCompare2(TIM3,led0pwmval);
     GPIO_SetBits(GPIOA,GPIO_Pin_2)
      ;break;  //3   
   
     case 34: GPIO_ResetBits(GPIOA,GPIO_Pin_2);
     delay_ms(10);
     GPIO_ResetBits(GPIOA,GPIO_Pin_3);
     GPIO_SetBits(GPIOB,GPIO_Pin_5);
     GPIO_SetBits(GPIOE,GPIO_Pin_5);
     ;break;  //4
   }
  }
}

全部程序51hei下载地址:
红外遥控控制风扇速度.7z (208.33 KB, 下载次数: 79)


作者: admin    时间: 2019-7-27 00:42
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1