見出し画像

§2. 入力信号を受ける(タクトスイッチ)

ここでは、Arduinoで入力信号を扱う方法を学びます。具体的には、タクトスイッチ(ボタン)を押すとLEDが点灯するプログラムを作ります。




1.はじめに

はじめに、プルアップ/プルダウン抵抗について学びましょう。

プルアップ抵抗は、電子回路でスイッチやセンサーなどの入力が「未接続(浮いた状態)」になったときに信号が正しく「HIGH(1)」として認識されるように使う抵抗です。プルダウン抵抗はその逆で「LOW(0)」です。
※+側に抵抗があればプルアップ、-側にあればプルダウンと呼びます。

プルアップ、プルダウンの例

スイッチを押すと「HIGH」信号が発生する回路を「正論理スイッチ」といいます。反対に、スイッチを押すと「LOW」信号が発生する回路は「負論理入力回路」と呼ばれます。

今回の実験では、直感的に分かりやすい「正論理スイッチ」を使用し、その信号を利用してArduinoに接続したLEDの点灯状態を制御します。

2. 配線をしてみよう

タクトスイッチを使って、以下のように配線します。
12番ピンにスイッチからの信号線を接続します。
13番ピンには、先ほどと同様にLEDを接続します。
・スイッチと抵抗(1kΩ)を使って回路を組みます。(抵抗は1k~100kΩで大丈夫です)

配線が複雑に見えるかもしれませんが、タクトスイッチは「押したときにHIGH(信号が1)」、離したときに「LOW(信号が0)」をArduinoに送るだけです。

配線図

3.プログラムを書いてみよう

以下のプログラムを入力して、タクトスイッチの動作を試してみましょう。

void setup() {
  pinMode(13, OUTPUT); // LED接続ピンを出力に設定
  pinMode(12, INPUT);  // スイッチ接続ピンを入力に設定
  digitalWrite(13, LOW); // 初期状態でLEDを消灯
}

void loop() {
  if (digitalRead(12) == HIGH) {  // スイッチが押されている場合
    digitalWrite(13, HIGH);       // LEDを点灯
  } else {                        // スイッチが押されていない場合
    digitalWrite(13, LOW);        // LEDを消灯
  }
}

4.プログラムの意味を解説

pinMode()関数

  • Arduinoのピンの使い方を指定します。ここでは、12番ピンを「入力」、13番ピンを「出力」に設定しています。

digitalRead()関数

  • 指定したピンの状態(HIGHまたはLOW)を読み取ります。スイッチが押さているとHIGH、押されていないとLOWになります。

digitalWrite()関数

  • 指定したピンにHIGH(点灯)またはLOW(消灯)を出力します。


5.実行してみよう

  1. Arduinoをパソコンに接続し、プログラムを書き込みます。

  2. タクトスイッチを押してみましょう!LEDが点灯すれば成功です。

  3. スイッチを離すと、LEDが消灯するはずです。

※ポイント

  • スイッチの動作原理:タクトスイッチは「オン・オフ」の信号を切り替えるシンプルな部品です。これを使うと、Arduinoに「押された」「離された」という指示を伝えることができます。

  • 正論理 vs 負論理:今回の配線は「正論理スイッチ」と呼ばれるもので、スイッチを押すとHIGH信号が発生します。逆に、押すとLOW信号が発生する「負論理スイッチ」もあります。


これで、タクトスイッチを使った入力のプログラムが完成です!



私が代表を務める山形県のジオアルピーヌ合同会社では、多様な回路の設計および試作製造を承っております。
企業様向けのサービスはもちろん、学校教材としての電子回路設計・製作にも対応しております。
さらに、「ロボット」を例に挙げれば、回路設計や機械設計、部品調達からパッケージングまで、ワンストップでサポートいたします。

まずは、弊社のホームページよりお気軽にお問い合わせください。皆さまからのご連絡を心よりお待ちしております(^-^



いいなと思ったら応援しよう!