BH1710FVC - Relative Beleuchtungsstärke über I2C auslesen
Der auf dem Funkmodul Preon32 eingesetzte Mikrocontroller verfügt über eine Vielzahl von Schnittstellen.
Über diese lassen sich sowohl Sensoren als auch Aktoren mit unterschiedlichen Protokollen ansteuern. Für das Funkmodul passend
entwickelt bietet VIRTENIO ein Sensormodul VariSen für das Preon32Shuttle an, dass eine Vielzahl von Sensoren
für unterschiedliche Messgrößen enthält.
In diesem Beispiel wird ein digitaler Sensor für relative Beleuchtungsstärke (BH1710FVC) an einer der I2C-Schnittstellen betrieben. Der Sensor verfügt über eine ChipSelect-Leitung, um ihn einzuschalten. Der Treiber ermöglicht eine Konfiguration, so dass in diesem Beispiel eine kontinuierliche Erfassung der relativen Beleuchtungsstärke eingestellt ist.
Im Programmverlauf werden Temperaturen in einem zeitlichen Abstand von 1000ms erfasst und als reine Sensorwerte
als auch in Lux umgerechnete Werte ausgegeben.
/*
* Copyright (c) 2011., Virtenio GmbH
* All rights reserved.
*/
package com.virtenio.webdemo;
import com.virtenio.drivers.gpio.NativeGPIO;
import com.virtenio.drivers.i2c.NativeI2C;
import com.virtenio.drivers.sensors.i2c.BH1710FVC;
import java.io.IOException;
public class LightI2C {
public static void main(String[] args) throws IOException, InterruptedException {
// The GPIO pin for the DVI signal.
NativeGPIO dvi = NativeGPIO.getInstance(10);
// The i2c bus connected to BH1715FVC
NativeI2C i2c = NativeI2C.getInstance(1);
i2c.open();
// initialise BH1715FVC
BH1710FVC lightsensor = new BH1710FVC(i2c, BH1710FVC.ADDR_L, null, dvi);
lightsensor.enable(true);
lightsensor.setPowerMode(BH1710FVC.POWER_ON);
lightsensor.setSamplingMode(BH1710FVC.CONT_HRES_MODE);
// capture measured value every 1000ms
while (true) {
int raw = lightsensor.getValueLx();
int lx = BH1710FVC.convertRawToLx(raw);
System.out.println("BH1710FVC: raw=" + raw + "; " + lx + " [lx]");
Thread.sleep(1000);
}
}
}


