用Arduino制作自动感应微形摄影机.PDFVIP

  • 7
  • 0
  • 约3.38千字
  • 约 5页
  • 2017-05-27 发布于天津
  • 举报
用Arduino制作自动感应微形摄影机.PDF

用 Arduino 製作自動感應微形攝影機 許多 3C 產品越做越小價格也越來越低廉,像錄音筆和鑰匙圈形式的微型攝 影機,如果你想要進行小小的改造,從 Arduino 控制這些裝置,例如,偵測到 有人靠近時啟動微型攝影機錄影,只要修改這些裝置的開關迴路即可。 這些小玩意的控制鈕的結構大致相同,如果將它們拆解(註:拆解之後,可能 會失去保固),你將看到類似下圖的開關結構,當按鈕被按下時,按鍵底部的 導電橡膠會讓印刷電路板上的接點導通: 我們並不需要用馬達或其他機械裝置來按下或觸發開關。印刷電路板上的銅 箔接點,相當於電路上的一個斷路,因此,若在它兩邊各焊接一條導線出來, 再連接開關,即可取代原有的按鍵: 本交將採用稱為「光電耦合」的元件來取代控制器原有的按鍵。 認識光電耦合元件 光電耦合 (optical coupler)元件,又稱為光隔離元件,外型、電路符號與結構如 下: 它也算是一種光電開關 ,當左邊的紅外線二極體導通、發光時,左邊的光電晶 體也將導通。由於元件兩端的信號,全透過光線傳遞,沒有直接相連,因此元 件兩端的電路相當於被隔離開來。 以底下的應用為例,光電晶體一端接微型攝影機的按鈕接點,不管這小裝置採 用 1.5V 或 9V 電源,都跟 Arduino 無關: 常見的光耦合元件型號有 NEC 的 PS2501、夏普的 PC817 以及台灣億光的 EL817,這三種型號的元件可以互換,外型與電路符號也相同。 以夏普的 PC817 為例,規格書標示光電晶體的集極輸入電流(I ),最大可承受 C 50mA,對於一般電路裡的控制按鈕絕對夠用。不過,光電晶體 C 和 E 腳的電 流往單方向流動 ,光是用眼睛看,可能無法判定光耦合的兩個接腳,要如何焊 接在 3C 產品按鍵的電路板。這時可以用萬用電錶測量,以 Xbox 360 控制器 的按鈕接點為例,其中一邊是接地: 像這種情況,光電晶體的 E 腳要焊接在接點的接地邊,另一邊接 C 腳。如果 無法確定要 C, E 焊接的方向,就先隨便接,若測試後發現不能導通,再將焊接 腳位對調即可 : 除了光耦合元件,也可用繼電器(relay)控制開關,不過,繼電器屬於機械式 開關,反應速度比光耦合慢(但仍舊比人類快很多),而且繼電器消耗比較多 的電量也比較容易故障,主要用於大電壓/大電流的電路。 動手試試看 底下是本文的示範硬體,採用一個人體移動偵測模組(簡稱 PIR),加上兩個光耦 合元件(註:也有一個 IC 裡面包含兩組或 4 組光耦的型式),用來控制微型攝影 機的「開始錄影」和「停止錄影」按鍵,讀者可自行變換,銜接其他 3C 設備的控 制鈕。 光耦合元件的紅外線發射 LED 的陽極腳,要連接一個 220Ω(紅紅棕)的限流 電阻,保護紅外線 LED。 範例程式碼如下,當 PIR 感測器偵測到人體移動時,它將點亮 Arduino 第 13 腳的 LED,並啟動「錄影」;過了 10 分鐘之後停止錄影。首先宣告程式變數, 請注意,儲存時間毫秒值的變數類型,最好使用 long(長整數),以免變數容 量不足而導致程式執行錯誤(原始檔名:diy_appC.ino): const byte pirPin = 12; // 紅外線感測器訊號腳位 const byte ledPin = 13; // LED 腳位 const byte recPin = 9; // 錄影鈕 const byte stopPin = 8; // 停止鈕 long oldTime; // 暫存當前時間 /* 10 分鐘的毫秒數:1000 × 60 × 10 底下這一行可改寫成: long delayTime = 1000L * 60L * 10L; */ long delayTime = 600000; long diffTime; // 儲存時間差 boolean turnOn = false; // 代表是否點亮 LED 的變數,預設為「否」 接著設定接腳的輸出與輸入狀態: void setup() { pinMode(pirPin, INPUT); // 感測器訊號腳位設定成「輸入」 pinMode(ledPin, OUTPUT); // LED 腳位設定成「輸

文档评论(0)

1亿VIP精品文档

相关文档