IchigoJamと超音波距離センサでデジタルものさし作った。 | たね子のブログ

たね子のブログ

たね子のこんなん作った。

IchigoJamと超音波距離センサ(HC-SR04)を使って、デジタルものさしを作ってみました。







今回使った超音波距離センサ(HC-SR04)は、エコーが帰ってくるまでの時間、出力をオンにする仕様になっており、そのオンになっている時間から距離を算出します。
出力オンの時間は、音速ですので、だいたい1mの距離で5.8ミリ秒ほどです。
ところが、IchigoJamのTICK()関数は16.7ミリ秒刻みですので、そのままでは計測できません。

赤外線距離センサを買っていれば苦労は無いのですが、たね子は超音波距離センサをAmazonでポチってしまったので、なんとかこれを使いたかったのです。

そこで閃きました。
距離に比例した時間電圧がかかってるんだったら、それをコンデンサに蓄えて、その電圧を測ればいいんじゃね?

ということで、RC積分回路を間にかませてIchigoJamと接続してみました。

回路図はこちらです。




プログラムはこちら。
(すみません。まだ新ファーム入れてないのです><
なので、LED表示ロジックは温度計のものをそのままコピペしちゃってます^^;)

 

 

10 'キョリセンサーノテスト

 

 

20 '(C) 2015 Tane.
30 'SCK(CLOCK)       :: OUT 1
40 'SI(SERIAL DATA)  :: OUT 2
50 'RCK(RATCH)       :: OUT 3
60 'キョリセンサー トリガ    :: OUT 4
70 [0]=252  '0 0b11111100=252
80 [1]=96   '1 0b01100000=96
90 [2]=218  '2 0b11011010=218
100 [3]=242 '3 0b11110010=242
110 [4]=102 '4 0b01100110=102
120 [5]=182 '5 0b10110110=182
130 [6]=190 '6 0b10111110=190
140 [7]=224 '7 0b11100000=224
150 [8]=254 '8 0b11111110=254
160 [9]=246 '9 0b11110110=246
170 [10]=2  '- 0b00000010=2
180 [11]=110 'H 0b01101110=110
300 'Main
310 OUT 5,1
320 OUT 4,1:OUT 4,0
330 WAIT 1:LET W,0:W=0 'タンナルウエイト
340 A=ANA()
350 B=A*2+A*6/10+A/20:B=B/10 'キンジシキ
360 D=B/10:E=B%10:IF B>=100 D=B/100:E=11
370 ?A,B
380 S=[D]:T=[E]:GOSUB 1000:WAIT 30
390 IF A>=990 OUT 5,0:WAIT 5: GOTO 310
400 GOTO 320
410 END
1000 LED 1
1010 J=0
1020 OUT 2,T&(1<<J) '1ノクライデータ
1030 OUT 1,1:OUT 1,0
1040 J=J+1:IF J<8 GOTO 1020
1050 J=0
1060 OUT 2,S&(1<<J) '10ノクライデータ
1070 OUT 1,1:OUT 1,0
1080 J=J+1:IF J<8 GOTO 1060
1090 OUT 3,1:OUT 3,0
1100 LED 0
1110 RETURN