重力加速度gは、自由落下の運動方程式を解くことで求められる。
手で計算しても良いのですが、手元にhp50gがあるので
これを使って運動方程式を解いてみる。
求めた計算式は、重力加速度計の計算プログラムに
組み込む予定。
hp50gは、微分方程式を解くのに
DESOLVE <= コマンド
を使う。
重力加速度の計算式の求め方
計算式を組み込み用に書き直す
計算式を組み込むための注意点
PIC16F1705のメモリーサイズは、
プログラムメモリー: 8kW
データーメモリー : 1K byte
プログラムサイズが大きくならないように考慮する必要がある
考慮する点
- 落下時間の計算は、小数点付き行う (float)
- LCD表示は、整数表示とする (int)
- printf()関数は使わない
組み込み 計算式
gravity = 2 * Length / fallTime / fallTime * 1E6 * 1E3
重力加速度 g の計算は、Length[m] , fallTime[sec] でなされる。
PICの時間測定値は、[msec] なので、1E6をかけている
gravityの結果は、小数点付きなので 1E3(1000倍)している
まとめ
上の組み込み計算式を使うと、次のように表示される
計算値 LCD表示
重力加速度 g 9.800 9800
上記で考慮した重力加速の計算式を
プログラムに組み込む。
PICのような小メモリのマイコンを使う上での泣きどころが
がこの辺の制約です。
STM32シリーズのようにメモリーが多いチップならば
この問題はないが、使える機能は少ないため
外部のセンサーなどを接続するには向かない。


0 件のコメント:
コメントを投稿