見出し画像

もんく [とある南端港街の住人になった人]

スピードメーターその後5

早速、回転数を計測するサブルーチンのスケッチを書き直してみた。
(まだ実際に走らせてはいないので不都合があるかもしれない。)

その前に、ライントレースセンサーモジュールの論理がHIGH-LOW逆だったことに気付いた。
でも、これはどっちでも良い。ONからOFFになった時をカウントしてもその反対でもかまわないから。

今回は、前回がある時間内のパルス回数を計測する方法だったのを止めて、
パルスとパルスの時間間隔を計測する方法に変えた。
(理由は前記事参照してください。)

以下、コメント付きのサブルーチン。
-------------------------------------------------------------------


//RPM Count function

int RPM(int Sig){

int t[2]; //time array
int val; //current value of Sig pin
int val_old; //previous value of Sig pin
int hit = 0; //initialize hit counter as 0

t[0] = millis(); //intial time check 時間計測開始


//前回までは最初にSigをLOWに固定して定義していた。
//これを改めて、最初に1回、実際の値を読ませることにした。
//強制的にどちらかの値を入れてから開始するとそれで1回目のカウントになってしまうから。

val_old = digitalRead(Sig); //initial signal status reading


//今回はパルスの立ち上がりが3回になる(hitが3になる)までなのでdo whileを使う。
//パルスの検出の仕方は前回までと同じ。

do {
val = digitalRead(Sig);
if(val == LOW && val_old == HIGH){ //LOW is ON pulse
hit++; //if signal LOW after HIGH, hit count +1
}

val_old = val; //new value shifts to old

} while (hit == 3); //counted _|~|_|~|_|~|_

t[1] = millis(); //end time check 終了時間の計測。

//時間計測とパルス計測の実際の時間にはズレがあるけれども、これは後で検証。
//もしズレていれば時間にバイアスをかけることにしようと思う。

//回転数の計算は2パルス分の時間で60秒x2を割る。

int rpm = 120000 / (t[1] - t[0]); //RPM = 60x2/time

return rpm;

-------------------------------------------------------------------


ところで、スケッチのコメント、実際は英語だけで書いている。
なぜかと言うと、これを他人(マレーシア人)に渡すから。
ブログに書くように長い文章のようなコメント入れるわけにも行かないから
できるだけ短い文にするけれど、それでわかるんだろうか?


昨日、帰ってから朝7時15分の出勤直前までうちのキナコ(♂猫)が夜遊びから帰って来なかった。
キャサリンさんがいないので自分で夜11時頃と朝と、探しに行ったけれどいない。
と言うことは、少なくとも昨日の夕方から朝まで何も食べていない。

うちの周り、時々猫が神隠しに遭ったようにいなくなることがある。
前はニーニ(野生♀)、その前はマダラちゃん(野生♀)、最初はキナコの母のポコ。
だから返って来ないと、もしかして!と思ってしまう。
とりあえず帰ってきてよかった。
何だか身体がホコリっぽかったけれど。


Arduino関係の会社にあるパーツ、明日から木曜まで長い休暇なので全部持って帰ろう。
できるかどうかわからないけど。


ところで、他のプロジェクトの案ももういくつか考えてあって、
工場のリーダーたちに任せようと思っている。
工業高校レベルだけれど、卒業制作でArduinoをちょっとやったことがあるらしい。
期待していよう。
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最新の画像もっと見る

最近の「ABCのAはArduinoのA」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事