Ameba Arduino: [RTL8195] 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