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);