前言

之前我們所使用的感測器 (溫溼度感應器、按鈕、紅外線開關) 以及輸出元件 (LED 燈泡、蜂鳴器),都屬於數位訊號的電子元件。而這篇文章所要介紹的光敏電阻,則屬於類比訊號的元件。等等,我們之前在使用 LED 燈泡跟蜂鳴器時,不就使用過 PWM 模擬類比訊號了嗎?難道 LED 燈泡跟蜂鳴器不是使用類比訊號的元件?是的,PWM 的實際輸出電位仍只有高、低兩種,只是透過快速的高、低電位切換來產生不同的平均電位,因此連結的仍是只能接受高、低兩種電位的數位訊號元件。有關 PWM 的進一步說明可參考這篇文章

在這篇文章中,我們首先將介紹如何在 Scratch 3 中使用 DiFi 內建的光敏電阻,並做出依據光源強度而自動開關的燈光。

光敏電阻

光敏電阻屬於可變電阻的一種,其電阻值會隨著接收到的光強度而改變,當光強度越大時,電阻值就越小。在極強的光度下,電阻值可能只有幾歐姆。反之,當光強度越小時,電阻值就會變得相當大,甚至有可能高達 1M (百萬) 歐姆以上。

光敏電阻在 DiFi 實驗板上的實際位置請參考下圖:

DiFi V51 光敏電阻

DiFi V51 光敏電阻

開發環境建置

如果你還沒有建置 WFduino + Scratch 3 的開發環境,請參考這篇文章

線路圖一

因為是內建元件,所以我們只要用跳線帽將元件接腳直接連接 GPIO 即可,實際接線圖如下:

DiFi V51 光敏電阻與 GPIO

DiFi V51 光敏電阻與 GPIO

光敏電阻的接腳名稱為 PhotoR,使用跳線帽時配對腳位編號為 ADC,其 WFduino 編號為 A0。如果對腳位如何配對有不清楚的地方,可參考這裡的說明

範例程式一

WFduino 控制 DiFi 內建光敏電阻 (Scratch 3)

WFduino 控制 DiFi 內建光敏電阻 (Scratch 3)

  1. 因為 GPIO 預設為輸出的模式,所以程式一開始先將腳位 A0 設定為輸入的模式並等待一秒鐘。
  2. 之後 Scratch 貓咪則不斷地說出從腳位 A0 所讀取到的數值。
  3. 當程式開始執行後,我們可以試著用手或物品遮住光敏電阻,應可看到 Scratch 貓咪所說出的數字不停地的改變。當遮住的光越多,數字就越小,如影片中所示:

線路圖二

在這個範例中,我們需要同時使用光敏電阻與綠色 LED 燈泡。程式根據腳位 A0 所讀取到的數值來判斷環境的光源強度是否足夠,一旦發現光源強度不夠時,隨即自動開啟內建的綠色 LED 燈泡。雖然功能簡單,但仍算得上是簡易版本的智慧照明。

實際接線圖如下:

DiFi V51 光敏電阻與 LED 燈泡

DiFi V51 光敏電阻與 LED 燈泡

根據之前的文章,綠色 LED 燈泡使用的腳位編號為 7,而光敏電阻使用的腳位編號為 A0。

範例程式二

WFduino 控制 DiFi 內建光敏電阻與 LED 燈泡 (Scratch 3)

WFduino 控制 DiFi 內建光敏電阻與 LED 燈泡 (Scratch 3)

  1. 程式同樣在一開始先將腳位 A0 設定為輸入的模式並等待一秒鐘。
  2. 之後 Scratch 貓咪則不斷地說出從腳位 A0 所讀取到的數據。此外,當讀到的數值小於 500 時,表示環境光源的強度不夠,因此啟動 LED 燈泡 (數位輸出 1)。否則,則關閉 LED 燈泡 (數位輸出 0)。
  3. 500 這個數字為大約的估算,您可以依據身邊的環境加以調整,以達到自動啟動 LED 燈泡的目的。
  4. 當程式開始執行後,我們就可以看到 LED 燈泡將在環境光源強度不夠時自動啟動,如影片中所示:
Facebook 留言
Print Friendly, PDF & Email
Summary
WFduino + Scratch 3 + DiFi 使用光敏電阻
Article Name
WFduino + Scratch 3 + DiFi 使用光敏電阻
Description
在這篇文章中,我們首先將介紹如何在 Scratch 3 中使用 DiFi 內建的光敏電阻,並做出依據光源強度而自動開關的燈光。
Author
Publisher Name
Everlearn Studio
Publisher Logo