05-09-2017 07:40 AM
cDAQ-9178とNI9402を使用し、デジタル入力の立ち上がりを検出したタイミングを保存することを考えています。
添付のVIでは、ファンクションジェネレータ(既製品)で矩形波を生成しNI9402に入力した場合には、正確にデジタル入力の立ち上がりを検出できます。一方で、乾電池を電源とした押しボタンを接続し、手動で入力を生成した場合には、一度ボタンを押しただけでデジタル入力の立ち上がりが数十回検出されてしまいます。
これらの違いの原因として、どのようなことが考えられるのでしょうか。また、どちらも同じように入力の立ち上がりを検出するためにはどのような変更を加えれば良いのでしょうか。
アドバイスをよろしくお願いいたします。
05-09-2017 08:11 PM
raidoさん、
乾電池からの電圧をオシロスコープやアナログ入力用DAQでご覧になりましたか?もし押しボタンからの電圧が何度も立ち上がったり立ち下がったりするような不安定なものであれば、数十回変化が検出されてしまうのも納得がいきます。
変化検出ではなくカウンタ入力タスクを使用すると、デジタルフィルタを有効にできます。もし乾電池からの電圧出力が不安定なのであればこの方法が使えるかもしれません。
05-10-2017 12:49 AM
raido様
原因は、チャタリングです。
下記URLを参照ください。
pipipi0405様が言われるように、オシロですぐ確認できると思います(信号を立ち上がりトリガー)
チャタリング
https://ja.wikipedia.org/wiki/%E3%83%81%E3%83%A3%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0
05-14-2017 04:42 AM
pipipi0405 様
アドバイス有難うございました。
ご指摘のとおり、電圧入力が不安定であったことが原因でした。デジタルフィルタの利用も試してみましたが、最終的にチャタリングを防ぐアナログ回路を介して入力することで解決できました。