圧力センサー FSR406の値をArduinoで読み取る
JUGEMテーマ:趣味
荷物が置かれているか否かを判断する手段として色々考えられる。
簡単に考え付くのが
・重さを量る
・赤外線や光が遮られたか否か
・超音波や赤外線センサーを発射して信号が返ってきたら、または返って来るまでの時間から何かがあると判断。
なんですが、
秋月のページを眺めていると重さを測るセンサーが有ったので買ってみました。
FSR406という四角いやつです。

次の回路で組んでみた。

で
センサーの値だが、
いろいろ乗せてみる。

置いたもの : 重さ : センサーA0の値
何も置いていない : 0g : 1023
ごま油 : 233g : 873
ネギ油 : 132g : 879
コショー : 72g : 879
醤油 : 139g : 1023
屋久島みやげ : 291g : 1023
一日分の野菜 : 221g : 1023
値がどうもばらつく。
底が平べったいものはほぼ反応無し。
指で押してみると結構いい感じなんだけどね。。
で、
指みたいなやつの方が反応が出やすいっぽいので
センサーの上に指の変わりにゴムを乗せてその上に荷物を乗せてやってみる。
置いたもの : 重さ : センサーA0の値
ごま油 : 233g : 665
ネギ油 : 132g : 786
コショー : 72g : 843
醤油 : 139g : 760
屋久島みやげ : 491g : 338
一日分の野菜 : 221g : 478
いい感じになった。
でここでふと思ったんだがこのセンサーって、
自身のゆがみを検出しているのは?
と思い、センサーを曲げてみると曲げれば曲げるほど数値が下がる。
圧力センサーとはそういう物なのだった。
歪みセンサーとしても活用可能かもしれません。

プログラム
const int SENSOR = 0;
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
Serial.println("start:");
}
void loop() {
int val;
char szDisplay1[256];
digitalWrite(13, HIGH);
delay(50);
digitalWrite(13, LOW);
delay(50);
val = analogRead(SENSOR);
sprintf(szDisplay1, "value = %d", val);
Serial.println(szDisplay1);
}