第6回 スイッチを追加する

今回はブレッドボードにスイッチを追加します。

目次

作業後のブレッドボード

作業を始める前に、スイッチを追加したあとのブレッドボードの様子を確認しておきます。

現在のブレッドボードはスイッチが1個実装されていますが、今回追加でスイッチ2個実装します。実装する場所は右側の領域の空いているところにします。

作業を始める前に、完成した状態を確認しておきましょう。

スイッチ追加完成図

今回の作業ではこのように2個のスイッチをArduino Microに追加で接続します。

それでは一緒に作業していきましょう。

現在のブレッドボード確認

最初に現在のブレッドボードの実装状態を確認しておきます。基礎編パート1では以下のブレッドボードを製作しました。ご自身の状態が以下のようになっているか確認してみましょう。

作業前のブレッドボード

基礎編パート1では、Arduino Microの「A5」ピンにスイッチを接続しました。この「A5」ピンはデジタル指定の場合23番で指定します。

Arduino Micro A5ピン

今回追加するスイッチ2個は、この隣の2つのピンを使用します。具体的には「A4」ピンと「A3」ピンです。これらのピンはそれぞれデジタルではそれぞれ22番、21番で指定します。

追加スイッチの接続ピン

それでは、早速スイッチを2個追加しましょう。準備するものはスイッチ2個とジャンパワイヤーセットです。

なお、スイッチの回路は基礎編パート1で詳しく説明しましたので、今回はその説明は省略します。もし忘れてしまった場合は基礎編パート1の第19回を確認してみてください。

スイッチを2個追加する

スイッチはジャンパワイヤーで接続しますが、長いジャンパワイヤーは長さが限定されています。好きなところにスイッチを配置してしまうと、それに合う長さのジャンパーワイヤが見つからない可能性があります。

そこで、最初にジャンパワイヤーを取り付けて、そのあとスイッチをセットすることにします。

それでは追加の1個目のスイッチを接続していきましょう。

おそらく長い黄色のジャンパワイヤーが適切な長さだと思いますので、以下の手順(1)のように片側をArduino Microの「A4」ピンのところに接続し、次に手順(2)のようにもう片側を届くところに接続します。

スイッチ追加 1-1

ジャンパワイヤーの位置が決まったら、以下の手順(3)のようにジャンパワイヤの位置に合わせてスイッチをセットしてください。そのあとに、手順(4)のようにスイッチのもう片側をマイナスのラインに接続して完成です。

スイッチ追加

同じようにもう1個のスイッチを以下のような手順で追加してください。長い緑色のジャンパワイヤーが合っていると思います。

2個目のスイッチ追加

これで2個のスイッチが追加できました。

動作確認

さて、ただスイッチを追加しただけでうまく接続できたかちょっと不安ですよね。

そこで、動作確認してみましょう。

0.5秒ごとにスイッチの状態を読み取ってシリアルモニタに表示して確認します。スイッチの状態を digitalRead() で読み取り、その値をそのままシリアルモニタで表示して確認します。

シリアルモニタに表示される値は digitalRead() で読み取った値ですので、スイッチが押されていない場合は「1」、押されている場合は「0」が表示されます。

プログラムを作るのはちょっと面倒だと思いますので、以下のプログラムをコピペして動作確認してみてください。コピペといっても、必ずプログラムの内容は理解するようにしてください。

また、Arduino Microにスケッチを送る前に、シリアルモニタのウインドウを開いておくことを忘れないようにしてください。

/*
 *  スイッチ動作確認プログラム
 *  内容: A3、A4、A5ピンに接続されたスイッチが
 *      正常に動作する確認するプログラム
 *      digitalRead()で読み取った値を
 *      そのままシリアルモニタに表示する
 */

// スイッチのピン接続番号
#define SWITCH_HIDARI  23
#define SWITCH_CHUO    22
#define SWITCH_MIGI    21

void setup() {
  // ピン設定
  pinMode(SWITCH_HIDARI, INPUT_PULLUP);
  pinMode(SWITCH_CHUO,   INPUT_PULLUP);
  pinMode(SWITCH_MIGI,   INPUT_PULLUP);

  // シリアルモニタ初期化
  Serial.begin(9600);

  // シリアルモニタ準備待ち
  while( !Serial ) {
  }  
}

void loop() {
  // 左スイッチ状態の読み取り
  Serial.print(digitalRead(SWITCH_HIDARI));
  Serial.print("  ");  // スペースをあける

  // 中央スイッチ状態の読み取り
  Serial.print(digitalRead(SWITCH_CHUO));
  Serial.print("  ");  // スペースをあける

  // 左スイッチ状態の読み取り
  Serial.print(digitalRead(SWITCH_MIGI));
  Serial.println("  ");  // スペースをあけて改行する

  // 0.5秒待つ
  delay(500);
}

動作確認できましたか?

Arduino Microが動作を開始すると、シリアルモニタに以下のように表示されますよね。

1 1 1
1 1 1
1 1 1
1 1 1
1 1 1

この状態で、左側のスイッチを押すと以下のように表示が変化します。

0 1 1

真ん中のスイッチを押すと

1 0 1

のように表示が変化して、右側のスイッチを押すと

1 1 0

のように表示されれば、スイッチは正しく実装できています。おめでとうございます!

ミニチャレンジ課題

さて、スイッチ動作確認とはいえ、「1 1 1」という表示はなんともわかりづらいですよね。そこで、以下のようにプログラムを変更してみてください。

ミニチャレンジ課題

以下のようにスイッチが押されている場合は「ON」、押されていない場合は「OFF」と表示されるようにプログラムを変更してください。

OFF OFF OFF
OFF OFF OFF
ON  OFF OFF
ON  OFF OFF
ON  OFF OFF
OFF OFF OFF
OFF OFF OFF
OFF ON  OFF
OFF ON  OFF
OFF OFF OFF
OFF OFF OFF

基礎編パート1でいろいろ文法を確認しました。どの文法を使えばいいかじっくり考えてみてください。

更新履歴

日付 内容
2021.8.3 新規投稿
通知の設定
通知タイミング
guest
0 コメント
本文中にフィードバック
全てのコメントを見る
目次