作者:創客萊吧MakerLab
上一篇【自造DIARY】類比溫度感測器 LM35向大家示範溫度感測器LM35的使用方式,這次的專案將教大家如何加上伺服馬達,製作可愛的箭頭式溫度計!

鯊魚頭溫度計(圖片來源:ICShop 提供)
材料清單:
- Arduino UNO R3
- LM35 類比溫度感測器
- 3條杜邦線(公/母)
- 5條杜邦線(公/公)
- SG90 9G伺服器
- 迷你麵包板
接線圖如下:

接線示意圖(圖片來源:ICShop 提供)
首先,我們要學習如何將溫度轉換成角度,假設溫度感測範圍是0~40度,而伺服馬達旋轉範圍是0~180度。我們希望當溫度是0度時,伺服馬達旋轉至0度;溫度是40度時,伺服馬達旋轉至180度;以此類推,溫度20度時,伺服馬達旋轉至90度。
那該如何做到呢?Arduino有一個很好用的數學函式:map(),只要三個步驟就可以輕鬆轉換。
- 輸入數值來源
- 設定來源數值的範圍(最大值與最小值)
- 輸入希望轉換後的數值範圍(最大值與最小值)
map(輸入數值來源,來源最小值,來源最大值,轉換後的最小值,轉換後的最大值)
將剛剛的描述實際套用將會是:
map( 量測溫度 , 0 , 40 , 0 , 180 )
程式完成後,接下來就是製作可愛的溫度計啦,您可以用紙(最好硬一點)、厚紙板、木板…等,與剪刀或美工刀製作。若是使用畫紙,還可以塗上自己喜歡的顏色喔!小編是利用雷切機直接大切一波,下圖就是小編的偷懶品。

第一次測試發現指針旋轉方向與溫度相反(圖片來源:ICShop 提供)
實際裝上去測試後發現,指針旋轉方向似乎與溫度相反。當溫度越高時,越偏向左邊;溫度越低時,反而越轉向右邊,這樣跟鯊魚嘴裡的刻度根本相反呀!
如果您也跟小編遇到相同的情況,沒關係!還記得map() 的用法嗎?只要將轉換的最大值與最小值交換即可:
map( 量測溫度 , 0 , 40 , 180 , 0 )
如此一來,當溫度為0度時,馬達轉向180,反之當溫度為40度時,馬達轉向0。修改程式後重新上傳~終於完成囉!

修改程式後的完成品(圖片來源:ICShop 提供)
- 【CIRCUS Pi】ESP32教學系列:用ESP32玩91段電子紙 - 2025/03/24
- 【CIRCUS Pi】ESP32教學系列:硬體中斷 - 2024/12/25
- 【CIRCUS Pi】使用 Arduino UNO R4 WiFi 輕鬆製作 LED Matrix 動畫 - 2024/10/14
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!