با افزودن این ماژول شش کاره میتوانید قابلیتهای جدیدی به ربات خود بدهید.
سنسور دیجیتال بوده و از ارتباط I2C با آدرس 0x39 پشتیبانی میکند و پولآپ رزیستور های SDA و SCL نیز بر روی برد قرار داده شده است.
در دو سمت روی برد دو تکه لحیم وجود دارد که PS برای اتصال تغذیه دیود مادون قرمز VL به تغذیه اصلی VCC بوده و I2C PU یک جامپر سه تایی است که مقاومتهای پولاپ را به تغذیه متصل میکنند.
این جامپرها پیش فرض بسته هستند ولی متناسب با نیاز میتوانید آنها را باز نمایید.
در نظر داشته باشید که این ماژول با ولتاژ 3.3 کار میکند و نباید مستقیما به 5 ولت متصل شود
#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);
}