基于Arduino的温控风扇
概述
基于Arduino的温控风扇系统,经DS18B20温度采集,将数据传送到Arduino,通过PWM调节占空比进而控制电机转速,经过驱动电路驱动电机,由电机的计数模块得到电机转速并用LCD1602显示。
设计方案
高电平时电压为U,占空比为 ,则单个周期内平均电压为 ,所以占空比越大,直流电机转速越快。所用直流电机转一圈输出41个脉冲,设一个脉冲的频率为fHz,则电机转速为:v=f/41*60 r/min。
硬件设计
温度采集电路:在此设计中将DS18B20接在Arduino的10号脚上实现温度的采集。
电机计数模块:通过电机发射脚和接收脚将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。将信号反馈给Arduino单片机
驱动电机模块:本设计由Arduino的9口输出PWM脉冲,通过8550驱动直流电机,以实现温控风扇转速的调节。当环境温度升高时,占空比变大,因此转速变快,温度减小时,转速变慢,由于8550时低通的,编程时需要注意。
软件设计
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#include <Servo.h>
#define ONE_WIRE_BUS 10//
LiquidCrystal lcd(12, 11, 7, 6, 5, 4);// 初始连接在单总线上的单总线设备
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
Servo myservo; // 定义舵机对象,最多八个
double x;//温度传感器传入值
int Speed;
int Speeds;
int speedss;
unsigned long period;
unsigned char flag=0;
int M=3;
void setup() {pinMode(9,OUTPUT);pinMode(3,INPUT);Serial.begin(9600); attachInterrupt(0, freqDetect, RISING);Serial.begin(9600);Serial.println("Dallas Temperature IC Control Library Demo");sensors.begin();lcd.begin(16, 2);
}void loop() {//获取温度sensors.requestTemperatures();Serial.print("Temperature for the device 1 (index 0) is: ");Serial.println(sensors.getTempCByIndex(0));delay(1000); lcd.setCursor(0, 0);lcd.print(sensors.getTempCByIndex(0));
//控制转速x=1024/10*(sensors.getTempCByIndex(0)-25);//温度从25到35speedss= map(x, 0, 1023, 0, 180);Speeds=180-speedss;analogWrite(9,Speeds);
// 测转速并显示
if(1==flag){noInterrupts();flag=0;Speed=60000000/(41*period);Serial.println(Speed);Serial.print(" r/min");interrupts();delay(1000);lcd.setCursor(0, 1);lcd.print(" ");lcd.setCursor(0, 1);lcd.print( Speed);delay(1000);}
}
//测周期
void freqDetect()
{static unsigned long lastTime;period = micros()-lastTime;flag=1;lastTime = micros();
}
结果
v=411/41*60=601 r/min
基于Arduino的温控风扇相关推荐
- 【毕设狗】【单片机毕业设计】基于单片机的温控风扇的设计–仿真设计
实物链接: 基于单片机的温控风扇的设计-实物设计 软件安装: Keil:点击下载 Proteus:点击下载 AD:点击下载 Visio:点击下载 设计简介: 本设计是基于单片机的温控风扇设计,主要实现 ...
- 基于单片机的温控风扇
设计简介: 本设计是基于单片机的温控风扇,主要实现以下功能: 可通过LCD1602显示温度和档位: 可通过按键调整三档温度和档位: 可通过按键切换模式. 标签:51单片机.LCD1602.MX1508 ...
- 【电路】基于单片机智能睡眠枕系统设计-基于单片机音乐喷泉制作设计-基于单片机智能温控风扇调速系统设计-基于单片机智能自动循迹小车控制系统设计-基于数字电路的4人投票系统设计(仿真,报告)毕设课设资料
1620基于单片机智能睡眠枕系统设计-文档+PPT+PCB图+原理图+源码 智能睡眠枕主要由lcd屏幕.蓝牙.压力传感器.蜂鸣器.单片机等等组成,用户可通过四个独立按键进行操控(四个按键从左至右为1. ...
- 23、基于51单片机温控风扇红外遥控智能温度控制系统设计
毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.Proteus仿真 七.程序源码 八.资料包括 摘要 本设计为一种温控风 ...
- 基于STM32的温控风扇的设计程序
这周末有空,自己完成一个用STM32开发板加上一个电脑散热风扇,以及DS18B0完成了一温控和手动的风扇.主要功能是:1.自动模式,利用温度控制风扇的转速以及风扇的开关: 2.手动模式,通过按键控制风 ...
- 基于数字电路交通灯信号灯控制系统设计-基于单片机病房温度监测与呼叫系统设计-基于STM32的无线蓝牙心电监护仪系统设计-基于STM32的智能蓝牙温控风扇控制设计-基于STM32的智能温室控制系统设计
1617基于数字电路交通灯信号灯控制系统设计(仿真电路,论文报告) 摘 要:交通灯控制系统在城市交通控制中发挥着重要的作用,本次课程设计就是以城市交通灯控制系统为背景的,主要通过运用学过的数字电路 ...
- 基于STM32的智能温室控制系统仿真电路设计(温控补光)-基于STM32的智能蓝牙温控风扇控制系统设计-基于STM32的无线蓝牙心电监护仪系统设计【毕设课设分享】
1609 基于STM32的智能蓝牙温控风扇控制系统设计-毕设课设 1.LCD1602液晶显示当前温度,温度上下限值,风扇等级,自动手动模式: 2.设置有4个按键,按键1可以设置自动和手动2种模式切换: ...
- 基于stc89c51单片机的温控风扇(程序代码+原理图)
基于stc89c51单片机的温控风扇(程序代码+原理图) 自动模式下,通过读取ds18b20的温度,并且通过红外人体感应,判断是否有人,如果有人就智能自动设置风扇的pwm输出,达到智能调温的作用,如果 ...
- 基于Blinker ESP8266 远程电压电流、功率计、温湿度计、ADC接口测温、温控风扇、低电压保护、低压报警功能。用来监测我的太阳能充电。SSD1306可轮番显示电压信息和温度信息。APP图表
ESP8266系列文章目录 目录 ESP8266系列文章目录 经过不断的努力,处女之作终于做出来了.用的Arduino 经过一段时间不断熟练了,做了一些更新:2022.10.30 可以直接主页下载 ...
最新文章
- #define WIN32_LEAN_AND_MEAN 的作用
- 你的机器人女友到了,请签收
- apache+tomcat​现在我们实现session共享
- 使用VC++2015 实现XP按钮效果
- 深度linux安装双,Deepin 20正式发布,新的外观和感觉,双内核安装
- 依赖注入底层反射原理_Spring中反射与反射的原理(转载)
- Java多线程精讲(非高并发-授课专用)附synchronized
- Java黑皮书课后题第4章:*4.17(一个月的天数)编写一个程序,提示用户输入一个年份和一个月份名称的前3个字母(第一个字母使用大写形式),显示该月中的天数。如果月份非法则显示出错信息
- ubuntu下部署mongodb以及设置允许远程连接
- HTTPS 能否避免流量劫持?
- java 如何捕获线程中的异常处理_如何捕获Java中另一个线程抛出的异常?
- extjs java 教程,JAVA开发工具 - 在IntelliJ IDEA下开发ExtJS应用指南
- android 存储空间监控,浅谈 Android 内存监控(中)
- python周报第十九周
- Jupyter notebook、JypterLab的本地安装与使用
- 软件测试-----经常问道的面试题目
- Matlab实现均值滤波
- html中div圆角效果,div+css实现圆角即网页上常用的圆角效果
- GD32 NAND U盘
- VCRedist.exe静默安装方法(转)