Ameba Arduino: [RTL8195] [RTL8710] GPIO – 使用DS18B20溫度感測器

材料準備

  • Ameba x 1
  • DS18B20 x 1

範例說明

DS18B20 是一款溫度感測器,可量測範圍-55℃~+125℃,範圍在-10℃~+85℃時精準度為±0.5℃,它使用單線的資料線,並且在微秒(microseconds)等級的時間間隔裡處理資料的輸入與輸出。
Ameba使用OneWire library ( http://www.pjrc.com/teensy/td_libs_OneWire.html )
控制DS18B20。Ameba修改了這份library裡關於需要微秒等級的GPIO API,所以請至這裡下載修改過的library:
https://github.com/Ameba8195/Arduino/raw/master/libraries/OneWire.zip
下載之後,參考Arduino官方網站的教學文章將zip檔的library加入Ameba:
https://www.arduino.cc/en/Guide/Libraries#toc4

接線的部份如下圖:
1

我們打開範例 “File” -> “Examples” -> “AmebaOneWire” -> “DS18x20_Temperature”
編譯並上傳至Ameba之後,按下Reset按鈕,可以在Serial Monitor看到底下結果:
2

程式碼說明

相關的API與文件說明可以至OneWire的原始官網找到說明
http://www.pjrc.com/teensy/td_libs_OneWire.html