トップページ > おもしろ科学実験室(工学のふしぎな世界) > さわるだけでON/OFFできるタッチセンサーを作ろう

おもしろ科学実験室(工学のふしぎな世界)

さわるだけでON/OFFできるタッチセンサーを作ろう

2020年9月11日
宇都宮大学 工学部

はじめに

 通常のスイッチは、金属同士がつながったり離れたりすることでONとOFFを実現しています。しかし、触るだけでONとOFFが切り替えられるスイッチも存在します。このようなセンサーはタッチセンサーと呼ばれています。この実験では、静電容量型と呼ばれるタッチセンサーを抵抗1つの簡単な回路とArduinoマイコンで実現します。

準備するもの

  • パソコン(Arduinoの開発環境であるArduino IDEが動作するもの)1台
  • Arduino UNO 1台
  • 100kΩの抵抗
  • クリップケーブル
  • コイン(あるいは金属板)

作り方

 実験装置の全体像を図1に示します。

図1図1

 まず、図2に示すように、Arduino UNOの8番ピンと9番ピンを100kΩの抵抗でつなぎます。そして、9番ピンとコインをクリップケーブルで接続します。実験装置は以上です。

 次に、以下のプログラムをArduinoの開発環境(Arduino IDE)を使ってArduino本体に転送して実行します。

図2図2
	

void setup() {
  // シリアル通信設定
  Serial.begin(115200);
  // 8番ピン設定
  pinMode(8、 OUTPUT); // ディジタル出力
  // 9番ピン設定
  pinMode(9、 INPUT); // ディジタル入力
  // 13番ピン設定(LED)
  pinMode(13、 OUTPUT);
}

void loop() {
  // カウンタ変数の初期化
  int c = 0;
  // 8番ピンをHIGHに変化させる
  digitalWrite(8、 HIGH);
  // 9番ピンがHIGHになるまで待つ
  while (digitalRead(9) != HIGH) {
    // カウントアップ
    c++;
  }
  // 500マイクロ秒待つ
  delayMicroseconds(500);
  if ( c > 2 ) { // 値2は必要に応じて調整してください
    // LEDを点灯
    digitalWrite(13、 HIGH);
  } else {
    // LEDを消灯
    digitalWrite(13、 LOW);
  }
  // 値を転送(デバッグ用)
  Serial.println(c);
  // 8番ピンをLOWにする
  digitalWrite(8、 LOW);
  // 放電するまで待つ
  delayMicroseconds(500);
}

 すると、コインをタッチすると基板上のLED(写真2参照)が点灯し、離すと消灯します。LEDの点灯がうまくいかない場合は、Arduino IDEのシリアルモニターを立ち上げて、タッチしていないときの変数cの値とタッチしているときの変数cの値を調べ、コインをタッチしたときのみ24行目のif文が成立するように24行目の数値を2から別の値に変更します。

動作原理

 作成した実験装置の等価回路を図3に示します。100kΩの抵抗は、8番ピンと9番ピンを接続した抵抗です。また、C0とChはコンデンサーを表します。実験装置では、コンデンサーの部品は使用していませんが、通常、電気回路は浮遊容量と呼ばれる微小な静電容量を持ちます。それを表したのがC0です。一方、Chは人間がコインに触れた時に生じる静電容量を表します。

図3図3
図4図4

 図4はコインをタッチしていないときの各ピンの電圧波形を表しています。オレンジが8番ピン、緑が9番ピンに対応しています。8番ピンの電圧が立ち上がると、9番ピンの電圧が若干遅れて立ち上がります。この遅れは、コンデンサーC0を充電するために生じたものです。

図5図5

 この状態でコインをタッチすると9番ピンの電圧応答は図3のようにゆっくり立ち上がるようになります。理由は、コインをタッチすると静電容量がC0からC0+Chに変化するため、充電に時間がかかるからです。

 作成したプログラムでは、次のようにして立ち上がりの変化をとらえ、タッチの有無を判定しています。まず、16行目で8番ピンを立ち上げます。そして、18行目のwhile文で、変数cを1ずつ増加させながら、9番ピンがHIGHになるまで待ちます。したがって、変数cは、9番ピンがHIGHになるまでにかかった時間に比例した値になります。そして、24行目のif文でタッチの有無を判定し、26行目と29行目でLEDのON/OFFをしています。32行目は、変数cの値をシリアル通信でPCへ転送するためのものです。

関連記事

2020-09-18

環境への取り組み

持続可能開発目標(SDGs)に基づいた 半導体デバイス試作のための教育研究環境の構築

島根大学総合理工学部

2017-11-02

生レポート!現役学生の声

進むべき道

香川大学創造工学部

2022-01-28

おもしろ科学実験室(工学のふしぎな世界)

オペアンプで周囲の明るさを一定に保つランプを作ってみよう

鳥取大学工学部

2020-01-17

生レポート!現役学生の声

理工学部で学ぶことの魅力

群馬大学理工学部

2015-08-19

生レポート!卒業生の声

熱中し,好きになること

静岡大学工学部

2020-02-21

おもしろ科学実験室(工学のふしぎな世界)

人工衛星の電波をキャッチしよう!

九州工業大学工学部

※このページに含まれる情報は、掲載時点のものになります。
このサイトは、国立大学55工学系学部長会議が運営しています。
(>>会員用ページ)
私たちが考える未来/地球を救う科学技術の定義 現在、環境問題や枯渇資源問題など、さまざまな問題に直面しています。
これまでもわたしたちの生活を身近に支えてきた”工学” が、これから直面する問題を解決するために重要な役割を担っていると考えます。