パーツ解説

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で128x64グラフィックLCDを使ってみる

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

圧電素子とPICマイコンで振動センサー

この記事では圧電素子(ピエゾ素子)を使用してPICマイコンで振動を検出する方法を解説します。   目次1 使用するもの2 圧電素子とは3 圧電効果を見てみる4 PICマイコンで振動検出5 応 …

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

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

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

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

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

今回は秋月電子で販売されているこちらのリアルタイムクロック(以下RTC)のDS1307について紹介します。 目次1 RTCとは2 DS1307の特徴3 レジスタ4 プログラム RTCとは まずはRTC …