meta data for this page
LamaPLC: DPS Infineon Temperature/Pressure sensors with I2C communication
The Infineon DPS310 is a precise digital sensor that measures air pressure and temperature, known for its accuracy, low power consumption, and suitability for applications such as indoor navigation and drone navigation. It is popular in hobbyist electronics projects using platforms such as Arduino and Raspberry Pi.
- Integrated Temperature Compensation: The sensor's capacitive sensing principle and internal signal processor, with individual calibration coefficients, ensure high precision under temperature variations.
- Operating Modes: It offers Command (manual), Background (automatic), and Standby operating modes for power management flexibility.
- Built-in FIFO: An internal FIFO (First-In, First-Out) can store up to 32 measurement results, reducing the host processor's polling rate.
- Versatile Applications: Common uses include indoor navigation (floor detection), health and sports (elevation tracking), outdoor navigation (GPS improvement), weather stations, and drone flight stability/height control.
| Type of measurement | Model | Power voltage | Measurement, range, accuracy | Communication | Note |
|---|---|---|---|---|---|
![]() ![]() Barometric Pressure Sensor | Infineon DPS310 ![]() | 3.3V | Supply voltage: VDDIO: 1.2 .. 3.6 V Operation range: Pressure: 300 .. 1200 hPa. Temperature: -40 – 85 °C Pressure sensor precision: ± 0.002 hPa (or ±0.02 m) (high precision mode) Relative accuracy: ± 0.06 hPa (or ±0.5 m) Absolute accuracy: ± 1 hPa (or ±8 m) Temperature accuracy: ± 0.5°C Pressure temperature sensitivity: 0.5Pa/K | I²C or SPI I2C default address: 0x76 (SDO←GND) or 0x77 (SDO←VDDIO) | Measurement time: Typical: 27.6 ms |
Moduls
If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.
Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.
Arduino & DPS310
The DPS310 is a high-precision barometric pressure and temperature sensor. To use it with Arduino, the Adafruit DPS310 library is the most common choice, as it provides a simplified “Unified Sensor” interface.
Wiring (I²C Mode)
Connecting via I²C is the easiest method.
- VIN: 3.3V or 5V (most breakout boards have a built-in regulator).
- GND: Ground.
- SCL (Clock): Arduino SCL (Pin A5 on Uno).
- SDA (Data): Arduino SDA (Pin A4 on Uno).
- Address: Default is 0x77. Pull the SDO pin to GND to change it to 0x76.
Arduino Example Code
You must install the Adafruit DPS310, Adafruit BusIO, and Adafruit Unified Sensor libraries via the Arduino Library Manager.
#include <Adafruit_DPS310.h> Adafruit_DPS310 dps; void setup() { Serial.begin(115200); while (!Serial) delay(10); Serial.println("DPS310 Test"); if (!dps.begin_I2C()) { // Default address is 0x77 Serial.println("Failed to find DPS310 sensor!"); while (1) yield(); } Serial.println("DPS310 Found!"); // Configure sensor for high precision dps.configurePressure(DPS310_64HZ, DPS310_64SAMPLES); dps.configureTemperature(DPS310_64HZ, DPS310_64SAMPLES); } void loop() { sensors_event_t temp_event, pressure_event; // Wait until data is ready if (dps.temperatureAvailable() && dps.pressureAvailable()) { dps.getEvents(&temp_event, &pressure_event); Serial.print("Temperature: "); Serial.print(temp_event.temperature); Serial.println(" °C"); Serial.print("Pressure: "); Serial.print(pressure_event.pressure); Serial.println(" hPa"); Serial.println(); } delay(1000); }
Alternative Libraries
If you are using the Infineon Shield2Go or Seeed Studio Grove versions, you might prefer their specific libraries:
- Infineon XENSIV: Search for XENSIV Digital Pressure Sensor in the library manager.
- Seeed Studio: Use the Dps310 library which uses slightly different syntax, such as Dps310PressureSensor.measurePressureOnce().
I²C topics on lamaPLC
This page has been accessed for: Today: 1, Until now: 35



