2024年3月26日火曜日

重力加速度の表示までの流れ

はじめに

重力加速度の計算コードを書く前に、

取り扱う数値がどの位の大きさになるが把握して

変数のデーター型式を決めなければならない。

例えば int ならば次のようになる。

int 16ビットの符号付き数値

          −32768 〜 32767


落下検出から重力加速度表示までの流れ



計算の流れと扱う数値

説明の都合、下記の前提をおく。

落下時間: 285.7 msec

落下距離: 0.4 m

time Capture サンプル: 8μsec


Timer1のcapture の値

S1検出信号で Timer1をクリアして、

S2検出信号がトリガーに入ると

Timer1のcapture レジスターには、

    35713 が入る。

この値の意味は、

    落下時間285.7 msecを 8μsec  で割った値

コードの中では、stopT 変数に入れる。

stopT: 35713 


重力加速度の計算式で使う値

stopTを μsec 単位で使いたいので

stopT X 8倍とする

stopT =  285700 μsec  <= 落下時間の値になっている

10進6桁程度の数値となっているので

 データー型式 long 32ビット符号付き整数 とする

    10進数で9桁程度扱える。

long stopT


重力加速度の計算

重力加速度 g の計算式は、次のとおり。

g = 2 X .4 / (285700) /  (285700) X 1E12

    = 9.80

結果は、小数点付きの値となる。

これ以降の内部計算は、整数値として扱いたいので

g = g X 1000  としている

g = 9800

この範囲ならば、データー形式は、intで良い。

int g   <= 重力加速度の表示


平均した重力加速度と落下時間の表示


LCDの画面には、重力加速度と落下時間も

表示する予定。下記の名前と型式を割り当てておく。

負の値は出ないので、unsigned もつけた。

unsigned long sumT <= 落下試験で取得した落下時間の合計

unsigned long aveT <= 落下時間の平均値


まとめ

落下時間 285.7 msec とすると

計算プログラムで使う変数の型式は、次のとおり。

long stopT     <= capture 読取変数

unsigned long sumT <= 落下試験で取得した落下時間の合計

unsigned long aveT <= 落下時間の平均値

int g                <= 重力加速度の表示


0 件のコメント:

コメントを投稿

手作り電磁石の力をゼムクリップで計ってみた

手作りした電磁石があるので どのくらいの錘を吊り下げられるか 計ってみることにした 調べると、 バネ計りを使う方法などが紹介されているが 家にはないので、身近なもので試す。 大きなおもりの下にゼムクリップを ぶら下げていき、クリップが落ちた前が 限界とすると...