Introduction
This project page on the diymore APDS-9930 Digital Proximity and Ambient Light Sensor is built from the [Arduinolearning library post]
(http://arduinolearning.com/code/arduino-apds-9930-sensor-example.php). Most other wiring pages relate to the APDS-9960 module, including this youtube instruction.
The more advanced PDS-9930 version is presented in a video from sparkfun.
The PDS-9930 requires an input voltage of between 2.2 to 3.6 volt, with 3.0 the nominal requirement.
The wiring online is not correct, If you get random numbers from the proximuty sensor some suggest that you need to put 3.3 vlot to the VL pin. Doing that I got = on all trials with the distance sensor.
The library is no logner maintaied, but available at
github
Sketch
/****************************************************************
Arduino Pin APDS-9930 Board Function
3.3V VCC Power
GND GND Ground
A4 SDA I2C Data
A5 SCL I2C Clock
****************************************************************/
#define DUMP_REGS
#include <Wire.h>
#include <APDS9930.h>
// Global Variables
APDS9930 apds = APDS9930();
float ambient_light = 0; // can also be an unsigned long
uint16_t ch0 = 0;
uint16_t ch1 = 1;
void setup()
{
// Initialize Serial port
Serial.begin(9600);
Serial.println();
// Initialize APDS-9930 (configure I2C and initial values)
if ( apds.init() )
{
Serial.println(F("APDS-9930 initialization complete"));
}
else
{
Serial.println(F("Something went wrong during APDS-9930 init!"));
}
// Start running the APDS-9930 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.readAmbientLightLux(ambient_light) ||
!apds.readCh0Light(ch0) ||
!apds.readCh1Light(ch1) ) {
Serial.println(F("Error reading light values"));
}
else
{
Serial.print(F("Ambient: "));
Serial.print(ambient_light);
Serial.print(F(" Ch0: "));
Serial.print(ch0);
Serial.print(F(" Ch1: "));
Serial.println(ch1);
}
// Wait 1 second before next reading
delay(1000);
}
Sensor
Module
Project Nano