找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4112|回复: 1
收起左侧

STM32红外遥控控制风扇转速(L298N、直流电机、PWM输出、红外遥控)

[复制链接]
ID:420600 发表于 2019-7-26 14:40 | 显示全部楼层 |阅读模式
此代码可用于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)

回复

使用道具 举报

ID:1 发表于 2019-7-27 00:42 | 显示全部楼层
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表