关于基于ATmega328 温控风扇的二三事-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4451|回复: 1

[未解决] 关于基于ATmega328 温控风扇的二三事

[复制链接]
发表于 2017-6-7 10:49 | 显示全部楼层 |阅读模式
求助大神们偶,该如何更改值,才能使得风扇每隔5摄氏度,加快转速。源程序如下。望大神们侠义相救

#include "RoSys.h"                   //调用 RoSys.h 函数
int fan =9;                          //风扇模块接口
Ro7SegmentDisplay Segment(PD1);     //数码管模块接口(拓展板)
int analogTemp = A0;                 //LM35 传感器接口
void setup(){
pinMode(fan, OUTPUT);             //设置接口为输出接口
Serial.begin(9600);                  //设置串口波特率为9600
}
void loop()
{
int value = analogRead(analogTemp);   //设置变量,读取数据
Serial.print(value);                  //发送数值
Serial.print(" Temp: ");
float celsius = value * (5.0 / 1024 * 100);//计算得到摄氏温度
Segment.display(celsius);
if(celsius>25){
analogWrite(fan, 100);              //PWM 调速开启风扇
}
else {
analogWrite(fan, 0);               //PWM 调速关闭风扇
}
delay(3000);
}


发表于 2017-6-7 12:30 | 显示全部楼层
最简单直观的就是多写几个 If 类似下面这样

if(celsius>55){
analogWrite(fan, 255);              //PWM 调速开启风扇
}
else {
if(celsius>45){
analogWrite(fan, 200);              //PWM 调速开启风扇
}
else {
if(celsius>40){
analogWrite(fan, 150);              //PWM 调速开启风扇
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 04:04 , Processed in 0.068518 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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