Project 10.1 タッチセンサー/Read Touch Sensor

前回はADCを使用して電圧を読み取ってみました。

あわせて読みたい
Project 9.1 ADコンバーター/Read the Voltage of Potentiometer 前回はシリアル通信を使用して、ESP32-S3でデータを受け取る処理を動かしてみました。 https://kaneshige.org/?p=321 今回はESP32-S3のADC機能を使って、ポテンショメー...

今回はタッチセンサーの使い方を学習します。今回もプログラミング要素は少ないです。

目次

タッチセンサーについて

ESP32-S3は最大14本の静電容量式タッチGPIOを提供します。従来のメカニカルスイッチは使用時にジッター(信号の乱れ)が発生するため、ジッター対策が必要でしたが、ESP32-S3内蔵のタッチセンサーではそのような問題はありません。さらに、耐久性の面でも、タッチスイッチはメカニカルスイッチを凌駕するほどの長寿命を誇ります。

ESP32-S3のタッチセンサーは、最大14のGPIOチャンネルを静電容量式タッチピンとして利用できます。それぞれのピンは、独立したタッチスイッチとして使用することも、組み合わせて複数のタッチ検出ポイントを作ることも可能です。下表は、ESP32-S3で利用可能なタッチピンのリストです。

Name of touch sensing signalGPIO number
T1GPIO1
T2GPIO2
T3GPIO3
T4GPIO4
T5GPIO5
T6GPIO6
T7GPIO7
T8GPIO8
T9GPIO9
T10GPIO10
T11GPIO11
T12GPIO12
T13GPIO13
T14GPIO14

ESP32-S3のコードベースでは、タッチピン番号があらかじめ定義されています。たとえば、コード内でT1を使用することで、GPIO1を表すことができます。タッチ操作によって発生する電気信号はアナログデータであり、ESP32-S3内のADC(アナログ/デジタル変換回路)によってデジタル化されます。これは、すべてのタッチピンがADC機能を備えているためです。

回路図

接続図

GPIO14に触れられれば良いので、ジャンプワイヤーを繋がなくても大丈夫です。

コード

/**********************************************************************
  Filename    : TouchRead
  Description : Read touch sensor value.
  Auther      : www.freenove.com
  Modification: 2022/10/21
**********************************************************************/

void setup()
{
  Serial.begin(115200);
}

void loop()
{
  Serial.printf("Touch value: %d \r\n",touchRead(T14));  // get value using T14(GPIO14)
  delay(1000);
}

プログラムをアップロードしたら、GPIO14に触れてみましょう。シリアルモニターの値が変化することがわかると思います。

次回はタッチセンサーを使ってLEDを操作してみましょう。

あわせて読みたい
Project 10.2 タッチスイッチ/Touch Lamp 前回はタッチセンサーの基本的な動作について学びました。 https://kaneshige.org/?p=371 今回はタッチセンサーをボタン代わりにしてLEDをコントロールしてみましょう。...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

金重総合研究所の主席研究員。
子供の頃から研究者を目指し、ライフワークとして日々様々な研究をしています。
経営・マネジメント・金融・DXあたりが本職です。
私を採用したい人、私と一緒に働きたい人、一緒に知識を肥やしていきたい人はぜひお声がけ下さい。

コメント

コメントする

目次