以下の内容はhttps://shuzo-kino.hateblo.jp/entry/2021/09/21/213734より取得しました。


M5stackにMCP23017をつかってIOを拡張する

MCP23017という石があります。
IO拡張系の石なのですが、マイコン側からはI2Cで通信できるので線の分お得。
配線も減るし、上手に分離すればモジュール化も容易なんじゃないかと思い、手元のM5stackで実験してみました。

実際のところ

#include <M5Stack.h>
#include "Wire.h"

void setup() {
  M5.begin();  //Init M5Core.
  M5.Power.begin(); //Init Power module.
  Wire.begin(); // wake up I2C bus
  // set I/O pins to outputs
  Wire.beginTransmission(0x20);
  Wire.write(0x00); // IODIRA register
  Wire.write(0x00); // set all of port A to outputs
  Wire.write(0x00); // set all of port B to outputs
  Wire.endTransmission();
}

void ledBup(int val) {
  Wire.beginTransmission(0x20);
  Wire.write(0x13); // address bank B
  Wire.write(val); // except B0, all Bs HIGH
  Wire.endTransmission();
  delay(500);
}


void loop() {
  M5.update();
  ledBup(0xf0);
  ledBup(0xf1);
  ledBup(0xf2);
  ledBup(0xf4);
  ledBup(0xf8);
  ledBup(0xff);
}



以上の内容はhttps://shuzo-kino.hateblo.jp/entry/2021/09/21/213734より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14