パーツ解説

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

メールアドレスが公開されることはありません。

関連記事

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

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

【PIC】aitendo の 122×32 グラフィックLCDを使ってみた

今回は aitendo で 122×32 のグラフィックLCD が 299円(税抜)とかなり安かったので買ってみました。商品ページはこちらです。 グラフィックLCD については以前に記事を書 …

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

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

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

今回は秋月電子で販売されている7セグメントLEDドライバ TM1630 を使用してみました。 TM16301つで7セグ5桁または8セグ4桁をダイナミック点灯で制御することができます。※カソードコモンじ …

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

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