German English
Sensoren

ADT7410 - Temperatur ü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 Temperatur (ADT7410) an einer der I2C-Schnittstellen betrieben. Der Sensor wird in diesem Beispiel für eine kontinuierliche Erfassung der Temperatur konfiguriert. Im Programmverlauf werden Temperaturen in einem zeitlichen Abstand von 1000ms erfasst und als reine Sensorwerte als auch in Celsius umgerechnete Werte ausgegeben.
/*
 * Copyright (c) 2011., Virtenio GmbH
 * All rights reserved.
 */
package com.virtenio.webdemo;

import com.virtenio.drivers.i2c.NativeI2C;
import com.virtenio.drivers.sensors.i2c.ADT7410;

import java.io.IOException;

public class TemperatureI2C {

    public static void main(String[] args) throws IOException, InterruptedException {

        // define
        NativeI2C i2c = null;               // native I2C
        ADT7410 temperatureSensor = null;   // driver for temperture sensor
        //
        i2c = NativeI2C.getInstance(1);     // get i2c instance 1
        i2c.open();                         // open i2c for r/w-access
        //
        // create instance and set address
        temperatureSensor = new ADT7410(i2c, ADT7410.ADDR_0, null, null);
        temperatureSensor.setMode(ADT7410.CONFIG_MODE_CONTINUOUS);// set continuous mode

        // capture samples
        while (true) {
            int raw = temperatureSensor.getTemperatureRaw();      // read raw value
            float celsius = temperatureSensor.getTemperatureCelsius();// read celsius
            System.out.println("raw=" + raw + "; " + celsius + " [°C]");// print to screen
            //
            Thread.sleep(1000);                                         // sample period
        }
    }
}