Benigno Gobbo / VCNL4000

Dependents:   Major_dHome

Embed: (wiki syntax)

« Back to documentation index

VCNL4000 Class Reference

VCNL4000 Class Reference

VCNL4000 distance/luminosity sensor controller library. More...

#include <VCNL4000.h>

Public Member Functions

 VCNL4000 (PinName sda, PinName scl)
 Create a VCNL4000 object connected to the specified I2C pins.
int getStatus (void)
 Return status code of previos function call.
int registerRead (int reg)
 Read VCNL4000 internal register content.
void registerWrite (int reg, unsigned char data)
 Send data to VCNL4000 internal register.
int getProximity (void)
 Read VCNL4000 proximity measurement.
int getAmbientLight (void)
 Read VCNL4000 ambient light measurement.
int getProductId (void)
 Get VCNL 4000 product id (should be 1)
int getProductRevision (void)
 Get VCNL 4000 product revision (should be 1)
bool proximityDataReady (void)
 Return True when a proximity data measurement completed.
bool ambientLightDataReady (void)
 Return True when an ambient light measurement completed.
void startProximityMeasurement (void)
 Tell VCNL4000 to start a proximity measurement.
void startAmbientLightMeasurement (void)
 Tell VCNL4000 to start an ambient light measurement.
void setIRLedCurrent (int milliAmps)
 Set VCNL4000 infrared led current.

Detailed Description

VCNL4000 distance/luminosity sensor controller library.

Example:

 #include "mbed.h"
 #include "VCNL4000.h"

 Serial pc(USBTX, USBRX); // tx, rx

 // -----------------------------------
 int main() {

    VCNL4000 vcnl( p9, p10 );

    int status = vcnl.getStatus();
    
    if( status != 0 ) {
        pc.printf( "\x1b[2J\x1b[f Something went wrong with VCNL4000 access, status = %d.\n\r", status );
        exit( 1 );
    }
  
    vcnl.setALAveragingFunction( 0x0f );
    vcnl.setIRLedCurrent( 2000 );
    vcnl.setProximityMeasurementSigFreq( 2 );
    vcnl.setProxiModulatorDelayTime( 0x04 );
    vcnl.setProxiModulatorDeadTime( 0x01 );
    
    while( 1 ) {
       int prox = vcnl.getProximity();
       int ambl = vcnl.getAmbientLight();
       pc.printf("\x1b[2J\x1b[f proxy: %d\n\r amb.l: %d\n\r", prox, ambl ); 
       wait( 0.1 );
    }     
 }

Definition at line 65 of file VCNL4000.h.


Constructor & Destructor Documentation

VCNL4000 ( PinName  sda,
PinName  scl 
)

Create a VCNL4000 object connected to the specified I2C pins.

Parameters:
sdaI2C SDA pin
sclI2C SDL pin

Definition at line 17 of file VCNL4000.cpp.


Member Function Documentation

bool ambientLightDataReady ( void   )

Return True when an ambient light measurement completed.

Definition at line 98 of file VCNL4000.cpp.

int getAmbientLight ( void   )

Read VCNL4000 ambient light measurement.

Definition at line 70 of file VCNL4000.cpp.

int getProductId ( void   )

Get VCNL 4000 product id (should be 1)

Definition at line 83 of file VCNL4000.cpp.

int getProductRevision ( void   )

Get VCNL 4000 product revision (should be 1)

Definition at line 88 of file VCNL4000.cpp.

int getProximity ( void   )

Read VCNL4000 proximity measurement.

Definition at line 56 of file VCNL4000.cpp.

int getStatus ( void   )

Return status code of previos function call.

Definition at line 81 of file VCNL4000.h.

bool proximityDataReady ( void   )

Return True when a proximity data measurement completed.

Definition at line 93 of file VCNL4000.cpp.

int registerRead ( int  reg )

Read VCNL4000 internal register content.

Parameters:
regregister address

Definition at line 35 of file VCNL4000.cpp.

void registerWrite ( int  reg,
unsigned char  data 
)

Send data to VCNL4000 internal register.

Parameters:
regregister address
datavalue to be written

Definition at line 47 of file VCNL4000.cpp.

void setIRLedCurrent ( int  milliAmps )

Set VCNL4000 infrared led current.

Parameters:
milliAmpscurrent in mA

Definition at line 121 of file VCNL4000.cpp.

void startAmbientLightMeasurement ( void   )

Tell VCNL4000 to start an ambient light measurement.

Definition at line 112 of file VCNL4000.cpp.

void startProximityMeasurement ( void   )

Tell VCNL4000 to start a proximity measurement.

Definition at line 103 of file VCNL4000.cpp.