2022年03月28日 | 公開。 |
ESP-WROOM-02に接続したI2C接続キーパッドが正常に動作するかをテストするには、TwiKeypadライブラリに付属するサンプルスケッチを動かしてみるのが簡単です。
TwiKeypadライブラリをインストールしたArduino IDEを起動し、図2に示す様に、ファイル→スケッチ例→TwiKeypad→GetCharメニューを選択します。
そうすると、リスト2に示すスケッチが開きます。(あるいは、コピー&ペーストで、リスト2のスケッチをArduino IDEに貼り付けても構いません)
/*
GetChar.ino
This sketch demonstrates how GetChar function works.
*/
// include libraries
#include <Wire.h>
#include <TwiKeypad.h>
// variables
TwiKeypad keypad; // keypad object
const int TwiAdr=8; // keypad's TWI(I2C) Address
// functions
void setup()
{
Wire.begin();// initialize TWI as master.
keypad.begin(Wire,TwiAdr); // initialize keypad.
Serial.begin(9600); // initialize serial port at 9600bps.
while(!Serial); // wait for serial port to connect.
Serial.println("Press keys.");
} // setup
void loop()
{
char c=keypad.GetChar();
if(c!='\0') {
Serial.print(c);
} // if
} // loop
このスケッチは、GetChar関数によりキーパッドから押されたキーを読み取り、その結果をシリアルに出力するスケッチです。このスケッチを、例えば図6に示すボードの設定でESP-WROOM-02に書き込みます。
なお、図5の回路は、スケッチの書き込み時に、自動的にフラッシュメモリの書き込みモードに移行する機能がありません。書き込みに先立って、モードスイッチ(SW1)を押したままの状態で、リセットスイッチ(SW2)を押して、フラッシュメモリの書き込みモードに手動で移行してください。
スケッチが書き込めたら、9600bpsに設定したシリアルモニタで動作を観察してください。図7に示す様に、押したキーがシリアルモニタに表示されます。
注:スケッチが書き込めているのに、うまく動作しない時は、一度3.3Vの電源供給を止めて、再び電源を入れてください。この操作により、ESP-WROOM-02とI2C接続キーパッドの両方がリセットされます。
キーを1、2、3、4の順に押した例を示します。
Press keys.のメッセージの前に、文字化けしたメッセージが表示されていますが、これは、ESP-WROOM-02の起動メッセージが74880bpsで送信された事によるものです。
Arduino環境でESP-WROOM-02でI2Cバスを使う場合は、SDA信号をIO4ピン、SCL信号をIO5ピンに接続するのがデフォルトですが、スケッチを修正する事で接続するピンを変更する事ができます。
I2Cインターフェースを初期化するWire.begin関数は、次の様な書式になっています。
参考:Wire.begin関数についての詳細は、ESP8266 Arduino CoreのドキュメントのLibrariesのページをご覧ください。
ここで引数sdaは、SDA信号に割り当てるGPIOのピンで、引数sclは、SCL信号に割り当てるGPIOのピンです。(ただし、引数を省略してWire.begin()
とすると、Wire.begin(4,5)
と解釈されます)
例えば、SDA信号をIO13ピンにつなぎ、SDO信号をIO14ピンにつなぐ場合は、リスト2の18行目のWire.begin();
をWire.begin(13,14);
と書き換えます。
商品名 | I2C接続4X4キーパッド | |
税抜き小売価格 | 2400円 | |
販売店 | スイッチサイエンス マルツ | |
サポートページ | I2C接続4×4キーパッドサポートページ |