圧力センサの使い方

2023/01/20に公開約1,400字

用途

もう少し大きければ人の来訪を検知できるかもしれない
でも人なら人感センサでいい気もする
所定の場所に物を置いたときの検知の方が適しているかもしれない

部品

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

ログインするとコメントできます