前回記事でESP32(ESP32-DevKitC)の導入と無線通信(WiFi、Bluetooth)について書きました。配線スケッチ実行タッチセンサーESP32にはタッチセンサーが内臓されています。外付けのモジュール無しでタッチセンサーの機能が使えます。このリンク先のボードマップにタッチセンサーのピン配置が記載されています。全部で10チャンネルでセンシングが可能です。タッチセンサーの電極を指等で触れると、電極と指等の間に静電容量が発生します。この静電容量を測定することでタッチを検出します。センサー入力値の取得まずセンサー入力値の取得を試してみました。IDEインストール済みPCとESP32-DevKitC、USBケーブル(マイクロUSB)、あったらメス-オスのジャンパーワイヤーで、5分もあればできます。)にメス-オスのジャンパーワイヤーを接続するだけです。ジャンパーワイヤーが無ければ何もつながなくてもできます。開発環境の構築はこちらで書きました。サンプルスケッチを開きます。『ファイル』⇒『スケッチ例』⇒『ESP32』⇒『Touch』⇒『TouchRead』サンプルスケッチは改変せずそのまま使います(使用したいピンを変える場合は13行目”T0”をT0~T9の範囲で変えます)。13行目”touchRead(T0)”がセンサー値を出力するコマンドになります。”T0”が使用するピンの番号でT0~T9まで使えます。クリックして書き込みます。シリアルモニタに1秒毎に数値が出力されます。ジャンパーワイヤーの先を指で触ると出力される数値が小さくなります。ジャンパーワイヤーが無くても、ピンを指で触ったり、導電性の物を介して触れると数値が変わります。閾値を設定してタッチを検出タッチしているかどうかの判断はセンサーが検出した数値で判断します。ある値(閾値)をプログラムで設定してそれ以下であればタッチと判断します。環境などによってセンサーの基準値がぶれますので、実際に試してみて閾値を決める必要があります。配線TOUCH2(GPIO2)とTOUCH3(GPIO15)にメス-オスのジャンパーワイヤーをつなぎます。ジャンパーワイヤーがなければつながなくてもできます。スケッチサンプルスケッチを開きます。40;の”40′′が閾値になります。”センサー入力値の取得”で触っていないときと触ったときの数値を読んで、閾値を決めて値を変えます。threshold);がセンサー値を判断して割り込みを発生させるコマンドになります。loop()関数の実行中に、一つ目の引値(T2,T3)で設定したピンの信号値が三番目の引数(threshold)の閾値を下回ると二つ目の関数(gotTouch1,gotTouch2)を割り込みで実行します。クリックして書き込みます。閾値は40のままで試してみました。detected”とシリアルモニタに出力されました。簡単タッチパネルを作ってみるタッチセンサー機能を使って3×3の簡単なタッチパネルを作ってみました。タッチディスプレイにするには透明電極を使いますがITOなど扱えないのでアルミテープで電極を作りました。使わなくなった古いスマートフォンにアルミテープを幅3mm程で短冊切りしたものを等間隔に張っていきました。端部はワニ口で挟みやすいように折っておきました。最初に張ったアルミテープに直交させるように短冊切りしたセロハンテープを張って絶縁とし、その上にアルミテープを3枚貼りました。配線T0(GPIO4),T2(GPIO2),T3(GPIO15),T4(GPIO13),T5(GPIO12),T6(GPIO14)にメス-オスのジャンパーワイヤーを刺し、ジャンパーワイヤーの先にワニ口クリップをつけ、ワニ口クリップを作成した簡易タッチパネルのアルミテープ電極につなぎます。スケッチ”TouchRead”のスケッチを改造して縦のテープと横のテープの双方が検出されるとシリアルモニタに数値を出力するようにしました。}いろいろ試してみた結果、閾値は15としました。実行シリアルモニタを見ながらアルミテープの交点を指で押さえると1~9の数が出力されました。反応しない、または反応しっぱなしであれば1行目の閾値を変えてみます。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。