Arduino

【誰でもできる】Arduinoとスイッチ操作で文字を入力(メンブレンスイッチ)

パソコンのキーボードや家電などメンブレンスイッチと呼ばれるもので文字を入力したり、ものを動作させたりすることができます。今回はArduinoを使って、文字の入力をしていきたいと思います。

今回の内容は、メンブレンスイッチの構造はどうなっているのか?

Arduinoで文字入力やリモコン操作ってどうやって設定するの?

こんな質問にArduinoとメンブレンスイッチを使って回路の作成方法から、プログラムの内容まで紹介いたします。

ELEGOO社製のArduino互換品は非常に安価で製品も多数入っているため、初心者が最初に学ぶ際には非常におすすめです。

🚀 0円で現役エンジニアから学べる【Techスクールオンライン】のお申込みをお勧めします。 このオンラインスクールでは、現役のエンジニアから直接学ぶことができ、プログラミングの基礎から高度なスキルまでを習得できます。しかも、今なら 0円 で受講できるチャンスです。 エンジニア転職を考えている方やプログラミングに興味がある方、新しいスキルを習得したい方に特におすすめです。

Arduinoでスイッチ操作するために必要なもの

今回使用する部品はこちらになります。

・Arduino Uno

・メンブレンスイッチ

・ジャンパ線

メンブレンスイッチの構造

メンブレンスイッチは薄さやデザイン性に優れているため、様々な用途で用いられています。この構造は図に示すように、ボタン(表面シート)を押すと上部接点シートと下部接点シートの接点が導通することで、信号がONとなります。これにより、Arduinoのプログラムで設定された動作、例えば、文字を入力したり、LEDを点灯したりモータを回転させたりすることができます。

このスイッチは、4×4の16文字を扱うことができます。しかし、Arduinoの出力ピンの使用本数は8ピンを使用します。これらを扱うために、裏面の配線を確認するとわかりますが、4行(青線)と4つのピン、4列(赤線)と4つのピンが導通しています。これら信号のON-OFFを検知することで、どのボタンが押されたがわかるような仕組みになっています。例えば、6番のボタンが押されたときは、2行目の信号がONし、さらに2列目の信号がONとなるため、どのボタンを押されたかを検知することができます。

Arduinoとメンブレンスイッチの回路を作成してみる

ArduinoのNo2~No9ピンをメンブレンスイッチと接続します。これだけで完成です。

LED等を接続して、1のボタンを押すと点灯すること等もできますので、回路に接続しても面白いです。

Arduinoとメンブレンスイッチのプログラムを作成してみる

プログラム内容はこちらになります。

#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 

void setup(){
  Serial.begin(9600);
}
  
void loop(){
  char customKey = customKeypad.getKey();
  
  if (customKey){
    Serial.println(customKey);
  }
}

ではプログラム内容説明に入ります。メンブレンスイッチを使用するときは、keypad.hのライブラリをインクルードしてください。

インクルード方法は最後の動画で説明しています。

hexaKeysで使用する文字を定義しています。こちらを変えることで、自由に文字を変えることができます。

次に、byte rowPins, byte colPinsで使用するピンの設定(定義)を行っています。

先ほど定義したピンを用いて、keypadの初期設定を行います。出力する文字、ピンの設定を行います。

シリアル通信の初期化を行い、シリアルモニタに表示できる状態にします。その後、getKey()で打たれた文字を取得し、変数customKeyに格納します。文字が打たれると、Serial.println(customKey)とすることで、シリアルモニタに文字が表示されます。

以上でプログラムの内容は完了です。

では実際に動かしてみましょう。

ボタンを押すと、シリアルモニタに文字が表示されます。

プログラムのif文の設定で、押されたボタンが1であればLEDをONにする、モータを動かす等とすることもできますので、実際に試すとメンブレンスイッチでリモコンのように回路を操作することができて、面白いと思います。

ぜひやってみてください。

Arduinoの使い方を基礎から学びたい方はこちらの本をおすすめします。

🚀 0円で現役エンジニアから学べる【Techスクールオンライン】のお申込みをお勧めします。 このオンラインスクールでは、現役のエンジニアから直接学ぶことができ、プログラミングの基礎から高度なスキルまでを習得できます。しかも、今なら 0円 で受講できるチャンス。
私がツナグバに登録してから、求人情報が豊富に届き、自分に合った仕事を見つけることができました。特に、第二新卒向けの求人情報が多いので、自分のスキルや経験を活かしながら新たなキャリアに挑戦することができました。転職活動は不安も多いですが、ツナグバのサポートがあれば、成功への道が明るく感じました。