ماژول APDS9960 یک سنسور با تشخیص شش پارامتر مختلف نزدیکی ، شدت نور محیط ، وجود رنگ های قرمز ، سبز ، آبی یا شفاف در یک پکیج میباشد.
این سنسور می تواند حداکثر شش حرکت را که شامل چپ ، راست ، بالا ، پایین ، دور و نزدیک شدن است را که در فاصله حدود 10 تا 20 سانتیمتری رخ دهد را تشخیص دهد. حساسیت بسیار بالایی سنسور این امکان را میدهد که برای استفاده در پشت شیشه تیره مناسب باشد.
این سنسور شامل یک فیلتر داخلی ، یک اشعه ماورا بنفش توکار ، یک رابط سازگار با I2C و چهار دیود نوری جداگانه است.
علاوه بر این با تشخیص امواج نوری IR که از یک جسم منعکس می شوند ، حرکات آن را تشخیص می دهد و این اطلاعات را در مورد فاصله ، سرعت و جهت حرکت آن جسم به یک مقدار دیجیتالی تبدیل می کند.
اشعه های IR منعکس شده ، فاصله بین دستگاه و کاربر را اندازه گیری می کنند. ویژگی ALS میزان قرمز ، سبز و آبی نور را اندازه گیری می کند.
#include
#include
// Global Variables
SparkFun_APDS9960 apds = SparkFun_APDS9960();
uint16_t ambient_light = 0;
uint16_t red_light = 0;
uint16_t green_light = 0;
uint16_t blue_light = 0;
void setup() {
// Initialize Serial port
Serial.begin(9600);
Serial.println();
Serial.println(F("--------------------------------"));
Serial.println(F("SparkFun APDS-9960 - ColorSensor"));
Serial.println(F("--------------------------------"));
// Initialize APDS-9960 (configure I2C and initial values)
if ( apds.init() ) {
Serial.println(F("APDS-9960 initialization complete"));
} else {
Serial.println(F("Something went wrong during APDS-9960 init!"));
}
// Start running the APDS-9960 light sensor (no interrupts)
if ( apds.enableLightSensor(false) ) {
Serial.println(F("Light sensor is now running"));
} else {
Serial.println(F("Something went wrong during light sensor init!"));
}
// Wait for initialization and calibration to finish
delay(500);
}
void loop() {
// Read the light levels (ambient, red, green, blue)
if ( !apds.readAmbientLight(ambient_light) ||
!apds.readRedLight(red_light) ||
!apds.readGreenLight(green_light) ||
!apds.readBlueLight(blue_light) ) {
Serial.println("Error reading light values");
} else {
Serial.print("Ambient: ");
Serial.print(ambient_light);
Serial.print(" Red: ");
Serial.print(red_light);
Serial.print(" Green: ");
Serial.print(green_light);
Serial.print(" Blue: ");
Serial.println(blue_light);
}
// Wait 1 second before next reading
delay(1000);
}
با افزودن این ماژول شش کاره میتوانید قابلیتهای جدیدی به ربات خود بدهید.
سنسور دیجیتال بوده و از ارتباط I2C با آدرس 0x39 پشتیبانی میکند و پولآپ رزیستور های SDA و SCL نیز بر روی برد قرار داده شده است.
در دو سمت روی برد دو تکه لحیم وجود دارد که PS برای اتصال تغذیه دیود مادون قرمز VL به تغذیه اصلی VCC بوده و I2C PU یک جامپر سه تایی است که مقاومتهای پولاپ را به تغذیه متصل میکنند.
این جامپرها پیش فرض بسته هستند ولی متناسب با نیاز میتوانید آنها را باز نمایید.
در نظر داشته باشید که این ماژول با ولتاژ 3.3 کار میکند و نباید مستقیما به 5 ولت متصل شود
Voltage : 2.4-3.6V
Range : 10-20Cm
Size : 15.3X20mm
Temprature : -40-85C
I2C Address : 0x39
VL : 3-4.5V