您现在的位置是:首页 > 手机 > 正文
使用LM35和ATTiny13控制风扇的方法
发布时间:2022-06-06 15:29:48来源:
大家好,小科来为大家解答以上问题。使用LM35和ATTiny13控制风扇的方法这个很多人还不知道,现在让我们一起来看看吧!
解答:
1、 适当散热是当今电子产品的基本法则。电子元件的最佳工作温度为25度(标准室温)。一些商用设备中的散热没有正确完成,会影响设备的寿命和性能。因此,嵌入自动冷却风扇的紧凑控制器板将是有用的。此外,它还可以用来保护你自己设计的电路及其功率元件,如稳压器、MOSFET、功率晶体管等。
2、 之前,我已经介绍了控制冷却风扇的电路,但我的目标是尽可能简单,不使用任何微控制器。因此,该设备是风扇的简单开/关开关,取决于定义的温度阈值。这次我决定设计一个完整的更专业的电路,用LM35温度传感器和ATTiny13微控制器控制大部分标准风扇(25KHzPWM)。
3、 我用的是SMD元器件,PCB板很紧凑。它可以控制一个或多个并联的标准3线或4线风扇,如CPU风扇。此外,继电器还可用于保护目标设备/组件免于过热。视觉/听觉警告(闪烁的LED和蜂鸣器)也会通知用户。
4、 为了设计原理图和PCB,我用了AltiumDesigner22和SamacSys组件库(Altium插件)。要获得高质量的PCB板,您可以将Gerbers发送到PCBWay,并使用componentsearchengine.com购买原始元件。我最初在一块面包板上测试电路。我用SiglentSDM3045X万用表精确检查电压,用siglentsd1104x-e示波器检查PWM脉冲的形状、占空比和频率。
5、 规范
6、 电源:12v直流电(见正文)
7、 负载过温保护:是(60度以上)
8、 PWM频率:25KHz
9、 风扇电压:12v直流
10、 有效温度阈值:25C至60C
11、 过热警告:是(闪烁的LED和蜂鸣器)
12、 电路分析
13、 图1-1-PWM冷却风扇控制器设备的示意图
14、 图1显示了PWM冷却风扇控制装置的示意图。电路的核心是ATtiny13微控制器[1]。它读取温度值,并决定如何处理风扇、继电器和蜂鸣器。
15、 根据ATtiny13数据表:“ATtiny13是一款基于AVR增强型RISC架构的低功耗CMOS8位微控制器。通过在单个时钟周期内执行强大的指令,ATtiny13实现了接近1兆位/兆赫的吞吐量,使系统设计人员能够优化功耗和处理速度。”
16、 我已经将IC1的时钟源配置为9.6MHz,内部。对于我们的应用,不使用外部时钟源(如晶振)就足够了。R1是reset引脚的上拉电阻,用于防止MCU意外复位。C2和C3是去耦电容,用来降低5V电源的噪声。
17、 电源
18、 电源的主要组件是REG1,它是一个78L05稳压器[2]。我为这个调节器选择了SO-8封装。P5是一个两针插头XH连接器,为控制板和风扇供电。电源电压(12V)的电流取决于连接的风扇数量,否则5V电源轨的电流消耗非常低。R7和C7在输入端构建一个低通RC滤波器,以将输入噪声降至最低,但RC滤波器上的压降对调节器的工作几乎没有影响。D3是0805绿色LED,用来显示正确的电源。R8将电流限制在D3。C5和C7用于降低输出电压噪声。
19、 警告
20、 该部分由R5、R6、P4和D2组成。D2是一个0805红色发光二极管,过热时会闪烁。R5限制D2电流。P4是一个2针XH公接头,用于连接5V蜂鸣器。R6限制蜂鸣器的电流。
21、 继电器
22、 这部分的部件是Q1、D1、R4、C4、K1和P3。K1是一个12V-10A的继电器,用于在过热时关闭负载。它是常闭的(NC),这意味着负载是开路的。D1保护Q1免受继电器电感反向电流的影响,C4抑制电流尖峰。Q1是一个2N7002[3]MOSFET开关继电器。R4用于拉下Q1的门销,以避免不必要的触发。
23、 LM35温度传感器
24、 P1是一个3针阳XH连接器,用于连接LM35传感器到电路板。你应该使用散热膏在散热器上安装LM35,并使用短电线将传感器连接到电路板。C1是一个去耦电容,用于降低噪声。
25、 AVRISP
26、 ISP是一个5针插头,用于对板载微控制器进行编程。你可以用任何你喜欢的编程器,比如廉价的USBasp编程器或者类似的编程器。
27、 12V风扇
28、 P2是一个3针XH公连接器,用于将风扇连接到电路板。Q2用于将PWM脉冲传输到风扇的控制引脚。R2是一个10K上拉电阻,可以将5VPWM信号电平转换为12V。R3是一个下拉电阻,用于避免不必要的Q3触发。
29、
30、 图2-一个英特尔CPU风扇,它足够便宜,可用于冷却
31、 PCB布局
32、 图3显示了设计的PCB布局。它是一个两层PCB板,除了继电器和连接器外,其他组件都是SMD。最小的封装尺寸是0805,焊接组件应该没有任何问题,尽管您可以订购它完全组装。
33、
34、 图3-PWM冷却风扇控制电路的PCB布局
35、 当我决定为这个项目设计原理图和PCB时,我意识到我的元件库存储中没有Q1、Q2、REG1和IC1的元件库。因此,像往常一样,我选择了IPC级SamacSys组件库,并使用免费的SamacSys工具和服务安装了缺少的库(原理图符号、PCB封装、3D模型)。导入库有两种方法:您可以访问componentsearchengine.com并手动下载和导入库,或者您可以使用SamacSysCAD插件并自动将库导入/安装到设计环境中。
36、 上图显示了所有支持的电子设计CAD软件。很明显,所有著名的球员都得到支持。我使用AltiumDesigner,所以我使用SamacSysAltium插件安装了缺少的库,如下图。
37、
38、 PCB板的3D视图和两个组装图
39、 微控制器的代码
40、 我使用ArduinoIDE编写和编译微控制器的代码。我在库管理器中安装了MicroCore[9],以便能够为ATtiny13编译代码。你可以考虑下面的代码:
41、 //Clockat9.6MHz
42、 #defineF_CPU9600000
43、 constintPWMPin=1; analog_pin_tPotPin=A3; constunsignedcharrelayPin=0,buzzerPin=4; unsignedintrawTemp=0,out=0; unsignedcharcounter=0;
44、 voidsetup() { analogReference(INTERNAL1V1); pinMode(PWMPin,OUTPUT); pinMode(relayPin,OUTPUT); pinMode(buzzerPin,OUTPUT); digitalWrite(relayPin,0); digitalWrite(buzzerPin,0); //PhaseCorrectPWMMode,noPrescaler //PWMonPin1(PB1),Pin0(PB0)disabled //9.6MHz/192/2=25Khz TCCR0A=_BV(COM0B1)|_BV(WGM00); TCCR0B=_BV(WGM02)|_BV(CS00); //SetTOPandinitializedutycycletozero(0) OCR0A=192;//TOP-DONOTCHANGE,SETSPWMPULSERATE OCR0B=192;//dutycycleforPin1(PB1) }
45、 voidloop() { rawTemp=analogRead(PotPin)+rawTemp; counter++; if(counter==15){ rawTemp=rawTemp/15; if(rawTemp<232){ OCR0B=192; }else{ out=map(rawTemp,232,558,192,0); OCR0B=out; } if(rawTemp>560) { emergency_OFF(); } counter=0; rawTemp=0; } _delay_ms(25); }
46、 voidemergency_OFF(){ while(1){ digitalWrite(relayPin,1); digitalWrite(buzzerPin,1); _delay_ms(250); digitalWrite(buzzerPin,0); _delay_ms(250); } }
47、 我已将ADC参考电压定义为1.1V内部。这意味着对于1100mV的输入电压,ADC的最大值为1023。LM35温度传感器25度输出电压为250mV,60度输出电压为600mV。因此,它非常适合ADC输入范围,最高110度,无需任何硬件修改。
48、 要更改阈值,您应该修改out=map(rawTemp,232,558,192,0),例如,将温度上限阈值从60度增加到70度。
49、 要安装MicroCore,您应该在ArduinoIDE的首选项部分的AdditionalBoardsManagerURLs中插入此URL:
50、 https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
51、 图7显示了ArduinoIDE的这一部分。
52、
53、 图7-附加板管理器URL,ArduinoIDE首选项部分
54、 然后你应该去工具菜单和BoardsManager并安装MicroCore。然后您将看到已安装的板,如图8所示。
55、
56、 图8-安装了MicroCore库以支持ATtiny13MCU
57、 要生成HEX文件并对MCU进行编程,您应该转到Sketch菜单并按ExportCompiledBinary。图9显示了该过程的图片。
58、
59、 图9-在ArduinoIDE中生成HEX文件
60、 然后只需将您的编程器连接到PCB板的ISP接头并编程MCU。熔丝位应在9.6MHz内部时钟上设置,没有时钟分频。
61、 测试
62、 在设计原理图和PCB之前,我在面包板上测试了电路。因此,您可以确保一切正常。图10显示了FAN控制引脚的PWM信号。我使用SiglentSDS1104X-E示波器来捕获信号。
63、
64、 图10-25KHzPWM信号至风扇(SilentSDS1104X-E)
65、 材料清单
66、 图11显示了该项目的材料清单和零件编号。
67、
68、 图11-PWMCooling-FAN控制电路的物料清单
本文到此结束,希望对大家有所帮助。
标签:
猜你喜欢
最新文章
- 联想服务器官网首页
- dell官网商城
- 联想驱动下载
- 苹果电脑适合什么人用
- 谷歌Pixel6line可以同时使用面部和指纹解锁
- 笔记本散热性能排行榜
- Zimmer Biomet 首次推出 WalkAI™ 人工智能模型以预测术后恢复进度
- 三星Galaxy A33和Galaxy A73智能手机获得了Bixby Routines功能
- 戴尔笔记本电脑哪款好
- Netflix已确认广告何时到达平台
- 5000预算买什么游戏笔记本
- 联想电脑型号图片大全
- EA 和 DICE 推出了战地 2042更新 1.2
- 一体机电脑好还是台式电脑好
- 笔记本电脑标志logo大全
- 联想笔记本商务哪款好
- 戴尔电脑回收官网
- 电脑报价网站
- 戴尔全国售后服务网点
- 联想zuk官网
- thinkpad t450
- 移动硬盘无法读取怎么修复
- 惠普打印机维修上门
- 计算机配置清单及价格