パーツ解説

APDS-9960の近接センサーを使ってみる

投稿日:2020-04-09 更新日:

前回APDS-9960のジェスチャーセンサーを使用しました。今回はジェスチャーに加えて近接センサーも使用してみたいと思います。

前回の記事はこちらhttps://rikeden.net/?p=120さて、近接センサーですが、前回ジェスチャーセンサーを使用するときに既に動作しています。近接センサーの値によってジェスチャーセンサーをON/OFFさせていました。

というわけで今回すべきことは近接センサーの調整ぐらいになりそうです。

データシートを確認すると近接センサーの測定値はPDATA(0x9C) に格納されているようです。なので早速このレジスタの値を読み取ってLCDに表示させてみました。

・・あれ?なぜ11までしか値が増加しないのだ?

しかし、すぐにピンときました。前回ジェスチャーエンジンを起動する閾値を10と設定したせいでしょう。

試しに閾値を20にしてみると今度は21まで値が増加しました。どうやら閾値を超えるとそれ以上は測定しないようですね。

そこで、近接センサーの測定値を読む間だけジェスチャーエンジンをOFFにしておくことにしました。これで255まで測定することができます。

その後スケールなどを試行錯誤した結果、LED電流100mA, ブースト300% にすることにしました。

電流はジェスチャーエンジンと近接エンジンで個別に設定できますが、ブーストは共通なので、ジェスチャーエンジンの電流を25mA → 12.5mAに変更しました。

また、近接センサーの電流を増やしたのでジェスチャーエンジンの閾値をGPENTH = 20, GEXTH = 10としました。2つの閾値が異なっているのは閾値付近での動作を安定化させるためです。

では実際に動作テストしてみます。0.1s毎に近接センサーの値を読み取ります。このとき、タイマ割り込みで直接読み取りしようとすると、メインループでのジェスチャーの処理に重なってしまうので、読み取りフラグを立てるだけにしてメインループでフラグを確認します。

今回は近接センサーの測定値をPWMで出力してレベルメーターで確認できるようにしてみました。レベルメーターは秋月電子のこちらのキットを使用しました。

以下テスト動画、ソースコード、回路図です。https://youtu.be/cdoC54c2Se8

▼I2Cライブラリ

次回はこのセンサーのもう一つの機能であるRGBセンサーを使ってみたいと思います。

次回 ↓

APDS-9960のRGBセンサーを使ってみる

-パーツ解説

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

ロータリーエンコーダの使い方

今回はPICで ロータリーエンコーダ を使ってみたので、使い方や制御するためのポイントを紹介します。 目次1 ロータリーエンコーダとは2 信号3 チャタリング4 実験5 あとがき ロータリーエンコーダ …

PICで128x64グラフィックLCDを使ってみる

今回はAliExpressで買った128×64のグラフィックLCDを使ってみました。使用したPICはPIC16F18857です。 400円ぐらいで安かったのはいいですが、データシートや型番が不明なので …

PICでジェスチャーセンサーを使ってみる[APDS-9960]

今回は以前から気になっていた秋月電子で販売されているこちらのジェスチャーセンサーAPDS-9960を使ってみました。ネットの情報も少なく、Arduinoのライブラリを使うだけしか書いてなかったりしたの …

aitendoのI2CキャラクタLCDが安くて便利

ブレッドボード上で情報を表示したり簡易的なデバッグをしたりするのに便利なのがキャラクタLCDです。 今回はaitendoで販売されているこちらのLCDを使ってみました。 ちなみに以前秋月電子のLCDを …

APDS-9960のRGBセンサーを使ってみる

前々回のジェスチャーセンサー、前回の近接センサーに引き続き、APDS-9960の最後の機能である照度・RGBセンサーを使ってみました。 最初に言っておきますが、今回は動作確認程度のかなり適当な内容にな …