応用編の最後として、タッチセンサ機能を実装します。
タッチセンサ機能を実装!
最近はスマホが必需品になっていて、スマホの画面を当たり前のようにタッチ操作している方も多いと思います。
スマホを操作するとき、どういう仕組みで指が画面にタッチしたことを検知しているのか気になったことはありませんか?
ところで、このシリーズで使っているPIC12F1822にも、タッチを検知するためのタッチセンサ機能が内蔵されています。
応用編の最後として、PICマイコンのタッチセンサ機能を利用したタッチスイッチを実装することにより、世の中で広く使われているタッチセンサの原理を確認してみましょう。
タッチセンサ機能の原理を理解する前に
タッチセンサを実現するための原理は何種類かありますが、多く使われているのが「静電容量方式」というものです。
PIC12F1822でもこの方式が使われていて、この機能のことをPICマイコンでは「mTouch」と呼んでいます。
データシートでもこの単語が使われています。
赤枠で囲った部分に「Capacitive Sensing(静電容量検知)」と「mTouch」という単語が出てきます。

これから、この静電容量方式のタッチセンサの原理を説明しますが、そもそも「静電容量方式」って何?、って感じですよね。
そこで、「静電容量方式」を理解するための前提の知識から順を追って説明していきます。
このシリーズで製作しているタイマーでは「コンデンサ」という部品を実装しました。(PICマイコンの電源ピンのすぐ近くに接続した部品です)
「静電容量方式」のタッチセンサの原理を理解するには、この「コンデンサ」という部品の性質を理解するところから始まります。
このコンデンサという部品は主に次のような性質を持っています。
- 電気をちょっとだけ貯めることができる
- 電気的なノイズを緩和する
「静電容量方式」を理解するためのポイントは、このコンデンサの性質のうち「電気をちょっとだけ貯めることができる」という点です。
これからこの「コンデンサ」という部品は、どのような仕組みで電気を貯めることができるのか、ということを説明します。
電気の性質
小学校や中学校の理科の時間で「電気のプラスとマイナスは引き合って、プラス同士、あるいはマイナス同士は反発する」って習ったことを覚えているでしょうか。
プラスチックの下敷きで髪の毛をこすると、下敷きに髪の毛が吸い寄せられる、という実験をしたことがあるかもしれません。
これは、下敷きと髪の毛をこすると、下敷きがマイナス、髪の毛がプラスの電気を帯びて、プラスとマイナスが引き合うためです。
コンデンサはこの「電気のプラスとマイナスが引き合う」という性質を利用して、電気を貯めています。
コンデンサは基本的に次のように金属板や金属の薄膜を向かい合わせにしただけの部品です。
ポイントは金属同士がくっつかないようにちょっとだけ隙間を開けている点です。(金属同士がくっついてしまうと単に電気を通すだけの部品になってしまいます)
例えば、家にあるアルミホイルも金属ですので、アルミホイルを使ってコンデンサを作ることもできます。(実際にアルミホイルで作ったコンデンサでラジオを製作する記事もネットで多く紹介されています)
次に、このように向かい合わせにした金属それぞれに、電池を接続してみます。
すると、電気の基本的な性質(プラスとマイナスは引き合う性質)により、それぞれの金属にプラスとマイナスの電気が貯まります。
電子工学の世界では、これらの電気の粒のことを「電荷」と呼んでいますで、これからは「プラスの電荷」「マイナスの電荷」などと呼ぶことにします。
また、このように金属などにプラスやマイナスの電荷が貯まることを「帯電」と呼んでいます。
コンデンサの性質
次にコンデンサの性質についてもう少し詳しくみてみます。
先ほどのコンデンサを、2通りの方法で形状を変化させるとどうなるか考えてみます。
一つは、金属の面積を変えるとどうなるか、もう一つは、金属間の距離を変えるとどうなるかです。
金属の面積を変える
最初に、金属の面積を大きくするとどうなるか見ていきましょう。
金属の面積を大きくすると、電荷を貯める領域が増えますので、コンデンサが貯めることができる電荷の量は増えることになります。
図で考えてみるとわかりやすいかな、と思います。
金属間の距離を変える
次に、金属の間の距離を変えるとどうなるか見ていきます。
例えば、金属間の距離を近づけるとどうなるでしょうか。
電荷の性質として、プラス電荷とマイナス電荷は、距離が近いほど引き合う力が強くなります。
イメージとしては、磁石の場合N極とS極を近づけていくと引き合う力がだんだん強くなる、という感じです。電荷の場合も磁石と同じような性質を持っています。
そのため、金属同士を近づけると、コンデンサが貯めることの電荷の量は増えることになります。
逆に金属同士を離すと、電荷が引き合う力が弱くなるので、貯まる電気の量は減ります。
このように、コンデンサは金属の面積や距離で貯めることができる電荷の量が変わります。
以上が基本的なコンデンサの性質です。
コンデンサの用語
コンデンサの性質が分かりましたので、最後にコンデンサに関する用語を確認します。
このコンデンサが電荷を貯めることのできる量を「静電容量」と呼んでいます。
「容量」という言葉は今までの説明でなんとなく納得できると思いますが、「静電」ってわかりづらいですよね。
上の図で、電気を貯めた状態の時、電荷は静止しています。このように電気が貯まった状態(帯電している状態)のときの容量を意味するイメージで「静電容量」と呼ばれています。
この用語の使い方としては、より多くの電荷を貯めることができるコンデンサのことを「静電容量が大きいコンデンサ」などというように、静電容量は「大きい」「小さい」と表現します。
また、コンデンサの静電容量は数値で表現され、単位は「F」(ファラッド)です。
入門編でPICマイコンのすぐそばに接続したコンデンサは「0.1μF」(マイクロファラッド)です。
当然ですが、この数値が大きいほど、より多くの電荷を貯めることができます。
また、静電容量の大きいコンデンサほど、物理的な大きさも大きくなります。
タッチセンサの仕組み
コンデンサという部品の性質と用語を理解したところで、タッチセンサの仕組みの説明に進みましょう!
ここからちょっと不思議な話になります。
コンデンサは2枚の金属を向かい合わせにした電子部品、と説明しました。
ところで、以下のように金属板を1枚だけ用意した場合、この1枚の金属は電荷を貯めることができるでしょうか。つまり、この1枚の金属は静電容量があるかどうか、という疑問です。
直感的には、もう片方の金属がないわけだから、電荷は貯められない(=静電容量はゼロ)ですよね。
ちょっと不思議に思われるかもしれませんが、金属板1枚でも静電容量はあるんです。
今までの説明からすると、もう片方の金属がないと相方の電荷がないため、この金属板は電荷を貯めることはできません。
もう片方はどこにあるのでしょうか?
この1枚の金属は単独で存在しているわけではなく、例えば家でこの1枚の金属板を用意して実験しようとすると、この金属の周りには「実験に使っている机」、「実験している人」や、さらにその周りに「家電や家具」などがありますよね。
実は、それらがもう片方の電気を貯めるものになります。
とは言っても、コンデンサは金属同士が向かい合わせの構造になって静電容量を持つわけですから、周りに物や人があっても、それは金属ではありません。
周りに何かあったところで金属板を1枚だけ用意しても、その金属板には電荷は貯められないって思いますよね。
人の身体は、金属ほど電気が流れませんが、ほんのちょっとだけ電気が流れます。また家電や家具などもほんのちょっとだけ電気を貯めることができます。
そのため金属板ほど電荷を貯めることはできませんが、それらはもう片方の金属の役割を果たすわけです。
ここまでの説明で、1枚の金属板があれば電荷を貯めることができる、つまり静電容量を持つ、ということがわかりました。
次に、金属板の近くに人がいて、その人が金属板に近づいたらどうなるか考えてみます。
記事の最初の方で、2枚の金属板の距離を近づけると静電容量が増えることを説明しました。
金属と人の関係も同じで、人が近づくと静電容量が増えます。
さらに指を金属板に近づけるともっと静電容量が増えます。
タッチセンサはこのように人(の指)が金属に近づくと、その金属の静電容量が増えることを利用して、人のタッチを検知しています。
それでは、PICマイコンやスマホ画面は具体的にどのように静電容量の変化を検知しているのか、次回実際にPICマイコンを使って説明します。
更新履歴
日付 | 内容 |
---|---|
2017.10.22 | 新規投稿 |
2018.12.2 | 誤記訂正 |
2025.5.26 | 説明補足 |
いつもブログを拝見しております。
よく理解できない部分もある自分ですが、質問があります。
仕事で使う道具なのですがAC100Vの通る電線があります。この電線にAC電圧がなくなったのを検出する必要があるのです。また、この時間も問題になります。タイムラグがあると困るのです。(決まった値なら引くだけですので可です)
電線は1.25程度のビニール線。ビニールコードのようにくっついてはいません。ワニグチなどで被覆の外から挟んでACの切れたのを検出したいのです。
簡単にはいかないでしょうか?
よろしくお願いいたします。
jh3gpnさま、
ご質問どうもありがとうございます。
AC100Vを電線に接続せずに被覆の外から検知するには、以下のような電流センサで検知する方法があります。(この記事で説明しているような静電容量の変化では検知できないです)
https://www.amazon.co.jp/SODIAL-016490-R-磁場検出のホールセンサモジュール/dp/B00KCFTUWC/ref=sr_1_2?ie=UTF
このような非接触電流センサは、電流が流れることにより磁場が発生するので、その磁場を検知することにより電流検知をしています。そのため、電流が流れるように電線に負荷がつながっていることが前提です。また反応時間は比較的早いです。
一方で、例えば壁のコンセントのような負荷がつながっていない状態でAC100Vがきているかどうかを調べるには、どうしても電線に何かを接続して調べる必要があります。
返信ありがとうございます。
残念ながらこの記事の仕掛けでは無理ですか。
ほとんど無負荷ですし、何かを電気的に接続できない状況です。クリップで電線を挟んで検出する装置が市販されているのですが高価ですので自作を考えています。
情報どうもありがとうございます。
そのような製品が売られているんですね。無負荷の場合、電流は流れていないため磁界による検知は難しいため、クリップで挟んで検知するとなると、この記事で説明している静電容量を利用しているのではないかと思われます。
電線にクリップを挟むと、電線とクリップの間に静電容量ができますので、電線に加わっている電圧が交流の場合、静電容量を介してごくわずかの電流が流れますので、それを検知するんですかね。その場合、流れる電流は本当にごくわずかですので、相当感度の高い電流検知能力が必要になります。そのため、かなりコストがかかるのではないかと思います。
有用な情報を提供できずに申し訳ございません。