<攝影 : greatway>

一、成果展示

(一)、需求描述

  1. 利用長積木和伺服馬達來操作。
  2. 透過 2 個光敏電阻感測器做控制,以 millis()來比對時間差。判斷手勢是由 左到右右到左,以伺服馬達揮動長積木。
  3. 光敏電阻偵測啟動,在依據實際結果來進行調校。


<製圖 : greatway>


二、關於程式碼

(一)、完整程式碼


備註 : 因程式碼較長,分兩段截圖,故畫面可能有些許不協調,但不影響功能實現。

(二)、解題想法

我們希望透過改變左右光敏電阻的值來控制馬達。因此,可以透過改變光敏電阻的值,來抓取當前時間,透過時間的大小比較,讓馬達做出相應動作。比方說,遮住右邊光敏電阻,讓定位型伺服馬達往右轉 ; 旋轉型伺服馬達呈順時鐘方向旋轉。


(三)、程式碼筆記

1.設定馬達腳位並初始化



將 2 顆馬達腳位分別設到數位腳位 Pin7、Pin8。Pin7接連續旋轉伺服馬達。Pin8接定位型伺服馬達。角度設為90度,代表停止轉動,作為初始化狀態。

2.設置光敏電阻腳位與動作條件


因為 2顆光敏電阻必須接到類比腳位,在此我們指定為A0與A1,因此程式碼也配合撰寫。

我們希望透過光敏電阻的值,因此將條件設為當光敏電阻讀到的值小於10,利用millis函式抓取當前時間值。右邊的光敏電阻讀值存到 "right" 變數,左邊的光敏電阻讀值存到 "left" 變數。

3.透過 serial print 來了解感測值,作為除錯參考


如題,另再利用 "delay MILLIS",讓訊息以 0.3 秒的速度顯示。

打開 Serial Monitor,同時遮住右邊光敏電阻,值確實小於10 (" right= "),進而讓馬達進行我們預設的動作。

4.設定馬達動作



當 right 值 大於 left,我們將角度設為0,讓定位型伺服馬達往右擺,連續旋轉型伺服馬達進行順時鐘旋轉。反之,將角度設為 180,讓定位型伺服馬達往左擺,連續旋轉型伺服馬達進行逆時鐘旋轉。

最後,將硬體組起來,程式燒錄到Arduino中,即完成。

5.注意事項

若馬達實際轉動超過預期,比方說設定為180度,馬達卻轉到190度。可透過調整程式碼中的角度,比方說 180 >> 170,再比較實際動作,透過不斷調校來讓馬達動作符合預期。


---
#arduino #光敏電阻 #定位型伺服馬達 #連續型伺服馬達


0 留言