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来控制三极管的基极,射级直接接地。需要注意的是,在直流电机两端放一个二极管,用于在断电后,剩余能量的释放。

最终,其硬件连接如下图所示。

image

image

 

 

 

4. 实验原理

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

image

 

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上。在温度没有达到设定的阈值之前,风扇不转,温度超标以后,风扇工作。调试图片如下。

IMG_0575





 本文转自灵动生活博客园博客,原文链接:http://www.cnblogs.com/dearsj001/p/WindowsOnDevice_4.html,如需转载请自行联系原作者

相关文章
|
4月前
|
缓存 C# Windows
一款.NET开源的小巧、智能、免费的Windows内存清理工具 - WinMemoryCleaner
一款.NET开源的小巧、智能、免费的Windows内存清理工具 - WinMemoryCleaner
|
存储 Windows
Computer:Windows系统装机之一键U盘启动盘装系统制作图文教程之详细攻略
Computer:Windows系统装机之一键U盘启动盘装系统制作图文教程之详细攻略
Computer:Windows系统装机之一键U盘启动盘装系统制作图文教程之详细攻略
|
编译器 Linux Windows
NSIS安装包开发笔记(一):NSIS介绍、使用NSIS默认向导脚本制作Windows安装包
NSIS安装包开发笔记(一):NSIS介绍、使用NSIS默认向导脚本制作Windows安装包
NSIS安装包开发笔记(一):NSIS介绍、使用NSIS默认向导脚本制作Windows安装包
|
KVM Windows
OpenStack制作Windows 2008 KVM镜像
OpenStack制作Windows 2008 KVM镜像教程
465 0
|
Windows
如何制作 Windows 系统主题?
主题制作是一个系统性的大工程,除了有想法之外,你还要有非常强的动手能力。要会基础的 PS 制图抠图、脚本配置文件编写、音乐剪裁编辑等,这就已经 pass 掉很多人了。下面我简单的说明一下制作流程……
1779 0