- 静電容量式タッチセンサーとは何ですか?どのように機能しますか?
- 4方向静電容量式タッチセンサーの構築
- ESP32タッチ制御回路に必要な材料
- 静電容量式タッチセンサーの制御回路
- 静電容量式タッチセンサー回路のPCB設計
- ESP32ベースの静電容量式タッチセンサーのArduinoコード
- ESP32ベースのタッチセンサー回路のテスト
- さらなる機能強化
多くの場合、プッシュボタンの代わりにタッチセンサーが使用されます。利点は、ボタンを押すために力を加える必要がなく、タッチセンサーを使用してキーに触れることなくキーをアクティブ化できることです。タッチセンシング技術は日々普及しています。そして、過去10年ほどの間に、タッチセンシティブな電子機器なしで世界を想像することは困難になりました。抵抗膜方式と静電容量方式の両方のタッチ方式を使用してタッチセンサーを開発できます。この記事では、ESP32を使用して静電容量式タッチセンサーを作成する大まかな方法について説明します。以前は、Raspberrypiを使用して静電容量式タッチボタンも作成しました。
けれども、アプリケーション固有のタッチセンサは、少し複雑になることが、基本的な原理はので、この記事では、我々はに焦点を当てされ、同じこの技術ステーの基礎となる当社の静電容量式タッチセンサーを開発私たちのお気に入りの助けを借りてESP32と銅の一片クラッドボード。
前のチュートリアルでは、TTP223タッチセンサーとArduino UNOを使用してタッチでホームライトを制御しました。このプロジェクトでは、ESP32用のタッチセンサーを構築していますが、Arduinoにも同じことが使用できます。また、以前は、ATmega32マイクロコントローラーとのタッチキーパッドインターフェースやRaspberry Piとの静電容量式タッチパッドなど、さまざまなマイクロコントローラーを備えた静電容量式タッチパッドを使用したタッチベースの入力方法を使用していました。
静電容量式タッチセンサーとは何ですか?どのように機能しますか?
コンデンサにはさまざまな形態があります。最も一般的なのは、リード付きパッケージまたは表面実装パッケージの形式ですが、静電容量を形成するには、誘電体材料で分離された導体が必要です。したがって、簡単に作成できます。良い例は、次の例で開発するものです。
考えるとエッチングされたPCBなどの導電性材料、ステッカーは、銅パッドに触れることはタッチセンサー・コントローラが検出することが可能であるような方法で変化に静電容量の原因となるか、疑問が残るので、今、誘電体材料として機能していますか?もちろん、人間の指。
さて、主に2つの理由があります。1つは指の誘電特性を含む、もう1つは指の導電特性によるものです。 静電容量ベースのタッチを使用します。そこで、静電容量ベースのタッチセンサーに焦点を当てます。ただし、これらすべてについて説明する前に、ステッカーに使用されている紙のために、伝導が発生しておらず、指が絶縁されていることに注意することが重要です。そのため、指はコンデンサを放電することができません。
誘電体として機能する指:
コンデンサは、2つの導電性プレートの面積、プレート間の距離、および誘電率によって実現できる一定の値を持っていることは一般的な知識です。コンデンサに触れるだけでは面積を変えることはできませんが、人の指は表示する材料とは誘電率が異なるため、コンデンサの誘電率を確実に変えることができます。私たちの場合、それは空気です、私たちは指で空気を置き換えています。あなたがどのように尋ねているのなら?これは、人間の指が主に水で構成されているため、海面室温での空気1006の誘電率と指の誘電率が80前後ではるかに高いためです。したがって、指とコンデンサの電界との相互作用により誘電率が増加し、静電容量が増加します。
原理を理解したので、実際のPCBの作成に移りましょう。
4方向静電容量式タッチセンサーの構築
静電容量式タッチセンサ、このプロジェクトで使用するには、4つのチャネルを持っており、それが作るのは簡単です。以下に、それを作成するための詳細なプロセスについて説明しました。
まず、下の画像のようなEagle PCB設計ツールを使用して、センサー用のPCBを作成しました。
寸法とPhotoshopの助けを借りて、テンプレートを作成し、最後にセンサーのステッカーを作成しました。これは下の画像のようになります。
ステッカーが完成したら、PCBの作成に使用する実際のクラッドボードテンプレートの作成に移ります。これは次の画像のようになります。
これで、このファイルを印刷して、自家製PCBの作成プロセスに進むことができます。初めての方は、自宅でPCBを構築する方法に関する記事をご覧ください。以下のリンクから必要なPDFおよびガーバーファイルをダウンロードすることもできます
- 4チャンネル静電容量式タッチセンサーのガーバーファイル
完了すると、実際のエッチングされたPCBは次の画像のようになります。
次に、いくつかの穴を開け、いくつかのワイヤをPCBに接続します。ESP32ボードに接続できるようにします。完了すると、下の画像のようになります。
PCBにビアを入れなかったので、はんだ付け中にはんだがいたるところに行き渡ったので、上記のダウンロードセクションにあるPCBにドリル穴を開けることで間違いを修正しました。最後に、ステッカーを貼って最終的なものにする時が来ました。下の画像のように見えます。
これでタッチパネルの完成です。次に、タッチパネルの制御回路の作成に移ります。
ESP32タッチ制御回路に必要な材料
ESP32を使用してコントローラーセクションを構築するために必要なコンポーネントを以下に示します。それらのほとんどは、地元のホビーショップで見つけることができます。
また、以下の表に必要なタイプと数量のコンポーネントをリストしました。4チャンネルタッチセンサーとインターフェースし、4つのAC負荷を制御しているため、4つのリレーを使用してAC負荷を切り替え、4つのトランジスタを使用してリレーを構築します。ドライバー回路。
Sl.No |
部品 |
タイプ |
量 |
1 |
リレー |
スイッチ |
4 |
2 |
BD139 |
トランジスタ |
4 |
3 |
ネジ留め式端子 |
ネジ留め式端子5mmx2 |
4 |
4 |
1N4007 |
ダイオード |
5 |
5 |
0.1uF |
コンデンサ |
1 |
6 |
100uF、25V |
コンデンサ |
2 |
7 |
LM7805 |
電圧レギュレータ |
1 |
8 |
1K |
抵抗器 |
4 |
9 |
560R |
抵抗器 |
4 |
10 |
琥珀色のLED |
導いた |
4 |
11 |
男性ヘッダー |
コネクタ |
4 |
12 |
女性ヘッダー |
コネクタ |
30 |
13 |
赤色LED |
導いた |
1 |
14 |
ESP32 Dev Board V1 |
ESP32ボード |
1 |
12 |
クラッドボード |
ジェネリック50x50mm |
1 |
13 |
ジャンパー線 |
ワイヤー |
4 |
14 |
接続線 |
ワイヤー |
5 |
静電容量式タッチセンサーの制御回路
以下の画像は、ESP32ベースのタッチセンサーの完全な回路図を示しています。
ご覧のとおり、これは非常に単純な回路であり、必要なコンポーネントはごくわずかです。
シンプルなタッチセンサー回路なので、タッチでデバイスを操作したい場所で便利です。たとえば、通常のボードに取り付けられたスイッチを使用する代わりに、タッチでアプライアンスのオン/オフを切り替えることができます。
回路図では、DCバレルジャックが入力として使用され、回路に電力を供給するために必要な電力を供給します。そこから、安定化されていないDC入力を一定の5VDCに変換する7805電圧レギュレータがあります。 ESP32モジュールへの電力。
次に、回路図では、タッチパッドを接続するピン25、26、27、28にタッチコネクタがあります。
次に、BD139トランジスタを介して切り替えられるリレーがあります。ダイオードD2、D3、D4、D5は、リレーが切り替わるときに生成される過渡電圧から回路を保護するためにあります。この構成のダイオードは、フライバックダイオード/フリーホイールダイオード。各トランジスタのベースにある560R抵抗は、ベースを流れる電流を制限するために使用されます。
静電容量式タッチセンサー回路のPCB設計
タッチセンサー回路のPCBは、片面基板用に設計されています。PCBの設計にはEagleを使用しましたが、任意の設計ソフトウェアを使用できます。ボードデザインの2D画像を以下に示します。
回路基板に電流を流すために使用されるパワートラックを作成するために、十分なトレース直径が使用されました。ネジ留め式端子は、荷物の接続がはるかに簡単なため上部に配置し、DCバレルジャックである電源コネクタを側面に配置しているため、アクセスも簡単です。ガーバーと一緒にイーグルの完全なデザインファイルは、以下のリンクからダウンロードできます。
- ESP32ベースのタッチセンサー制御回路のガーバーファイル
デザインの準備ができたので、ボードをエッチングしてはんだ付けします。エッチング、穴あけ、はんだ付けの工程が終了すると、ボードは下図のようになります。
ESP32ベースの静電容量式タッチセンサーのArduinoコード
このプロジェクトでは、ESP32をカスタムコードでプログラムします。これについては後で説明します。コードは非常にシンプルで使いやすいです、
まず、必要なすべてのピンを定義します。この場合、タッチセンサーとリレーのピンを定義します。
#define Relay_PIN_1 15 #define Relay_PIN_2 2 #define Relay_PIN_3 4 #define Relay_PIN_4 16 #define TOUCH_SENSOR_PIN_1 13 #define TOUCH_SENSOR_PIN_2 12 #define TOUCH_SENSOR_PIN_3 14 #define TOUCH_SENSOR_PIN_4 27
次に、セットアップセクションでは、デバッグ用にUARTを初期化することから始めます。次に、シリアルモニターウィンドウを開くための少しの時間を与える1Sの遅延を導入しました。次に、 Arduinos pinMode 関数を使用して、 リレーピン を出力として作成します。これは、 Setup() セクションの終わりを示し ます 。
void setup(){Serial.begin(115200); delay(1000); pinMode(Relay_PIN_1、OUTPUT); pinMode(Relay_PIN_2、OUTPUT); pinMode(Relay_PIN_3、OUTPUT); pinMode(Relay_PIN_4、OUTPUT); }
ループ セクションを if ステートメントで開始します。組み込み関数 touchRead(pin_no) を使用して、ピンがタッチされたかどうかを判別します。 touchRead(pin_no) 、すべての時間、100に近い値に留まるが、我々は選択されたピンをタップした場合、値がほぼゼロに低下し、変化値の助けを借りて-関数は、整数値の範囲(100 0)を返し特定のピンが指で触れられたかどうかを判断できます。
で あれば 文で、我々は、整数値の変化をチェックして、28以下の値に達した場合、我々はタッチを認識していることを確認することができます。一度 ならば 文が真となり、我々は50msの間待ってから再度パラメータを確認し、これは、センサ値が誤って引き金だったかどうかを判断するために私たちを助けるだろう、その後、我々使って、端子の状態を反転 digitalWrite(Relay_PIN_1を、!digitalRead (Relay_PIN_1)) メソッドであり、残りのコードは同じままです。
if(touchRead(TOUCH_SENSOR_PIN_1)<28){if(touchRead(TOUCH_SENSOR_PIN_1)<28){Serial.println( "センサー1がタッチされました"); digitalWrite(Relay_PIN_1、!digitalRead(Relay_PIN_1)); }} else if(touchRead(TOUCH_SENSOR_PIN_2)<28){if(touchRead(TOUCH_SENSOR_PIN_2)<28){Serial.println( "Sensor Two is touched"); digitalWrite(Relay_PIN_2、!digitalRead(Relay_PIN_2)); }} else if(touchRead(TOUCH_SENSOR_PIN_3)<28){if(touchRead(TOUCH_SENSOR_PIN_3)<28){Serial.println( "Sensor Three is touched"); digitalWrite(Relay_PIN_3、!digitalRead(Relay_PIN_3)); }} else if(touchRead(TOUCH_SENSOR_PIN_4)<28){if(touchRead(TOUCH_SENSOR_PIN_4)<28){Serial.println( "Sensor Four is touched"); digitalWrite(Relay_PIN_4、!digitalRead(Relay_PIN_4)); }}
最後に、さらに200ミリ秒のブロッキング遅延でコードを終了します。
ESP32ベースのタッチセンサー回路のテスト
これは非常に単純なプロジェクトであるため、テストセットは非常に単純です。ご覧のとおり、4つのLEDを負荷として機能する抵抗器に接続しました。リレーに接続されているため、最大3アンペアの負荷を簡単に接続できます。
さらなる機能強化
PCBはシンプルですが、実際のPCBの下側からわかるように、まだ改善の余地があります。4つの表示LEDを接続するために多くの抵抗を接続しました。その場合、PCBのサイズも縮小できます。要件になります、
あなたが記事を楽しんで、何か役に立つことを学んだことを願っています。ご不明な点がございましたら、下のコメントセクションに残すか、フォーラムを使用して他の技術的な質問を投稿してください。