APDS-9960模塊介紹
APDS-9960是一個體積非常小的傳感器,它集成了非接觸手勢檢測、接近檢測、數字環境亮度測量和色彩檢測等諸多功能。很多手機上也采用了該傳感器,例如三星的Galaxy S5。
本篇我們使用搭載了APDS-9960傳感器的模塊,模塊提供了APDS-9960傳感器的外部工作電路,同時將管腳引出,方便接線使用,其實物圖如下:
模塊特點:
管腳定義:
- VL:如果PS跳線斷開,則IR LED的可選電源。必須為3.0-4.5V
- GND:接地
- VCC:用于為APDS-9960傳感器供電。必須為2.4-3.6V
- SDA:IIC數據引腳
- SCL:IIC時鐘引腳
- INT:外部中斷引腳。中斷事件時為低電平有效
2
安裝驅動庫
本篇我們需要安裝「Adafruit_APDS9960」驅動庫。在Arduino IDE中,點擊「項目」—「加載庫」—「管理庫」,搜索選擇最新版本進行安裝即可。
安裝庫
3
實驗材料
4
實驗步驟
1. 根據原理圖搭建電路圖。
OLED屏和手勢識別模塊都使用了IIC通訊方式。將兩個模塊的VCC、GND分別連接開發板的3.3V、GND,兩個模塊的SDA、SCL分別連接開發板的A4、A5。
實驗原理圖如下圖所示:
實驗原理圖
2. 新建sketch,拷貝如下代碼替換自動生成的代碼并進行保存。
#include "Adafruit_APDS9960.h"
#include < Wire.h >
#include < Adafruit_GFX.h >
#include < Adafruit_SSD1306.h >
Adafruit_APDS9960 apds;
Adafruit_SSD1306 oled(128, 64, &Wire, -1);
void setup() {
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
oled.setTextColor(WHITE);//開像素點發光
oled.clearDisplay();//清屏
oled.setTextSize(2); //設置字體大小
apds.begin();
apds.enableProximity(true);
apds.enableGesture(true);
}
void loop() {
uint8_t gesture = apds.readGesture();
oled.clearDisplay();//清屏
oled.setCursor(15, 2);//設置顯示位置
oled.println("APDS-9960");
oled.setCursor(32, 40);//設置顯示位置
switch (gesture)
{
case APDS9960_UP: oled.println("[ Up ]"); break;
case APDS9960_DOWN: oled.println("[Down]"); break;
case APDS9960_LEFT: oled.println("[Left]"); break;
case APDS9960_RIGHT: oled.println("[Right]"); break;
default: oled.println("[----]"); break;
}
oled.display(); // 開顯示
}
3. 連接開發板,設置好對應端口號和開發板類型,進行程序下載。
程序下載
5
實驗現象
我們從不同方向移動手進入傳感器檢測范圍,然后慢慢移出,模塊會對應識別出移動方向。當然識別結果也會受環境光影響,但大概率識別還是很準確的。
-
傳感器
+關注
關注
2548文章
50665瀏覽量
751947 -
RGB
+關注
關注
4文章
798瀏覽量
58386 -
LED屏
+關注
關注
0文章
208瀏覽量
16898 -
外部中斷
+關注
關注
1文章
131瀏覽量
15801 -
IIC通信
+關注
關注
0文章
19瀏覽量
3003
發布評論請先 登錄
相關推薦
評論