Ameba Arduino: [RTL8195] [RTL8710] IO Expander – 使用I/O Expander模組擴展I/O

材料準備

  • Ameba x 1
  • SparkFun SX1509 I/O Expander x 1
  • LED x 1

範例說明

本範例使用SX1509 I/O Expander模組來擴展I/O,能將之擴展至16組I/O ports, 我們需要以下library:
https://github.com/sparkfun/SparkFun_SX1509_Arduino_Library/archive/master.zip

安裝library的方式請參考Arduino官方網站的教學文章將zip檔的library加入Ameba:
https://www.arduino.cc/en/Guide/Libraries#toc4

接著打開範例 “File” -> “Examples” -> “SX1509 IO Expander” -> “breathe”

RTL8195接線如下圖:
1

RTL8710接線如下圖:
1

程式碼說明

此範例讓LED的燈光明暗效果,仿效人類的呼吸行為。
首先設定SX1509的pin 15為本範例LED的output port, 因此LED的正極請接SX1509的pin 15

const byte SX1509_LED_PIN = 15;

使用內部的2MHz 振盪器,並且設定LED clock為500kHz (2MHz / (2^(3-1))

io.clock(INTERNAL_CLOCK_2MHZ, 3);

讓LED變成呼吸的燈(全暗、全亮、漸亮、漸暗)不斷循環,參數設定:
全暗持續時間:1000ms
全亮持續時間:500ms
漸亮持續時間:500ms
漸暗持續時間:250ms

io.breathe(SX1509_LED_PIN, 1000, 500, 500, 250);