数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 2351|回复: 10

[家电] 也改风扇为直流电机,单片机驱动

[复制链接]
发表于 2022-10-3 13:13:23 | 显示全部楼层 |阅读模式
风扇是2016年买的康佳KF-40L02,额定功率60W。当时也就六十多元买的,中间还换过一次二手电机,没坚持一年在去年夏末的时候电机又废了。今年遂决定改直流电机,不想用店家现成的驱动板,还是想自己动手用单片机写程序驱动。改机在六月份就完成了,到现在才发帖,还是因为一个字“懒”~

直流电机型号:Nidec 48F704RD90

电机接线方式
需要注意的是这颗电机的调速方式是调整频率的范围(50~490Hz)来调速的,而有的电机是通过调节占空比来调速的。
电源:也是之前从坛友处购买备用的 “超小体积,大电流 19V,60W电源裸板”,配这个电机挺合适

电路图 & 电路板:

19V电压直接供电机电源正极,并通过电源芯片AX3120转成5V,以及5V 再通过AX1007转为3.3V供单片机。
原本以为通过MOS管控制电机的正极通断,可以控制电机的启动/停止,实际打板回来后验证发现不行,经过试验要控制PWM的通断才能实现电机的启动/停止,板子不想再改,就将PWM线引出来接到风扇的琴键开关上,1、2、3档并联起来,这样按任意一键风扇启动,按0键风扇停止。
程序:
  1. #include "delay.h"
  2. #include "led.h"
  3. #include "pwm.h"
  4. #include "exti.h"
  5. #include "ec11.h"
  6. #include "key.h"
  7. #include "ST7565.h"
  8. #include "sys.h"

  9. extern u16 EC11_value;

  10. int main(void)
  11. {
  12.         u8                 t=0;
  13.          
  14.         delay_init();                    //延时函数初始化
  15.         F_CRL_Init();
  16.         BL_CRL_Init();
  17.         EXTIX_Init();
  18.         TIM2_PWM_Init(179,1000);        //分频。PWM频率=72000/(179+1)=400hz
  19.         EXTI_KEY_Config();         
  20.         LCD_Init();
  21.        
  22.         while(1)
  23.         {                       
  24.                 if(t%10==0)                        //每100ms读取一次
  25.                 {                               
  26.                         /* 显示档位 */
  27.                         if(EC11_value<10)
  28.                         {
  29.                                 LCD_WriteChar_8x16(56,3,48);                                        //显示档位十位数字       
  30.                                 LCD_WriteChar_8x16(64,3,EC11_value%10+48);        //显示档位个位数字       
  31.                         }
  32.                        
  33.                         else
  34.                         {
  35.                                 LCD_WriteChar_8x16(56,3,EC11_value/10+48);        //显示档位十位数字
  36.                                 LCD_WriteChar_8x16(64,3,EC11_value%10+48);        //显示档位个位数字       
  37.                         }
  38.                        
  39.                         /* PWM 输出 */
  40.                         TIM2->ARR=720-(EC11_value-1)*20;
  41.                         TIM_SetCompare2(TIM2,360-(EC11_value-1)*10);        //设置PWM 输出(TIM2_CH1)                       
  42.                 }                                  
  43.                  delay_ms(10);
  44.                 t++;
  45.                 if(t==20) t=0;
  46.         }
  47. }
复制代码

只是实现了最基本的功能:
调速:通过编码器更改PWM 的频率范围,调速放了30个档位,基本是无级调速
显示:一个LCD屏显示调速档位,LCD背光通过编码器的Key键控制开启或关闭
板子上有预留了DHT11 和 Flash 的位置,都懒得弄了



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 2家元 +20 收起 理由
hongo + 10 原創內容
jf201006 + 10 謝謝分享

查看全部打赏

发表于 2022-10-3 14:37:01 | 显示全部楼层
50-1K的PWM的话,用智能灯改一个刚好,刚好是输出1K的PWM
回复 支持 反对

使用道具 举报

发表于 2022-10-3 16:05:29 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2022-10-3 16:21:29 | 显示全部楼层
电机的启动停止也可以靠急停线来进行吧
回复 支持 反对

使用道具 举报

发表于 2022-10-3 16:58:51 来自手机浏览器 | 显示全部楼层
自己的设计,不错
回复 支持 反对

使用道具 举报

发表于 2022-10-3 19:16:51 | 显示全部楼层
支持自己设计。群策群力会更好
回复 支持 反对

使用道具 举报

发表于 2022-10-3 20:28:41 | 显示全部楼层
看坛友改动要改主轴,那是大工程我不太想动手了,单片机做个控制倒是小事,普通STC8的sop8就不错,速度很快产品稳定也便宜得很.
回复 支持 反对

使用道具 举报

发表于 2022-10-4 08:53:19 | 显示全部楼层
直流无刷风扇用单片机调速是最佳方式!
回复 支持 反对

使用道具 举报

发表于 2022-10-4 09:45:16 | 显示全部楼层
搞到单片机了都没上遥控?
回复 支持 反对

使用道具 举报

发表于 2022-10-4 10:04:59 | 显示全部楼层
有点杀鸡用牛刀了吧
回复 支持 反对

使用道具 举报

发表于 2022-10-5 21:03:44 来自手机浏览器 | 显示全部楼层
二十多块能买到的遥控板子不用那样折腾
回复 支持 反对

使用道具 举报

发表于 2023-5-22 15:30:18 | 显示全部楼层
这电机用 了怎么样好用吗
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-22 19:43 , Processed in 0.124801 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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