ArduinoのI/Oを拡張
わずか3点のI/Oを使用して、デジタル入出力28点、アナログ入力16点を増設
Numato LabのArduino用シールド。I2Cインターフェイスを利用し、デジタル入出力28点、アナログ入力16点のI/Oを増設することができます。
この商品は、メーカー生産終了のため、販売を終了しました。
2022年7月18日 昨今の円安に伴い、仕入れ価格が大幅に上がりました。それに伴い、心苦しいところではありますが、販売価格を値上げいたしました。
I2Cインターフェイス
Arduinoとの通信は、I2Cを利用しますので、A4(SDA)、A5(SCL)、およびアナログ入力としてA0を使い、合計3点のI/Oを使うだけで済みます。
MCP23017を2個使用
I/OエキスパンダーICのマイクロチップMCP23017を2個使用しています。MCP23017は、1個あたり16点のデジタル入出力を持っています。合計32点のうち、4点をアナログマルチプレクサ―74HC4067の入力セレクトに使用していますので、28点をデジタル入出力として使うことができます。
Arduino Uno、 Arduino Mega に対応
Arduino Uno、 Arduino Megaおよびそれらの互換品で使用することができます。
シールドですので、Arduinoのソケットに差し込むだけで接続が完了します。
1個のArduinoに対して4個まで使用可能
ボード上のジャンパーピンでI2Cのアドレスを変更することができますので、各々異なるアドレスを設定することにより、本品を4個使用することができます。ただし、アナログ入力はA0端子固定のため、1個でしか使用できません。ジャンパーピンでアナログ入力を使用しない設定もできます。
サンプルコードを用意
Arduinoのサンプルコードが用意されていますので、それをもとに簡単に使用することができます。
Arduinoサンプルコード
マニュアル(英語)
日本語マニュアルは用意しておりません。
サンプルスケッチ(サンプルコード)
アナログ入力の使い方
analogIn.ino アナログ入力サンプルスケッチ
analogIn.ino 内の
#define AnalogPin 0
を
int AnalogPin;
にして、変数に変更します。
void loop() 内
Wire.write(AnalogPin);
のAnalogPin の値を変えることにより、アナログ値を取り込むピンを変えることができます。
void loop() 内、
Wire.beginTransmission(0x21);
から始まる一連の関数は、アナログ値を読み出すたびに毎回実行する必要があります。
このサンプルを使用する場合、ジャンパーピンは、
AD4=0; AD5=0; AD6=1;
に設定してください。AD1,2,3はデジタル入出用なのでアナログ入力には関係ありません。