圧力センサの使い方

2023/01/20に公開

機能

圧力を抵抗値に変換する。物を載せたときの検知に使える。

部品

https://akizukidenshi.com/catalog/g/gP-16406

項目
検出範囲 3~150N
作動力 3N
無負荷時抵抗値 20MΩ以上
使用温度範囲 -30~85℃
出力形式 アナログ(抵抗値)

配線

  1. 5V → センサ → A0
  2. センサ → R(10KΩ) → GND

GNDの前に抵抗がある形をプルダウン抵抗と呼ぶ。当初(1)だけで動かしていたが(2)の配線がとても重要だとあとでわかった(後述)。

コード

void setup() {
  Serial.begin(9600);
  pinMode(A0, INPUT);
}

void loop() {
  Serial.println(analogRead(A0));
  delay(1000 / 30);
}

実行結果

摘んだときだけ高い値になっているのがわかる。

押し加減と値の関係

状況 アナログ入力値
押してない 0〜2
触れている程度につまむ 0〜2
優しくつまむ 120
普通につまむ 600
強くつまむ 970

わりと正確な比例関係になっている。

はまった点

当初 5V → センサ → A0 とだけ繋いでいたので押していない状態が不安定だった。


プルダウン抵抗なしは200〜550まで揺れる

それでも押すと 1023 まで上がるので 550 との差で計ればいいのかと考えていた。しかし他の方の記事を拝見するとプルダウン抵抗が必要とのことだった。


プルダウン抵抗をつけると0〜2になった

疑問

抵抗の10KΩという値はどこからきた?

参考

https://toccho.net/2021/10/31/arduino-pressure/

Discussion