Arduinoと戯れる!

Arduino 入門 Lesson 57 【Membrane Switch Module】

arduino-lesson57-00Arduino入門編
スポンサーリンク
子供と一緒に始める マイコンプログラム
Arduino 入門
Lesson 57
【Membrane Switch Module】

こにんちは、管理人のomoroyaです。

センサーの使い方の基本を学習する入門編。

 

世の中には、まだまだ色々なセンサーがあります。

これからも、色々なセンサーで遊んでいきます。

 

本記事はLesson 57 【Membrane Switch Module】です。

日本語に直訳すると・・・

Membrane Switch:膜スイッチ

でしょうか。

いわゆるキーパッドと呼ばれるものです。

 

コメントで解説してほしいと要望があったので電子部品を入手しました。

Lessonの番号が飛んでいるのは、MQ系のセンサーをもう少し解説したいため。

あとで、Lesson番号は変わるかもしれません。

 

キーパッドは、携帯電話、電子レンジ、炊飯器など、色々な家電製品で使用されています。

デバイス使用者が入力を行うための電子部品となります。

 

やろうと思えば、Lesson 05のプッシュスイッチボタン(タクトスイッチ)を使って同じようなことはできます。

Arduino 入門 Lesson 05 【プッシュボタンスイッチ編】
このLessonでは、機械的にスイッチを使ってLEDをオン、オフさせるわけではありません。スイッチを「押した」「押してない」という行為をデジタル信号としてUNOに認識させるということです。それによって、UNOから電源が供給されLEDのオン、…

挑戦してみても面白いかもしれません。

 

 

本Lessonで使用する「Membrane Switch Module」は以下が同等品となります。
※prime対応品(出荷元:Amazon)

 

Arduino入門編の解説にて使用しているArduinoは互換品です。

互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

正規品の本体単品がほしい方はこちらとなります。

 

スポンサーリンク

はじめに

本Lessonで使用する「Membrane Switch Module」は4×4のキーパッドとなります。

 

キーパッドの方式としては、「線形キーパッド」「マトリクスキーパッド」があります。

本Lessonで使用するキーパッドは「マトリクスキーパッド」。

 

マトリクスキーパッドの利点は使用する制御ピンの数が少なくできるということ。

4×4のキーパッドの場合、キーは16個あります。

一つのキーに一つのIOピンが必要な場合は17ピン必要。
※16 IOピンとGNDで17

しかし、マトリクスキーパッドを使うことで、半分の8ピンで制御可能となります。
※8 IOピンのみで制御可能

詳細は部品解説のところをお読みください。

 

Lesson 57 目標

本Lessonの目標は以下です。

1.Membrane Switch Moduleの使い方を学習する
2.マトリクスキーパッドの仕組みを理解する
2.Membrane Switch Moduleを動かすスケッチを描く
3.Membrane Switch Moduleを動かして遊ぶ

いつものように、遊ぶことが重要です。

 

Membrane Switch Moduleですが、ようするにスイッチです。

16個のスイッチのON、OFFをAruduinoで認識させて動作させるというだけ。

パッドに数字等々記載されています。

しかし見た目だけの問題で、どこのパッドに何を割り付けるかはスケッチを描く人の自由。

Membrane Switch Moduleを使わなくても、タクトスイッチでも同じことができます。

 

準備

ではLessonの準備に取り掛かりましょう。

電子部品は「Membrane Switch Module」のみ。

 

必要なもの

※ブレッドボードはセンサとUNOを直接つなぐ場合不要です。
※ジャンパワイヤーは「M-M」「M-F」を必要に応じて使い分けてください。

 

Jumper wire、抵抗は今後も頻繁に利用します。

Jumper wireはできれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。

短めが使いやすい場合も。

 

使用部品説明

Membrane Switch Module」について説明していきます。

 

Membrane Switch Module 実物写真

下の写真が「Membrane Switch Module」の実物写真です。

本Lessonで使用するものは、4×4マトリクスのキーパッド。

キーの数は16種類となります。

キーが16個ありますが、制御線は8本のみであることがわかります。

arduino-lesson57-01

 

Membrane Switch Module 回路図

Membrane Switch Moduleの回路図を示します。

 

単純にスイッチの集まりです。

スイッチがONしていると行(Row)と列(Column)の交点が導通する。

導通することで、押した場所がわかるという仕組み。

これが「マトリクスキーパッド」の回路方式です。

回路は単純、「タクトスイッチでも作成できます」というのがおわかりいただけましたでしょうか。

回路図のR1~R4、C1~C4をAruduinoのデジタル入出力ピンに接続して制御することになります。

arduino-lesson57-02

 

Membrane Switch Module 仕様

スイッチの塊です。

遊び、学習で使う分には気にする特性はとくにありません。

■仕様抜粋(購入したMembrane Switch Moduleにより異なる)

項目仕様
接触抵抗500Ω(テスタによる実測でも400Ω~600Ωの間におさまっていた)
絶縁抵抗100MΩ
リバウンドタイム1ms
生涯回数1億回
動作温度-40~+ 80℃
回路定格35V(DC)100mA 1W
動作圧力(タッチ感)170~397g

 

本Lessonは遊び、学習を想定しています。

Arduinoの仕様範囲内で使用していれば問題になることもありません。

遊び、学習以外での使用用途をお考えの場合はデータシートを必ず確認しましょう。

 

実践1 回路作成とコード作成(動作理解編)

実践1では動作理解編としてライブラリを使わずマトリクスキーパッドを理解していきます。

動作理解のため、co1(1列)のみキーパッドを認識させてシリアルモニタに表示させます。

 

最初に回路図を確認してください。

次に、回路図に合わせて部品を接続します。

最後にコードを書いて、「Membrane Switch Module」を動かしていきましょう。

 

Arduinoのピン配置を確認したい方は番外編02を参照してください。

 

回路図(動作理解編)

まずは、動作を理解するためにキーパッドを1列のみ認識させるスケッチを考えます。

Arduinoの使用ピンは以下。

  • デジタル入力:9、8、7、6
  • デジタル出力:5

 

回路図がこちら。

arduino-lesson57-03

 

こちらがブレッドボード図。

arduino-lesson57-04

 

回路図は「fritzing」を利用しています。

「fritzing」の使い方は下記を参照してください。

 

接続(動作理解編)

下図に示すように、用意した部品を使用して接続しましょう。

部品は「Membrane Switch Module」のみとなります。

部品は1個、接続は簡単です。

Membrane Switch Module」と接続するジャンパーワイヤーはF-Fを使用してます。

ブレッドボードを使うかどうかはお好みで。

 

使用するポートは

  • デジタル入力:9、8、7、6
  • デジタル出力:5

穴に挿入しづらいときは、ラジオペンチなどを使用してください。

arduino-lesson57-05

 

コードの書き込み(動作理解編)

接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。

コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。

 

コマンド説明(動作理解編)

本Lessonでは、特に新しいコマンドはありません。

 

サンプルコード(動作理解編)

本Lessonのスケッチではcol1(1列)のみ使用。

1列のキーパッドのみシリアルモニタに表示できるようにしています。

目的は、キーパッドの動作理解のためです。

//Lesson 57-1 Membrane Switch Module 動作理解(1列のみ認識)
//https://omoroya.com/

const int row1Pin = 9; //row1に9番ピン割り当て
const int row2Pin = 8; //row1に8番ピン割り当て
const int row3Pin = 7; //row1に7番ピン割り当て
const int row4Pin = 6; //row1に6番ピン割り当て
const int col1Pin = 5; //col1に5番ピン割り当て

void setup() {
  pinMode(row1Pin, INPUT_PULLUP); //9番ピンをHighにする(プルアップ)
  pinMode(row2Pin, INPUT_PULLUP); //8番ピンをHighにする(プルアップ)
  pinMode(row3Pin, INPUT_PULLUP); //7番ピンをHighにする(プルアップ)
  pinMode(row4Pin, INPUT_PULLUP); //6番ピンをHighにする(プルアップ)
  pinMode(col1Pin, OUTPUT);       //5番ピンをOutput指定

  Serial.begin (9600);   //シリアル通信のデータ転送レートを9600bpsで指定
}

void loop() {
  digitalWrite(col1Pin, LOW);  //col1(5番ピンに)"Low"を出力
  
  //row1(9番ピン)がLowを認識したら1を表示
  if (digitalRead(rowPin1) == LOW){
    Serial.println ("1");
  }
  //row2(8番ピン)がLowを認識したら1を表示
  if (digitalRead(rowPin2) == LOW){
    Serial.println ("4");
  }
  //row3(7番ピン)がLowを認識したら1を表示
  if (digitalRead(rowPin3) == LOW){
    Serial.println ("7");
  }
  //row4(6番ピン)がLowを認識したら1を表示
  if (digitalRead(rowPin4) == LOW){
    Serial.println ("*");
  }
  
  //タッチ感調整
  delay(200);
}

 

動作確認(動作理解編)

では、さっそく動作を確認していきます。

キーパッドの「1、4、7、*」を押してみてください。

シリアルモニタに押した箇所の文字が表示されます。

上記以外のところは押しても反応しません。

 

■col1(1列)のみ認識させた結果

arduino-lesson57-06

 

ライブラリを使わないことで、マトリクスキーパッドの動作原理を理解してみました。

 

実践2 回路作成とコード作成(ライブラリ使用編)

実践1にてマトリクスキーパッドの動作を理解しました。

実践2では、16キーすべて認識させます。

愚直に描くと煩雑になりますので、こちらはライブラリを使用します。

ライブラリを使用することで短いスケッチですみます。

動作を理解したら、積極的にライブラリを使うのがおすすめ。

 

使用するライブラリは「Keypad.h」。

ツール」→「ライブラリを管理…」で下記を使える状態にしてください。

arduino-lesson57-07

 

Keypad.h」の使い方は下記をご確認ください。

Arduino Playground - Keypad Library

 

最初に回路図を確認してください。

次に、回路図に合わせて部品を接続します。

 

Arduinoのピン配置を確認したい方は番外編02を参照してください。

 

回路図(ライブラリ使用編)

使用するライブラリ

Arduinoの使用ピンは以下。

  • デジタル入出力(row用):9、8、7、6
  • デジタル入出力(col用):5、4、3、2

 

回路図がこちら。

arduino-lesson57-08

 

こちらがブレッドボード図。

arduino-lesson57-09

 

回路図は「fritzing」を利用しています。

「fritzing」の使い方は下記を参照してください。

 

接続(ライブラリ使用編)

部品は「Membrane Switch Module」のみとなります。

ブレッドボードを使うかどうかはお好みで。

 

使用するポートは

  • デジタル入出力(row用):9、8、7、6
  • デジタル入出力(col用):5、4、3、2

穴に挿入しづらいときは、ラジオペンチなどを使用してください。

arduino-lesson57-10

 

コードの書き込み(ライブラリ使用編)

接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。

コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。

 

コマンド説明(ライブラリ使用編)

本Lessonでは、特に新しいコマンドはありません。

 

サンプルコード(ライブラリ使用編)

スケッチは「Keypad.h」の解説ページに記載されているサンプルスケッチを参考に4×4に対応させたものとなります。

Arduino Playground - Keypad Library
//Lesson 57-2 Membrane Switch Module ライブラリ使用
//https://omoroya.com/
#include "Keypad.h"

const byte ROWS = 4; //行の指定 4
const byte COLS = 4; //列の指定 4

//4行4列の配列にデータ格納
char key4x4[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

byte rowPins[ROWS] = {9, 8, 7, 6}; //row(行)に接続するピン指定,回路図のR1,R2,R3,R4
byte colPins[COLS] = {5, 4, 3, 2}; //col(列)に接続するピン指定,回路図のC1,C2,C3,C4

//キーパッドの初期化
//内部キーマップを指定したkey4x4と等しくなるように初期化
Keypad gkeypad = Keypad( makeKeymap(key4x4), rowPins, colPins, ROWS, COLS); 

void setup(){
  //シリアル通信のデータ転送レートを9600bpsで指定
  Serial.begin(9600);
}
  
void loop(){
  //押されたキーがある場合は取得
  char gkey = gkeypad.getKey();

  //取得データがある場合はシリアルモニタに表示
  if (gkey != NO_KEY){
    Serial.println(gkey);
  }
}

 

動作確認 (ライブラリ使用編)

では、さっそく動作を確認していきます。

4×4の16キーを適当に押してみてください。

シリアルモニタに押した箇所の文字が表示されます。

 

■4×4の16キーすべて認識させた結果

arduino-lesson57-11

 

ライブラリを使用することで簡単に制御することができます。

 

まとめ

本Lessonは、以下を目標としました。

1.Membrane Switch Moduleの使い方を学習する
2.マトリクスキーパッドの仕組みを理解する
2.Membrane Switch Moduleを動かすスケッチを描く
3.Membrane Switch Moduleを動かして遊ぶ

 

Membrane Switch Module」は何かの電子部品と組み合わせて使うのが通常です。

LCDモジュールと合わせて、入力デバイスとする。

簡易的な電卓を作ってみる。

などなど、ほかの電子部品と組み合わせて何かをさせて遊ぶのが良いと考えます。

 

Lesson 57 【Membrane Switch Module】 はここまで。

疑問点、質問などありましたら気軽にコメントください。

 

次回、Lesson 58は 思案中です。

 

最後に

疑問点、質問などありましたら気軽にコメントください。

この電子部品の解説をしてほしい!などなどなんでもOKです。

リンク切れ、間違いなどあればコメントいただけると助かります。

 

Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。

 

Arduino入門編で使用しているUNOはAmazonにて購入可能です。

互換品とは言え、Arduinoはオープンソース。

複製して販売するのもライセンス的に問題なし。

 

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

学習用、遊び用、お試し用には安価な互換品がおすすめです。

 

 

上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。

 

Amazonでお得に買う方法

Amazonでお得に購入するなら、Amazonギフト券がおすすめです。

現金でチャージするたびに、チャージ額に応じたポイントが付与されます。

最大2.5%!!!(Amazonプライム会員ならさらにお得)

チャージ額(一回分)一般プライム会員
5,000円~19,999円0.5%1.0%
2,0000円~39,999円1.0%1.5%
40,000円~89,999円1.5%2.0%
90,000円~2.0%2.5%

さらに、初回チャージで2000ポイントもらえるキャンペーンも実施中!
※いつもは1000ポイント、今なら2000ポイントです!

\Amazonギフト券 2000ポイントキャンペーン/
Amazonチャージ 初回購入で2000ポイントキャンペーン

 

補足情報
コンビニ・ATM・ネットバンクが対象
購入は1円単位で可能

コメント

  1. omoroyaomoroya より:

    要望のあった、「Membrane Switch Module」を記事にしました。

タイトルとURLをコピーしました