程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Windows on Device 項目實踐 2,ondevice

Windows on Device 項目實踐 2,ondevice

編輯:C++入門知識

Windows on Device 項目實踐 2,ondevice


在上一篇《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 小燈的亮度的變化控制。連接的原理圖和硬件圖如下:

clip_image002

 

clip_image002[6]

 

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讀取的值也會產生變化。我們可以嘗試使用手來阻擋光敏電阻,使其阻值發生變化,從而達到調試的目的。

IMG_0513

調試的視頻鏈接如下,大家可以看到感光燈的效果:http://v.youku.com/v_show/id_XODU2Mjk1ODYw.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved