【BUPT】基于arduino的温控风扇
Sierra-X:
代码
double analogVotage; //模拟电压值
double temp; //温度
unsigned int dutyCycle; //占空比
unsigned int tempMin = 25; //零速温度,设为串口观察到的环境温度
unsigned int tempMax = 35; //满速温度,设为串口观察到的手握元件温度
void setup() {
Serial.begin(115200); //设置串口波特率
analogReference(INTERNAL); //调用板载1.1V基准源
}
void loop() {
analogVotage = 1.1*(float)analogRead(A3)/1024; //把ADC读取值换算成电压
temp = 100*analogVotage; //电压换算成温度
if (temp < tempMin){
dutyCycle = 0;
}
else if (temp < tempMax){
dutyCycle = (temp-tempMin)*255/(tempMax-tempMin);
}
else {
dutyCycle = 255;
}
analogWrite(10,dutyCycle); //产生PWM
Serial.print("Temp: "); Serial.print(temp);
Serial.print(" Degrees Duty cycle: ");
Serial.println(dutyCycle);
delay(100); //等待0.1秒,控制刷新速度
}
【回复】求求原理图,我真的想研究这些东西[星星眼][星星眼][星星眼]
【回复】回复 @MERCURIO水星 :动态没有呢
栗子的小恐龙:
void setup( ) {
Serial.begin(115200); //波特率配置串口通讯
analogReference(INTERNAL); //调用板载1.1V基准源
}
void loop( ) {
analogVotage = 1.1*(float)analogRead(A3)/1023;
temp = 100*analogVotage; //电压换算成温度
if (temp <= tempMin)
dutyCycle = 0;
else if (temp < tempMax)
dutyCycle = (temp-tempMin)*255/(tempMax-tempMin);
else
dutyCycle = 255;
analogWrite(10, dutyCycle); //产生PWM,控制电机转速
Serial.print("Temp: "); Serial.print(temp);
Serial.print(" Degrees Duty cycle: ");
Serial.println(dutyCycle);
delay(100); // 控制刷新速度
}
积极向上叭少女:
请问那个右下角那个黑色的小块是什么吖
热风循环d:
我需要温度、蓝牙、遥控器、人体感应、显示器[脱单doge]五个模块来控制风扇,弱小是我是一点都不会啊[笑哭]
大鱼-飞鸟:
我用的WiFi板 现在能把温湿度上传到onenet平台 怎么做到温度控制风扇转起来[笑哭] 我看了看代码没太明白[笑哭]
哈哈噜啦啦噜啦4675:
大佬!可以求一个电路图和代码嘛(●°u°●) 」