タッチセンサモジュール

../_images/17_touch_sensor_moudle.png

概要

タッチスイッチセンサ(タッチボタンまたはタッチスイッチとも呼ばれる)は、製品をスッキリと見せるために多くの新しいデバイスでボタンの代わりに使用されています(例:タッチ式のランプ)。

原理

このモジュールは、タッチセンサIC(TTP223B)に基づいた静電容量型タッチスイッチモジュールです。通常状態では、モジュールは低消費電力で低レベルを出力し、指が対応する位置に触れると高レベルを出力し、指が離れた後に再び低レベルになります。

静電容量型タッチスイッチの動作原理:

../_images/17_touch_sensor_moudle_principle.jpeg

実際には、静電容量型センサは、一方の面をタッチセンサとし、反対側の面をコンデンサの接地板として二層のPCB上に作成できます。電源がこれらのプレートに適用されると、2つのプレートは充電されます。平衡状態では、プレートは電源と同じ電圧を持ちます。

タッチ検出回路には、タッチパッドの容量に依存する振動子があります。指がタッチパッドに近づくと、追加の容量がこの内部振動子の周波数を変更します。検出回路は、タイムインターバルで振動子の周波数を追跡し、シフトがしきい値の変更を超えると、キープレスイベントをトリガーします。

使い方

使用する電子部品

  • Arduino Uno R4 または R3 ボード * 1

  • タッチセンサモジュール * 1

  • ジャンパワイヤ

回路の組み立て

../_images/17_touch_sensor_moudle_circuit.png

コード



コードの説明

  1. タッチセンサが接続されているピン番号を定義して、必要な変数を設定します。

    const int sensorPin = 7;
    
  2. setup() 関数内での初期設定。ここでは、センサピンが入力として使用され、内蔵LEDが出力として使用されるよう指定します。また、シリアルモニタにメッセージを送るためのシリアル通信を開始します。

    void setup() {
      pinMode(sensorPin, INPUT);
      pinMode(LED_BUILTIN, OUTPUT);
      Serial.begin(9600);
    }
    
  3. Arduinoは継続的にタッチセンサが活性化されているかどうかを確認します。タッチが検出された場合、LEDを点灯させて「Touch detected!」というメッセージを送ります。タッチが検出されなかった場合は、LEDを消灯して「No touch detected...」というメッセージを送ります。センサが高速で読み取られないように、遅延が導入されます。

    void loop() {
      if (digitalRead(sensorPin) == 1) {
        digitalWrite(LED_BUILTIN, HIGH);
        Serial.println("Touch detected!");
      } else {
        digitalWrite(LED_BUILTIN, LOW);
        Serial.println("No touch detected...");
      }
      delay(100);
    }
    

追加のアイデア

  • タッチを示すために異なるLEDの色を使用する

  • タッチセンサは、モーターやリレーなど、より複雑な要素を制御するために使用できる。

さらに多くのプロジェクト