Windows on Device 项目实践 2 - 感光灯制作

在上一篇《Windows on Device 项目实践 1 - PWM调光灯制作》中,我们学习了如何利用Intel Galileo开发板和Windows on Device来设计并完成一个PWM调光灯的制作。该情况下,我们需要手动调节电位器,通过PWM波形来控制LED灯的亮度。在现在的智能家居系统设计中,很多设备都需要融入智能,即无需人为干预,就能够自动为我们服务。

在这个项目中,我们会使用光敏电阻,利用其感光特性,来设计并且制作一个感光灯。感光灯能够根据环境光的强度,自动调节LED灯的亮度。

1. 光敏电阻

光敏电阻器(photovaristor)又叫光感电阻,是利用半导体的光电效应制成的一种电阻,其电阻值随入射光的强弱而改变:入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。光敏电阻可广泛应用于各种光控电路,如对灯光的控制、调节等场合,也可用于光控开关。

2. 元器件和硬件连接

这次实践项目需要使用的元器件有:

  • 光敏电阻*1
  • 直插LED*1
  • 10KΩ直插电阻*1
  • 220Ω直插电阻*1
  • 面包板*1
  • 面包板跳线 若干

在本次制作中,光敏电阻是可以根据光强改变阻值的元件,自然也需要Galileo的模拟口读取模拟值了,因此可以借鉴PWM 接口实验,将电位计换做光敏电阻,实现当光强不同时LED 小灯的亮度的变化控制。连接的原理图和硬件图如下:

3. 源代码解析

在下面的源代码中,我们将模拟口读取的返回值除以4,原因是模拟输入analogRead()函数的返回值范围是0 到1023,而模拟输出analogWrite()函数的输出值范围是0 到255。

// Main.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "arduino.h"

int _tmain(int argc, _TCHAR* argv[])
{
    return RunArduinoSketch();
}

int potpin = 0;//定义模拟接口0 连接光敏电阻
int ledpin = 11;//定义数字接口11 输出PWM 调节LED 亮度
int val = 0;//定义变量val
void setup()
{
    pinMode(ledpin, OUTPUT);//定义数字接口11 为输出   
}
void loop()
{
    val = analogRead(potpin);//读取传感器的模拟值并赋值给val
    Log(L"val: %d\r\n", val);//显示val 变量数值
    analogWrite(ledpin, val/4);// 打开LED 并设置亮度(PWM 输出最大值255)
    delay(10);//延时0.01 秒
}

4. 调试结果

启动Galileo,利用TelNet建立连接,然后点击调试。程序就会通过网口下载到Galileo上。光敏电阻随着光强度的变化而改变其阻值,经过分压以后,模拟口0读取的值也会产生变化。我们可以尝试使用手来阻挡光敏电阻,使其阻值发生变化,从而达到调试的目的。

调试的视频链接如下,大家可以看到感光灯的效果:

时间: 2024-12-18 21:05:06

Windows on Device 项目实践 2 - 感光灯制作的相关文章

Windows on Device 项目实践 3 - 火焰报警器制作

在前两篇<Windows on Device 项目实践 1 - PWM调光灯制作>和<Windows on Device 项目实践 2 - 感光灯制作>中,我们学习了如何利用Intel Galileo开发板和Windows on Device来设计并完成PWM调光灯和感光灯的制作.在这个项目中,我们会使用火焰传感器和蜂鸣器,完成一个简单的火焰报警器的制作. 1.火焰传感器 火焰传感器外形和LED很像,(即红外接收三极管)是机器人专门用来搜寻火源的传感器,本传感器对火焰特别灵敏.火焰

Windows on Device 项目实践 5 - 姿态控制灯制作

在前面几篇文章中,我们学习了如何利用Intel Galileo开发板和Windows on Device来设计并完成PWM调光灯.感光灯.火焰报警器和智能风扇的制作,涉及到了火焰传感器.DC直流电机.温度传感器.光敏电阻等器件.在这个项目中,我们会使用滚珠开关和LED,完成一个简单的姿态控制灯的制作. 1.滚珠开关 滚珠开关利用开关中的小珠的滚动,制造与金属端子的触碰或改变光线行进的路线,就能产生导通或不导通的效果.滚珠开关目前已有许多不同类型的产品,包括角度感应开关.震动感应开关.离心力感应开

Windows on Device 项目实践 4 - 智能风扇制作

在前面的文章中,我们已经学习并且利用Intel Galileo开发板和Windows on Device制作了火焰报警器.感光灯和PWM调光灯.在这个项目中,我们来利用温度传感器和直流电机,完成一个简单的智能风扇的制作. 1. 温度传感器 LM35 是很常用且易用的温度传感器元件,在传统的Arduino项目中,只需要一个LM35元件和一个模拟接口就可以实现,难点在于算法上的将读取的模拟值转换为实际的温度.但是针对Galileo就不行,因为Galileo对噪声和波动更加敏感,需要额外添加电阻和滤波

Windows on Device 项目实践 1 - PWM调光

在前一篇文章<Wintel物联网平台-Windows IoT新手入门指南>中,我们讲解了Windows on Device硬件准备和软件开发环境的搭建,以及Hello Blinky项目的演示.在这篇文章开始,我们进入项目实践部分. 由于Windows on Device设计的时候以Galileo为硬件平台,所以其外设接口也是兼容了Arduino的标准.另外,其编程模式也是参考了Arduino中使用的Wiring Language. 1. PWM原理 Pulse Width Modulation

Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)

转载:http://www.cnblogs.com/EasonJim/p/6295372.html Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践) 前提: 这一篇是继上一篇http://www.cnblogs.com/EasonJim/p/6092938.html的真实项目实践. 思路和大致实现步骤请参照上一篇文章. 注意:这篇文章涉及到两台服务器:1为测试服务器.2为正式服务器.且,两台服务器都必须安装了jenkins. 注意2:这里所说的一键部署是指从测试服务器到

Hangfire项目实践

Hangfire项目实践分享 Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(Delayed jobs) 定时任务执行(Recurring jobs) 延续性任务执行(Continuations) 与quartz.net对比 Hangfire扩展 Hangfire Dashborad日志查看 Hangfire Dashborad授权 IOC容器之Au

Windows平台分布式架构实践 - 负载均衡(下)

概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效果,可以说还是非常的理想的.同时我们也收集到了不少的问题,比如说如何在这种分布式的架构下使用Session,NLB中有一台服务器挂掉了会导致对外暴露的地址无法访问,如果实现服务器之间的同步,如果更好的进行热修复等等,还有我们在上一篇中也提到了NLB所提供的功能是非常简单的,为了回答我们前面提到的问题

LVS (Linux Virtual Server)集群项目实践

LVS (LinuxVirtual Server)集群项目实践 实验目的:通过实验可以熟练规划和配置集群项目 实验环境:Red Hat Enterprise Linux Server release 6.4 实验前提:请确保实验前看过 LVS 中文站点 实验说明:本实验只是以实现负载均衡为目标,并没有考虑如共享存储等,这方面问题在以后的实验中 会添加. 实验步骤: 一.LVS 系统模型 二.LVS 调度算法 三.负载平衡方法 四.常用术语介绍 五.NAT 方式架设 六.DR方式架设 一.LVS

MVC项目实践,在三层架构下实现SportsStore-08,部署到IIS服务器

SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管理.图像上传......是不错的MVC实践项目,但该项目不是放在多层框架下开发的,离真实项目还有一段距离.本系列将尝试在多层框架下实现SportsStore项目,并用自己的方式实现一些功能. 本篇为系列第八篇,包括: ■ 10.部署到IIS服务器    □ 10.1 使用Visual Studio发布