Arduinoで研究室の接触位置センサを破壊してしまった話

# Arduinoで接触位置センサを破壊してしまった
　接触位置センサ（押した位置を取得できるセンサ）を使って何かできないかと模索していたのですが、突如センサが一定値しか返さなくなってしまいました。以下の写真がその壊してしまった接触位置センサです。

![接触位置センサ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/219573/87affc24-0041-143e-5f6e-597676e3f377.jpeg)


　センサをよく見てみると、なんか溶けていました……。

![IMG_2932.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/219573/d9ab990f-a705-a420-7f46-00b3e4f93aca.jpeg)

　二度とこんな事態を起こさないように原因を究明し、注意できるようにしたいので、まとめます。

# センサの使用状況
### 使用状況
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/219573/de8b50f0-e4e9-e2dd-fc90-6359cd8db38a.png)

回路は上記写真のものを利用していました。

接触位置センサの出力である真ん中の端子には計9.4kΩのプルダウン抵抗を設置し、電圧の安定化を図っています。
赤色の注釈されている三本の線は、それぞれArduino UNOのVCCの5V、アナログ入力のA0、GNDに繋がっています。

[接触位置センサの仕様](https://www.hiro-tec.com/spectra/pdf/softpot.jp.pdf)は以下の通りです。
> -抵抗値 - 標準: 10kΩ
 (長さ >300mm = 20kΩ)
-抵抗値 - カスタム: 1k ~ 100kΩ
-抵抗値許容値 : ±20%
-電気的操作範囲 : 8 ~ 2000mm
-リニアリティ: ±1% & 3%
 ロータリー: ±3% & 5%
-再現性: ヒステリシスなし(ワイパー使用時
　　　　ヒステリシスが起きる場合がある)
-電力定格 (サイズ・温度により異なる:
　　　　　25℃で最大１W(0.5W以下を推奨)
-分解能: アナログ出力で無限小：表面のワイパーの
　　　　接触により影響され る
-誘電価値: なし@1分間で500VAC

# 原因
結論から言うと、センサが壊れたのは、過剰な電力でセンサを利用したためでした。
全く注意が足りなかったと思います……。

#### 定格電力ぴったり

[接触位置センサの仕様](https://www.hiro-tec.com/spectra/pdf/softpot.jp.pdf)の通り、電力定格は最大で1ワットです。
そして、１ワットは、

`1[W] = 1[A] × 1[V]`

で求められます。

そして、Arduino UNOのVCCは`5V`で、`0.2A`だそうです（他に何も部品を取り付けていないとき）。
したがって、Arduino UNOのVCC5Vの電力はこうなります。

`5[V] × 0.2[A] = 1[W]`

つまり、計算上電力定格最大値ジャストの電力をセンサに流していたというわけです……！
超えてはならない電力などの最大値を最大定格と言います。電圧に関する最大定格とは、センサが壊れずに受け入れることのできる電力の最大値です。
電圧は多少不安定になることも多いですから、最大定格値を超過することもあったのでしょう。
壊れてしまったのは道理だと言えます……。

#### 定格電流・定格電圧
最大電力に準ずる概念として、最大電流・最大電圧があります。
いずれも、一瞬たりとも超えてはならない電力・電流・電圧値を表しています。

ポイントは、**一瞬たりとも**という点です。

#### センサをこれ以上破壊しないために
初めてのセンサを使用するときは、その最大定格電流や、最大定格電圧などを必ず確認し、Arduinoやラズベリーパイの各端子の電流供給能力、電圧供給能力、および電力がそれらを超えていないか、また、付近の値にならないことをしっかりと確認することでセンサが壊れてしまうのを回避できるでしょう。

そのためには、それぞれの電気供給能力を把握しておく必要があります。
使用するマイコンについて、まとめておきましょう。

Arduino UNO R3 については以下の通りです。


 - IOピンの電流供給能力は20mA
 - 3.3Vピンの電流供給能力は50mA

ここまでは、[公式の商品情報ページ](https://store.arduino.cc/usa/arduino-uno-rev3)を参考にしました。
5Vピンについての記載がないので、これについても探してみました。

以下の引用文は[ここから](https://playground.arduino.cc/Main/ArduinoPinCurrentLimitations/)の引用です。
>Absolute Maximum Ratings - the point where damage will start to happen

>DC Current per I/O Pin ........... 40.0 mA

>DC Current VCC and GND Pins...... 200.0 mA

>1 VCC pin: Means these Arduinos can Source a total of 200 mA

>2 GND pins: Means these Arduinos can Sink a total of 400 mA

IOピン一つあたりの最大定格は40.0mA、
VCCとGNDピンは200.0mAが最大定格のようです。

そして、VCCピンから流れる合計電流の量が200mAで、
GNDに流していい電流量が合計400mAのようです。

※**英語からっきしダメな人間なので、注意お願いします。**

---

筆者はラズベリーパイも持っているので、それについてもまとめておきます。

**ラズベリーパイのGPIOから流れる電流の合計は50mAです。**
そして、各ピンから流れ出る最大電流は16mAみたいです。

※以下のサイトを参考にしました。
[Rasberry Pi公式ドキュメントを日本語訳](https://igarashi-systems.com/sample/translation/raspberry-pi/hardware/power.html)

# まとめ
悲しい事態を引き起こさないために、センサなどの部品の仕様と、使用するマイコンの電流、電圧を必ずチェックするようにしましょう。

現場からは以上です。

# 参考文献
[1〔J〕の熱量と、1〔W〕の電力について](https://www.denken3.com/recipe/recipe03/recipe002-3.html)
[各々の最大定格について](https://www.njr.co.jp/products/semicon/related/absolute.html)
[Arduino UNO スペック](https://store.arduino.cc/usa/arduino-uno-rev3)