Windows on Device 项目实践 4 - 智能风扇制作
在前面的文章中,我们已经学习并且利用Intel Galileo开发板和Windows on Device制作了火焰报警器、感光灯和PWM调光灯。在这个项目中,我们来利用温度传感器和直流电机,完成一个简单的智能风扇的制作。
1. 温度传感器
LM35 是很常用且易用的温度传感器元件,在传统的Arduino项目中,只需要一个LM35元件和一个模拟接口就可以实现,难点在于算法上的将读取的模拟值转换为实际的温度。但是针对Galileo就不行,因为Galileo对噪声和波动更加敏感,需要额外添加电阻和滤波电容。详细请参考下面的硬件连接一节。
2. 直流电机
这里使用普通的5V供电的直流电机就可以,关键在于,Galileo的驱动能力有限,需要使用一个三极管来驱动直流电机。详细可以参考下面的硬件连接一节。
3. 元器件和硬件连接
这次实践项目需要使用的元器件有:
•温度传感器:LM35 一个
•5V直流电机:一个
•电阻:220欧姆、330欧姆各一个
•二极管:一个
•三极管:9013 一个
•连接线:若干
•面包板:一块
1)温度传感器的连接
LM35有三个引脚,分别是GND、Vout和Vs,连接地、Galileo的A0和5V引脚。这里需要在Vout输入和地之间加入一个220欧姆的电阻,同时需要在LM35电源输入的引脚附近加一个0.1uF的瓷片电容,用于滤除电源的干扰。
2)直流电机的连接
三极管9013的集电极上接直流电机,用Galileo的数字引脚11来控制三极管的基极,射级直接接地。需要注意的是,在直流电机两端放一个二极管,用于在断电后,剩余能量的释放。
最终,其硬件连接如下图所示。


4. 实验原理
Galileo的A0口不断采集温度,对返回值进行判断,如果超过一定范围,就开启直流电机。如果温度没有超过设定值,就关闭直流电机。其流程如下。

5. 源代码解析
#include "stdafx.h"
#include "arduino.h"
int _tmain(int argc, _TCHAR* argv[])
{
return RunArduinoSketch();
}
int MOTOR_PIN = 11; //定义数字接口11 控制直流电机
int TEMP_PIN = A0; //定义模拟接口0 连接LM35 温度传感器
void init_motor()
{
pinMode(MOTOR_PIN, OUTPUT);
analogWrite(MOTOR_PIN, 0);
}
void setup()
{
// TODO: Add your code here
init_motor(); // 初始化直流电机控制引脚
}
// the loop routine runs over and over again forever:
void loop()
{
// TODO: Add your code here
int val;//定义变量
int dat;//定义变量
val = analogRead(TEMP_PIN);// 读取传感器的模拟值并赋值给val
dat = (125 * val) >> 8;//温度计算公式
Log(L"Tep:");
Log(L"%d", dat);//显示dat 变量数值
Log(L"C\r\n");
if (dat > 21) //温度判断,根据实际情况设定
{
Log(L"Start DC Motor\r\n");
analogWrite(MOTOR_PIN, 100);
delay(3000);
}
else
{
Log(L"Stop DC Motor\r\n");
analogWrite(MOTOR_PIN, 0);
delay(3000);
}
}
6. 调试结果
启动Galileo,利用TelNet建立连接,然后点击调试。程序就会通过网口下载到Galileo上。在温度没有达到设定的阈值之前,风扇不转,温度超标以后,风扇工作。调试图片如下。

Windows on Device 项目实践 4 - 智能风扇制作的更多相关文章
- Windows on Device 项目实践 2 - 感光灯制作
在上一篇<Windows on Device 项目实践 1 - PWM调光灯制作>中,我们学习了如何利用Intel Galileo开发板和Windows on Device来设计并完成一个 ...
- Windows on Device 项目实践 3 - 火焰报警器制作
在前两篇<Windows on Device 项目实践 1 - PWM调光灯制作>和<Windows on Device 项目实践 2 - 感光灯制作>中,我们学习了如何利用I ...
- Windows on Device 项目实践 5 - 姿态控制灯制作
在前面几篇文章中,我们学习了如何利用Intel Galileo开发板和Windows on Device来设计并完成PWM调光灯.感光灯.火焰报警器和智能风扇的制作,涉及到了火焰传感器.DC直流电机. ...
- Windows on Device 项目实践 1 - PWM调光灯制作
在前一篇文章<Wintel物联网平台-Windows IoT新手入门指南>中,我们讲解了Windows on Device硬件准备和软件开发环境的搭建,以及Hello Blinky项目的演 ...
- Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)
转载:http://www.cnblogs.com/EasonJim/p/6295372.html Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践) 前提: 这一篇是继上一 ...
- 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理
[微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...
- Hangfire项目实践分享
Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...
- Windows平台分布式架构实践 - 负载均衡(下)
概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...
- Hangfire项目实践
Hangfire项目实践分享 Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget ...
随机推荐
- geotrellis使用(二十一)自动导入数据
目录 前言 整体介绍 前台界面 后台控制 总结 一.前言 之前Geotrellis数据导入集群采用的是命令行的方式,即通过命令行提交spark任务来ingest数据,待数据导入完毕再启动 ...
- 1Z0-053 争议题目解析706
1Z0-053 争议题目解析706 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 706.You execute the following command to set the ...
- 相克军_Oracle体系_随堂笔记007-PGA
实际工作中,Oracle中有两个很重要:Server Process 和 PGA. PGA内存作用和构成 1.PGA作用 2.PGA构成 1)private SQL area 2)Sess ...
- 移动端用js与jquery实时监听输入框值的改动
背景: 在一次移动端H5开发中,需要监听输入框值的实时变动. onchange事件肯定抛弃,因为只能失去焦点才触发. 而keyPress在Android可以触发,iOS不可以. 又不想用Android ...
- VC++6.0文件关联问题的解决方法
最近我的电脑*.c文件关联失败,无法实现双击*.c打开vc++6.0,感觉特别不爽. 在经过自己的琢磨研究后,终于找到了解决方法. 特此分享下,希望可以帮到遇到同样问题的你. 核心内容: 1.& ...
- Android 源码下载方法(Git 方式clone)
Android源码对于Android开发者来说,迟早有一天你会用到的,所以就记录一下,分享给读者,希望对读者有用 这里需要使用到Git相关知识,不清楚的可以先阅读,了解的可以跳过 Git-Tortoi ...
- Mybatis高级查询之关联查询
learn from:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps 关联查询 准备 关联结果查询(一对一) resul ...
- Ionic2学习笔记(9):访问本地设备
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5559927.html Ionic2提供了访问本地设备的方法,但是需要安装 ...
- IE6 IE7 ‘JSON’ 未定义
今天在调试javascript程序,在FireFox和Chrome没有问题,但是在IE中,一些可以,就会出现如标题的错误:‘JSON’ 未定义: 在IE6,IE7一定有此错误,以及IE能设置兼容性视图 ...
- windows对象模型分类