このチュートリアルはの一部です: Arduinoを使ったリレー制御
リレー関連の動画グループです。他の動画へのリンクはこの記事の下にあります。
TTP223Bタッチモジュールとリレーを使ってArduinoでAC/DC負荷を制御する
このチュートリアルでは、TTP223B 静電容量式タッチモジュールをリレーと組み合わせて Arduino を用いて交流(AC)または直流(DC)負荷を制御する方法を解説します。TTP223B モジュールはタッチセンサーとして機能し、軽く触れるだけでリレーをオン/オフできます。この構成は、照明やその他の電子機器を遠隔で制御するなど、さまざまな用途に利用できます。




このプロジェクトの成果は、電気機器向けの効率的で使いやすいタッチ式制御システムです。必要なハードウェア部品、配線手順、コードの説明を順を追って解説し、プロジェクトをスムーズにセットアップできるようにします。さらに詳しくは、動画内の00:00をご参照ください。
ハードウェアの解説
このプロジェクトで使用される主な部品はTTP223Bタッチモジュールとリレーです。TTP223Bは静電容量式タッチセンサーで、タッチ入力を検出してハイまたはローの信号を出力します。動作電圧は2.0V〜5.5Vで、Arduinoの5V論理と互換性があります。タッチパッドが作動するとモジュールはArduinoに信号を送り、Arduinoはリレーを制御できます。
リレーは高電圧機器を制御できるスイッチとして機能します。低電圧のArduino信号で、より高い電圧の交流(AC)または直流(DC)負荷を制御できるようにします。この分離により、Arduinoはより大きな機器を制御している間も安全に保たれます。リレーは通常、動作に小さな電流を必要とし、これはArduinoで容易に供給できます。
データシートの詳細
| 製造元 | 不明 |
|---|---|
| 部品番号 | TTP223B |
| ロジック/IO電圧 | 2.0〜5.5V |
| 電源電圧 | 2.0~5.5 V |
| 出力電流 | 最大20 mA |
| 出力タイプ | デジタルのハイ/ロー |
| 応答時間 | 典型値 60 ms |
| 動作温度 | -20〜85°C |
| パッケージ | TO-92パッケージ |
| 備考 / バリエーション | 各種感度設定 |
- 適切な電源 (2.0 - 5.5 V) を確保してください。
- タッチ感度設定に注意してください。
- 高電流リレーの駆動にはトランジスタを使用してください。
- 信号干渉を避けるため、配線は短くしてください。
- まず低電圧機器でリレーの動作をテストしてください。
配線手順
TTP223BタッチモジュールとリレーをArduinoに配線するには、次の手順に従ってください:
まず、接続してくださいVCCTTP223BのピンをArduinoの5Vピンに接続し、GNDピンをグラウンドに接続します。次に、TTP223Bの出力ピン(通常はラベルが付いています)を接続しますOUT) を Arduino のデジタルピン2に接続します。リレーについては制御ピンを Arduino のデジタルピン10に接続してください。リレーの VCC と GND もそれぞれ Arduino の 5V とグラウンドに接続する必要があります。最後に、リレーの仕様に従って負荷回路をリレーに接続します。
すべての接続が確実に固定されていることを確認し、短絡を防ぐためにリレーの配線を再確認してください。リレーモジュールを使用する場合は、モジュールの取扱説明書に記載された配線手順を参照してください。
コード例と解説
以下は、TTP223Bタッチセンサーを設定し、リレーを制御するArduinoコードの一部です:
int LD = 200; // Loop Delay. Controls how long after release the bulb is ON
void setup() {
Serial.begin(9600);
pinMode(10, OUTPUT); // LED for button 1
pinMode(2, INPUT); // Button 1 input pin 2
Serial.println("Robojax Test: TTP223B touch");
}
この抜粋では、変数LDタッチが検出された後、リレーがどのくらいの間アクティブなままでいるかを制御するように定義されています。そのsetup()関数はシリアル通信を初期化し、ピンを出力用と入力用に設定します。
void loop() {
if(digitalRead(2)) {
Serial.println("Button Touched");
digitalWrite(10, LOW); // Turn the LED ON
delay(LD);
} else {
digitalWrite(10, HIGH); // Turn OFF the LED
}
}
そのloop()この関数はピン2の状態を読み取ってタッチセンサーが作動しているかどうかを確認します。タッチが検出されるとシリアルモニタにメッセージを表示し、ピン10に接続されたリレーを作動させます。定義された遅延後にリレーをオフにします。
デモンストレーション/当日の流れ
配線を終えてコードをアップロードすると、TTP223Bモジュールに触れることでリレーが作動し、接続された負荷がオンになります。タッチが検出されるとシリアルモニタに Button Touched と表示されます(動画では05:00)。リレーが作動しない場合は、配線を再確認し、リレーが正しく動作していることを確認してください。
よくある落とし穴はピン割り当ての誤りや配線ミスで、これらがリレーを意図したとおりに動作させないことがあります。負荷の定格電圧や定格電流に注意し、リレーやArduinoを損傷しないようにしてください。
動画のタイムスタンプ
- 00:00- はじめに
- 午前05:00- タッチ操作のデモ
- 07:30- 配線の手順
/*
* これはリレー付きTTP223B静電容量タッチスイッチのためのArduinoコードです。出力ピン10はリレーに接続されています。TTP223BまたはTTP223N-BA6のタッチパッドに触れることで、リレーがONになります。
*
* Ahmad NejrabiによってRoboja Videoのために書かれました。日付:2017年12月4日、カナダ・オンタリオ州アイアックスにて。このコードを共有する許可が与えられていますが、このメモがコードと一緒に保持されることが条件です。免責事項:このコードは「現状のまま」であり、教育目的のみに使用されます。
*/
int LD = 200; // ループディレイ。放出後、バルブがONである時間を制御します。
void setup() {
Serial.begin(9600);
// 出力ピン
pinMode(10, OUTPUT); // ボタン1用LED
// 入力ピン
pinMode(2, INPUT); // ボタン1入力ピン2
Serial.println("Robojax Test: TTP223B touch");
}
void loop() {
// ボタン1のアクション
if(digitalRead(2)){
Serial.println("Button Touched");
digitalWrite(10, LOW); // LEDをオンにします。
delay(LD);
}else{
digitalWrite(10, HIGH); // LEDを消してください。
}
} // ループ
/*
* これはTTP223 Capacitive TouchスイッチのためのArduinoコードで、リレーを使ってACまたはDC負荷をONまたはOFFにします。
* // 2017年12月13日
* // Robojax.comのビデオ用に作成
* // TTP223タッチモジュールを使用してAC(またはDC)負荷をONまたはOFFにします。
* // タッチパッドに触れると、リレーのランプが点灯し、COMとNOピンが接続されます。
* 詳細についてはビデオをご覧ください https://youtu.be/YSI1PdSLbt0
*
* RoboJaxビデオのためにAhmad Nejrabiによって作成されました。
* 日付:2017年12月4日、カナダ・オンタリオ州エイジャックス
* このコードを共有することが許可されていますが、この
* メモがコードと共に保持されることが条件です。
* 免責事項:このコードは「あるがまま」であり、教育目的のみで使用されます。
*
* /
*
* // 2017年12月12日
* // Robojax.comのビデオ用に作成
* // TTP223タッチモジュールを使用してAC(またはDC)負荷をONまたはOFFにします。
* // タッチパッドに触れると、リレーのランプが点灯し、COMとNOピンが接続されます。
*/
int touchPin = 2; // TTP223からの出力をこれに接続します
int val = 0;
int relayPin = 10; // リレーに接続されました
void setup() {
Serial.begin(9600);
pinMode(touchPin, INPUT);
pinMode(relayPin, OUTPUT);
}
void loop() {
digitalWrite(relayPin, HIGH);
val = digitalRead(touchPin);
if(val ==1){
Serial.println("Touched");
digitalWrite(relayPin, LOW);
}
delay(100);
Serial.println();
}
/*
* これは、遅延を伴ってACまたはDC負荷をオンにするためのリレーを備えたTTP223容量性タッチスイッチ用のArduinoコードです。
* // 2017年12月13日
* // Robojax.comのビデオ用に作成
* // TTP223タッチモジュールを使用してAC(またはDC)負荷をオンにし、5秒待ってからオフになります
* // タッチパッドに触れるとリレーのランプが点灯し、COMとNOピンが接続されます
* 詳細はビデオを参照してください: https://youtu.be/YSI1PdSLbt0
*
* Ahmad NejrabiによってRoboJaxビデオのために書かれました
* 日付: 2017年12月4日、カナダ・オンタリオのアジャックスにて
* このコードを共有する許可が与えられていますが、このメモがコードと一緒に保持されることが条件です。
* 免責事項: このコードは「現状のまま」であり、教育目的のみです。
*
* /
*
* // 2017年12月12日
* // Robojax.comのビデオ用に作成
* // TTP223タッチモジュールを使用してAC(またはDC)負荷をオンまたはオフにします。
* // タッチパッドに触れるとリレーのランプが点灯し、COMとNOピンが接続されます。
*/
int touchPin = 2; // TTP223の出力をこれに接続します。
int val = 0;
int relayPin = 10; // リレーに接続されました
int wait = 5; // 5秒待ってください
void setup() {
Serial.begin(9600);
pinMode(touchPin, INPUT);
pinMode(relayPin, OUTPUT);
}
void loop() {
digitalWrite(relayPin, HIGH);
val = digitalRead(touchPin);
if(val ==1){
Serial.println("Touched");
digitalWrite(relayPin, LOW);
delay(wait*1000);
}
delay(100);
Serial.println();
}
リソースと参考文献
まだリソースはありません。
ファイル📁
データシート(pdf)
-
TTP223 データシート (台湾半導体 - トンテック)
TTP223_datasheet.pdf0.27 MB