電子工作の有ると便利なモジュールを紹介します。
マイコンへの入力操作にタクトボタンなどがあります。
今回静電容量式タッチボタンを使った内容を記事にしました。
静電容量タッチボタン
簡単紹介
今回試してみた静電容量タッチパネルは5種類。
1個ボタンタイプ3種類とテンキーのようなマトリクスタイプ1種類です。
それぞれの簡単な特徴とスペックを記載します。
◆シングルタイプR(TTP223R)
最も小型でシンプルなタイプです。

◆シングルタイプB(TTP223B)

◆シングルタイプLED(HTTM)
タッチするたびに点灯と消灯を行います。
電源を一度遮断すると消灯しますが、点灯はプログラミングで制御することはできません。
全5種の中から4色とレインボー変化を購入時に指定します。

◆マトリクスタイプR(MRP-121)
行列(4×3)の12キー配置のタッチパネルです。
押されたキーは通信(I2C)により読み取ります。
複数ボタンの同時押しも認識できます。

外観
◆シングルタイプR(TTP223R)

◆シングルタイプB(TTP223B)

◆シングルタイプLED(HTTM)

◆マトリクスタイプR(MPR-121)

ピン配置
◆シングルタイプR(TTP223R)

◆シングルタイプB(TTP223B)

◆シングルタイプLED(HTTM)

◆マトリクスタイプR(MPR-121)

使ってみた
◆信号確認
タッチの感度や特性をまとめました。
タッチ中の電圧は、環境により若干変動があります。
感度は指先がセンサーに直接コンタクトするまでの距離を測っていますが、ばらつきがあります。
いずれも参考値です。
感覚でもTTP223やHTTMは高感度で、MPR-121は直接接触すると検出するようです。
| シングルタイプR(TTP223R) | シングルタイプB(TTP223B) | シングルタイプLED(HTTM) | マトリクスタイプR(MPR-121) | |
| タッチ中の電圧3.3/5.0V 印加時 | 2.9/4.7V モーメンタリ | 3.2/5.0V モーメンタリ | 3.3/3.3V ラッチ | – / – モーメンタリ |
| 検出までの気中距離 | 3mm | 3mm | 5mm | 0mm |
シングルタイプ(TTP223R, TTP223B)はタッチを検出するとHigh、離すとLowです。
シングルタイプLED(HTTM)は1回タッチで出力電圧はHighに固定、もう一回タッチでLowに固定されるラッチタイプでした。
マトリクスタイプR(MPR-121)は、信号レベルを直接確認することはなくI2Cによりタッチ状態に変化があったときに読み出します。
◆関連記事
準備
◆開発環境
Arduino環境でRaspberryPi Picoを使用します。
Arduino環境の準備はこちらの記事で紹介しています。
◆ボードライブラリ
Arduino IDEのボードマネージャからRP2040用のライブラリのインストールとボードの選択をします。
ボードライブラリには「Raspberry Pi Pico/RP2040 by Earle F. Philhower, III」を使用します。
Generic RP2040またはRaspberry Pi Picoを使用します。
| 追加のボードマネージャのURL | https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json |
| 検索 | RP2040 |
| ボードライブラリ | Raspberry Pi RP2040 Boards(x.x.x)※ |
| 選択するボード | Raspberry Pi RP2040 Boards(x.x.x) > Raspberry Pi Pico |
◆モジュールライブラリ
モジュールライブラリに以下の「Adafruit MPR121 by Adafruit」を使いました。
マトリクスタイプ(MPR-121)を使用する場合に必要です。
| ライブラリ名 | 用途 | 検索 | 確認時バージョン |
|---|---|---|---|
| Adafruit MPR121 by Adafruit | MPR121制御 | MPR121 | 1.3.0 |
| Adafruit BusIO by Adafruit | タッチパネル | BUSIO | 1.17.4 |
作業
シングルタイプ(TTP223R, TTP223B)
説明
オシロスコープ(OWON HDS272)を使って静電タッチパネルのタッチ状態を読み取ります。
この動作にはマイコン基板を使いません。
電源にUSBアダプター基板から5Vを供給します。
タッチにより出力される信号を確認します。
配線


結果
各モジュールの入力電圧に対するHighレベル電圧をオシロスコープ(OWON HDS272)でモニタしました。
TTP223R, TTP223Bどちらともタッチ中は電圧がHightになります。
High電圧は電源電圧に対して、10%程度の低下がみられました。

タッチ判定は完全にパッドに接触する前でもHighになりますが、判定された距離から1~2mm離れるとLow電圧になります。
判定にはヒステリシスがあるようで、オシロスコープの波形を見てもチャタリングがみられません。
シングルタイプ(TTP223R, TTP223B)は基板の面積が違うだけで性能に目立った違いは見られませんでした。
シングルタイプLED(HTTM)
説明
オシロスコープ(OWON HDS272)を使って静電タッチパネルのタッチ状態を読み取ります。
この動作にはマイコン基板を使いません。
電源にUSBアダプター基板から5Vを供給します。
タッチにより出力される信号と、シングルタイプ(HTTM)基板の発光を確認します。
配線

結果
タッチすると点灯、もう一度タッチすると消灯しました。
輝度は控えめで晴れた昼間の屋外では点灯状態はわかりにくい程度です。
赤、黄、緑、水、青、紫 の順で数秒ごとに徐々に色変化をしていきます。
外観から発色はわからないので、裏面に色シールを貼って識別しています。

LEDの点灯状態はOUT端子から読み取ることができます。
電源電圧にかかわらず点灯時には3V程度の出力がありました。

OUTからの信号はHightの時に発光しています。
INへの電源供給を止めるとOUTの出力はLowになり消灯します。
端子からの操作で初めから発光させることはできないようです。
マトリクスタイプ(MPR-121)
説明
マトリクスタイプ(MPR-121)制御ライブラリを使ってタッチ状態を読み取ります。
ライブラリは 「Adafruit MPR121 by Adafruit」のサンプルスケッチ「MPR121-Auto-Config」を使いました。
I2Cで読み取るマイコン基板にはRaspberry Pi Picoを使用しました。
配線

結果
Arduinoのシリアルモニタを使ってタッチ状態を読み取りました。
タッチパネルのパッド部をタッチしたり離したりすることで、該当パッドの番号の”touched”と”released”情報を得ることができました。
下図はタッチパネル上の”0″をタッチしながら”1″をタッチし、”1″を離してから”0″を離す操作です。
“touched”と”released”の情報は操作通りの順番で出力されたので、複数パッドの同時押しにも対応しています。

TTP22n系やHTTMのように、現在の状態を電圧で読み取る方式ではないため、起動直後からタッチされているかの判定は難しいようです。
パッドをタッチした状態でRaspberryPi Picoに電源を投入してみましたが、”touched”と”released”が連発しています。
何も触れていない状態にしての起動が必要です。



コメント