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)去調整伺服馬達的角度,再重覆執行之前的動作。
(604)
近期留言