Arduino再加上2個光敏電阻以及1個伺服馬達就可以完成簡單的追光器。在前一篇文章中我們使用的是光敏電阻的模組,在使用上非常方便,只要把該模組的針腳直接接到Arduino上就可以了。但是模組在價位上較貴,這一次我們打算使用單純的光敏電阻(一顆只要10元不到),自己接電阻,再加上一些簡單的勞作來製作一個2266版的追光器。先來看看製作完成的成品:

以及成果的影片:

這一次的實習,我們使用了2個光敏電阻,2顆電阻,1個SG90伺服馬達,一片Arduino, 一片麵包板以及一些塑膠,再加上一些杜邦線以及一些膠帶就可以了。

首先,把SG90伺服馬達的塑膠軸鎖上螺絲固定:

然後,裁切一片大小適中的塑膠板,把此伺服馬達鎖到正中心的位置:

從側邊看來如下面所示的樣子:

接著,在塑膠板上其中一面的上面適當處挖兩個小洞:

把光敏電阻固定上去,接腳要穿到另外一邊,如下圖所示的樣子:

使用膠布把光敏電阻固定好,如下所示:

在麵包板(如果使用那種可以放在Arduino之上的擴充式小麵包板會更方便)放在上面,開始接線,並且使用膠帶把麵包板和 Arduino固定在中心的位置上。

利用杜邦線連接光敏電阻:

光敏電阻連接Arduino的主要線路圖,如下所示:

再做另外一片底板,在底板的中間挖一個剛好可以放置SG90伺服馬達的孔,把伺服馬達塞進去:

在底板的底部使用膠帶固定住:

如此,基本上硬體的部份就算是連接完成了。至於程式的部份,第一步要取得兩個光敏電阻的輸入值之變化,利用手機的手電筒進行校正,確定在手電筒直射的情況下,兩個數值之誤差在10之內。

此外,由於在這個例子中使用的是指定角度的伺服馬達(和前一篇的360度伺服馬達不一樣),因此在開始執行追光動作之前,一定要先利用m.write(90);把伺服馬達調整到90度,然後也設定一個變數的內容curr_degree=90做為目前的角度,這是一個一開始同步的動作。

接著,就在loop()中持續讀取A2和A3的數值,如果兩者的差值超過10,當差值是正值而且目前的curr_degree<160的時候,就把curr_degree+1,若差值是負值而且目前的curr_degree>0的話,就把curr_degree-1,變數更改完畢之後,即使用m.write(curr_degree)去調整伺服馬達的角度,再重覆執行之前的動作。

 

(28)

%d 位部落客按了讚: