購入時はこのような姿です |
接続されている配線を外します |
表側:カバーと配線を取り除いて、新たな配線を行ったセンサー側。 | 裏側:直接A/Dコンバータに接続したり、電源を供給できるように配線する。 赤:CPU側の3.3V電源に直接つなげる。 緑:これが検知した電圧です。A/Dコンバータ入力につなげる。 黒:3つの穴の真ん中がグラウンドです。 橙:3.3Vにプルアップするために近くの105表示の抵抗の電源側に22kΩの抵抗を、3つの穴のうちの出力につなげ、オレンジで引き出す。他の配線と接触しないように熱収縮チューブをかぶせている。これはCPUへの割り込み信号として利用する。 引っ張られて配線が取れないように、穴に通してから引き出す。 |
ロボットに装着したところ。 適切なカバーを付けないと、前後左右からの熱ノイズによって、正しくは動作しない。 |
重要注意事項 |
---|
下のチェックプログラムの上部には下記の宣言などが必要です。 #include "interruptClass.h" extern BYTE intKind; void startInit(char* str); |
焦電センサ割り込みテスト | |
---|---|
void main() { startInit("\n***** 焦電センサ割り込みテスト ****\n"); Timer tm; ADCon ad; int thermoValue; interruptClass wkp = interruptClass(2, 0);//立下り wkp.enable(); CPU.BuzzerSet(0x80,0x80); intKind = 0; while(true) { LED(0); if(intKind & 4){ LED(2); tm.wait(50); for(int i=0; i<5; i++) { thermoValue = ad.value(2); if(thermoValue<490) { LED(1); CPU.BuzzerStart(); tm.wait(100); CPU.BuzzerStop(); tm.wait(1000); break; } printf("%d ", thermoValue); tm.wait(100); } printf("\n"); intKind &= 0xfb; } } } |
1 2 3 4 タイマーオブジェクト 5 焦電センサのアナログ値のオブジェクト 6 焦電センサのアナログ値を保持する 7 割り込みオブジェクト。wkpのbit2の立ち下がりエッジで割り込む 8 割り込み許可 9 ブザーの初期設定 10 割り込み変数の初期化;割り込みの種類を保持する 11 永久ループ 12 13 14 wkpのbit2から割り込みがあったかのチェック 15 16 両方とも近かったら以下のif文の中を処理する 17 とりあえず5回チェックしてみる 18 19 焦電センサの値を読む 20 その値が通常から外れていたら 21 22 ブザーを鳴らす 23 24 ブザー停止 25 26 27 28 29 30 31 32 bit2からの割り込み処理終了 33 34 35 |