パーツ解説

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

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

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

前回の記事はこちら

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

さて、近接センサーですが、前回ジェスチャーセンサーを使用するときに既に動作しています。近接センサーの値によってジェスチャーセンサーを 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 で出力してレベルメーターで確認できるようにしてみました。レベルメーターは秋月電子のこちらのキットを使用しました。

以下テスト動画、ソースコード、回路図です。

▼I2Cライブラリ

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

次回 ↓

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

-パーツ解説

執筆者:


comment

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

CAPTCHA


関連記事

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

今回は AliExpress で買った 128×6 …

【Pico W】QR Clock ver.2を作ってみた【ソフト編】

前回の記事で QR Clock ver.2 のハ&#1254 …

リアルタイムクロック DS1307 の使い方

今回は秋月電子で販売され&#12 …

PICで7セグドライバTM1630を使ってみた

今回は秋月電子で販売され&#12 …

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

前々回のジェスチャーセン&#12 …