この記事では、Arduinoマイコンと加速度センサ(KXM52)を用いて傾斜角度を測定する方法をソースコード付きで解説します。
加速度センサ(KXM52)
今回はArduinoと今回は500円程度で入手できる圧力センサーFSR402とArduinoを用いて圧力を測ってみました。
回路構成(配線図)
Arduinoと電子部品の構成・配線は下記の通りです。

| 部品名 | 個数 |
|---|---|
| Arduino UNO | 1個 |
| 圧力センサ:FSR402 | 1個 |
| 5.1kΩ抵抗 | 1個 |
| ジャンプワイヤー | 数本 |
処理手順
実装するプログラムの処理の流れは下記の通りです。
| – | 説明 |
|---|---|
| ① | シリアル通信の速度を9600bpsに設定する。 |
| ② | アナログ入力値(1番ピン)から出力電圧を計算する。 |
| ③ | 出力電圧からFRSの抵抗値を計算する。 |
| ④ | FRSの抵抗値から圧力センサの荷重を計算する。 |
| ⑤ | 荷重データをシリアル通信で送る。 |
| ⑥ | 1000ms間待機する。 |
| ⑦ | 2-6の処理を繰り返す。 |
ソースコード
サンプルプログラムのソースコードは下記の通りです。
double R1 = 5.1;
void setup(){
Serial.begin(9600); // シリアル通信速度
}
void loop(){
// 変数の宣言
double Vo, Rf, fg;
// アナログ入力値を取得
int ain = analogRead(1);
// アナログ入力値から出力電圧を計算
Vo = ain * 5.0 / 1024;
// 出力電圧からFRSの抵抗値を計算
Rf = R1*Vo / (5.0 - Vo);
// FRSの抵抗値から圧力センサの荷重を計算
fg = 880.79/Rf + 47.96;
// 荷重[kg]の計算
kg = (fg / 4448) * 10;
// 荷重をシリアル通信で送る
Serial.println(fg);
// 1秒待機
delay(1000);
}
| — | 参考記事 |
|---|---|
| ① | 体重計を自作してみた (仮) |
| ② | Arduino入門 基本的な使い方 |


コメント
公立はこだて未来大学の4年生です。サイトとても参考になりました。ありがとうございます。このコードに関して一つ質問があります。
このコードで出た、圧力センサ:FSR402の値から計算した荷重って単位は何になるんですか?gとかhPaとかわかったら教えていただきたいです。
※ヤマダタカフミ さん
コメントありがとうございます。
荷重の単位はkgです。
返信ありがとうございます。とてもわかりやすかったです。