1.png (531.67 KB, 下载次数: 206)

2014-9-19 19:19 上传

鉴于目前风扇的普及率还是很高的,很多家庭夏天都还是使用电风扇对人进行降温,而通常晚上过半夜后气温就会下降,在四川这个降温也是很明显的;上半夜由于气温较高,通常风扇风力都会开得比较大,后半夜随着温度的降低人就会受冷,很容易感冒;而目前通常的风扇是通过定时器来控制风扇,例如:本地通常晚上2点左右气温下降,那么就定个时间让风扇在那个时候就停止。这样的控制十分的不准确,假如气温依然过高就会把人热醒而有可能出现热感冒(病情更严重),如果气温骤降也有可能冷感冒。特别是有老人的家庭,吹过多的空调对老年人身体是不好的,通常的解决都是先开空调到一定温度,然后继续使用风扇对人体进行降温,这里也会出现上诉情况。基于以上因素产生了本项目的雏形根据环境温度进行预定方式对风扇的速度进行调节,目前项目已经进行了一段时间,现在确定的方案:结构如下图

213113s99nmp9dzml99ydy.png (42.45 KB, 下载次数: 110)

2014-11-25 09:03 上传

接线图:

1.jpg (37.58 KB, 下载次数: 163)

2014-9-20 12:40 上传

智能风扇控制器组成:arduino uno r3 主控制器、温度检测DS18B20、可控硅调速等组成。

其工作方式为:风扇打开到最大挡位-——将风扇插头接入智能风扇控制器——智能风扇控制器插入带电插座——根据按钮设定智能风扇控制器是否启动控制(1.不启动则控制器作为普通插座,在风扇面板上直接控制;2.启动控制器则根据预设定的方式对风扇进行控制)——控制器启动时会首先检环境温度然后按程序预设定方式控制可控硅调速器从而控制风扇风速——这里预设定一组基础数值用于控制(其数值为一组与温度一一对应的数值)——控制器外部设有一组按钮用于修正基础数值(其运行方式为,当系统自动控制风速时用户感觉有点冷,那么直接按控制器上的按键“太冷”“太热”,系统就会对风扇进行微调速,当用户确认最终速度时就会产生一个值,这个值就会进行存储,当温度升或者降时系统在寻找温度对应的调节量时就会把这个数值与原始数值进行特定耦合然后以新值对风扇进行控制)

目前使用的方案:arduino uno、DS18B20、伺服舵机、可控硅调速模块、

1.png (419.12 KB, 下载次数: 222)

2014-8-10 23:46 上传

2.png (490.3 KB, 下载次数: 208)

2014-8-10 23:46 上传

3.png (520.16 KB, 下载次数: 212)

2014-8-10 23:46 上传

4.png (578.1 KB, 下载次数: 213)

2014-8-10 23:46 上传

5.png (508.05 KB, 下载次数: 209)

2014-8-10 23:46 上传

6.png (510.51 KB, 下载次数: 213)

2014-8-10 23:46 上传

由于目前舵机与调速模块的电位器旋钮连接不好固定,只是测试了整个运行,并没有连接到风扇上测试,可控硅调速模块接到风扇上测试过,低速时风扇电机噪声挺大的,考虑是由于交流电机的原因,低速涡流电噪音~

下面是程序:

[mw_shl_code=c,true]//单总线库

#include

//DS8B20温度读取库

#include

//伺服舵机控制库

#include

// 定义DS18B20数据口连接arduino的2号IO上

#define ONE_WIRE_BUS 2

// 初始连接在单总线上的单总线设备

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

Servo myservo;  // 创建控制舵机0号

int pos = 0;    // 定义舵机位置整型变量

void setup(void)

{

// 设置串口通信波特率

Serial.begin(9600);

Serial.println("Dallas Temperature IC Control Library Demo");

// 初始库

sensors.begin();

myservo.attach(9);  // 定义0号舵机脉冲引脚

}

void loop(void)

{

Serial.print("Requesting temperatures...");

sensors.requestTemperatures(); // 发送命令获取温度

Serial.println("DONE");//提示完成

Serial.print("Temperature for the device 1 (index 0) is: ");//串口输出字符串

Serial.println(sensors.getTempCByIndex(0)); //串口输出温度值

//根据温度值计算舵机角度

//这里设定温度范围23~40度时控制舵机在0~180范围的角度内进行调节

//说一下这里舵机与可控硅调速器的电位器旋钮直接连接

//相当于机械隔离

//由于对强电没有控制经验比较虚火所以用了这个方案

//效果基本达到了

if(sensors.getTempCByIndex(0)>22)

{

//当温度大于22度时开始计算旋转角度

//这里设定到40度时就达到全速运行

pos=(int(sensors.getTempCByIndex(0))-22)*(180/18);

}

else{

pos=0;//如果温度小于23度则停止

}

myservo.write(pos);// 将计算的角度发送给舵机

Serial.print("speed: ");//串口输出speed字符串

Serial.println(pos);//串口输出角度

delay(60000);        //延时1分钟

}[/mw_shl_code]

所用到的库文件打包

ds18b20温度读取

DallasTemperature.zip

(17.99 KB, 下载次数: 197)

2014-8-10 23:51 上传

点击文件名下载附件

单总线

OneWire.zip

(14 KB, 下载次数: 136)

2014-8-10 23:51 上传

点击文件名下载附件

舵机

Servo.zip

(8.09 KB, 下载次数: 151)

2014-8-10 23:51 上传

点击文件名下载附件

arduino电风扇程序_【NO.7】智能风扇控制器-相关推荐

  1. arduino 停止程序_极路由1S OpenWrt开机自启程序及串口调试

    如何给openwrt添加启动项?首先在/etc/init.d中创建一个文件,在CRT终端中直接用vi命令即可,自行创建startCamera文件,如下图所示. vi编辑器中输入下图所示内容,START ...

  2. arduino电风扇程序_Arduino实验项目:温控电风扇

    这个实验是用Arduino控制电风扇的工作,当气温达到某一设定值它打开风扇为你送来凉风:气温下降以后就停止工作,避免你受凉.在实验中我们可以学会读取模拟量输入值的函数analogRead()使用方法. ...

  3. arduino 停止程序_建立Arduino机器人,第五部分:障碍规避

    欢迎阅读教程系列的第五篇文章,其中我正在构建一个基于遥控Arduino的车辆机器人. 这是我到目前为止发表的文章列表: 第一部分:硬件组件 第二部分:Arduino编程 第三部分:组装机器人 第四部分 ...

  4. 远程升级stm32程序_艾拉比智能成为意法半导体STM32战略合作伙伴

    艾拉比OTA作为ST的重要合作伙伴获得授牌. 以"聚智慧,创未来"为主题的2019年STM32峰会于4月26日-4月27日在深圳隆重举行.此次大会聚焦人工智能与计算.工业与安全.云 ...

  5. arduino 休眠 节能_优化arduino程序存储空间

    0x00 Abstract 我们一般在开发Arduino的程序时都是根据功能需求来编写代码,当经过测试后程序满足功能需求后就停止开发,剩下的就是只有在功能需求变更或代码中存在bug时才会再次动手修改代 ...

  6. 智能家居数据库设计_设计更智能的数据表

    智能家居数据库设计 重点 (Top highlight) Data tables are hard. There are many different ways to think about them ...

  7. 基于arduino uno 开发板制作的 智能书包项目

    基于arduino uno 开发板制作的智能书包,当时收短视频启发,集合自动售货机的代码和RC522 读卡模块代码结合制作,现基本功能可以实现 ,目前代码部分尚不稳定需要继续改进 //一个智能书包小发 ...

  8. 程序清单3.3_bases.c程序_《C Primer Plus》P37

    /* bases.c -- 以十进制.八进制.十六进制形式输出 100 */// bases.cpp : 定义控制台应用程序的入口点. // /*时间:2018年06月03日 23:23:06代码:程 ...

  9. arduino串口绘图_一起打造一款光驱迷你绘图仪

    今天我们要做的就是一台迷你CNC绘图仪! 本文用的的材料包括以下主要部件: 1. Arduino uno开发版一块 2. L293D扩展板一块 3. 舵机一只 4.废旧光驱两只 5. 导线若干 1. ...

  10. 微信小程序_基础组件学习02

    微信小程序_基础组件学习02 swiper组件 swiper是滑块容器,也就是手机端的轮播图. swiper组件有两部分组成swiper和swiper-item. swiper-item需要放在swi ...

最新文章

  1. 【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架。
  2. 无法启动python怎么办_解决python写的windows服务不能启动的问题
  3. Device eth0 does not seem to be present, delaying initialization.转载
  4. Pyinstall打包多个python脚本,包含DLL文件
  5. MySQL 关闭子表的外键约束检察
  6. Python 傅里叶分析
  7. 为何MAC的JDK/JRE大小这么小?
  8. Java学习笔记——正则表达式
  9. vlan未能连接服务器,PC单机局域网连接VLAN的方法
  10. 用pl.pojo.tester测试Pojo类,提高测试覆盖率
  11. android 删除指定短信,Android拦截短信并删除该条短信
  12. 添加用户-查看用户列表-禁止默认root登陆
  13. 手把手教你操作Tableau——真实公司数据分析项目实例(完整详细,小白也能学会)
  14. Windows性能监控perfmon工具的使用和性能指标的分析
  15. 批处理为win7桌面添加计算机图标,win7桌面图标不见了图文解决方案
  16. 【IDEA】 弹出Server's certificate is not trusted 解决方法
  17. 计算机谈音乐少年,听音乐起鸡皮疙瘩?你可能真的是天赋异禀的少年
  18. IE浏览器上不了网的原因
  19. VBA 关于for循环和变量的测试, for 循环的自变量i会停留在i+1,自变量会基于最新变化改变
  20. JDK1.8(jdk8)的下载与安装

热门文章

  1. FAT16 FAT32 NTFS exFAT ReFS
  2. 编写一个JSP页面,利用Scriptlet编写一段计算代码,要求用0做除数,并使用page指令将该错误信息显示在另一个JSP页面上,产生的错误信息为“错误,不能用0做除数.“
  3. HDU - 1728 逃离迷宫 【BFS】
  4. 修改mysql.sock路径_mysql错误-修改mysql.sock位置
  5. 黑猴子的家:SVN 服务端创建资料库
  6. 基于单片机的数字钟设计
  7. gopher对mysql的利用_gopher协议的攻击利用
  8. 点播和播放器下载需要的参数的区别(VideoId、AccessKeyId、AccessKeySecret、playKey、playauth)...
  9. 能否用计算机发短信,电脑发手机短信要怎么操作 用电脑发短信是免费的吗
  10. win10计算机图片,Win10使用系统自带的电子相册整理电脑中照片方法图解