German English
Sensoren

MPL115A2 - Luftdruck ü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 Luftdruck (MPL115A2) an einer der I2C-Schnittstellen betrieben. Der Sensor verfügt über eine Reset- und eine Shutdown-Leitung, um ihn einzuschalten. Der Treiber ermöglicht eine Konfiguration, so dass in diesem Beispiel eine kontinuierliche Erfassung des Luftdrucks durchgeführt wird. Im Programmverlauf wird der Luftdruck in einem zeitlichen Abstand von 1000ms erfasst und als reiner Sensorwert ausgegeben.
/*
 * Copyright (c) 2011., Virtenio GmbH
 * All rights reserved.
 */
package com.virtenio.webdemo.sensor;

import com.virtenio.drivers.gpio.GPIO;
import com.virtenio.drivers.gpio.NativeGPIO;
import com.virtenio.drivers.i2c.NativeI2C;
import com.virtenio.drivers.sensors.i2c.MPL115A2;

import java.io.IOException;

public class PressureI2C {

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

        NativeI2C i2c = NativeI2C.getInstance(1);
        i2c.open();
        GPIO resetPin = NativeGPIO.getInstance(24);
        GPIO shutDownPin = NativeGPIO.getInstance(12);

        MPL115A2 pressureSensor = new MPL115A2(i2c, resetPin, shutDownPin);
        pressureSensor.setReset(false);
        pressureSensor.setShutdown(false);

        while (true) {
            // capture measured value every 1000ms
            pressureSensor.startBothConversion();
            Thread.sleep(MPL115A2.BOTH_CONVERSION_TIME);
            int pressurePr = pressureSensor.getPressureRaw();
            System.out.println("MPL115A2 rawP=" + pressurePr);
            Thread.sleep(1000 - MPL115A2.BOTH_CONVERSION_TIME);
        }
    }
}