Skip to content

AGR12 Digital Pressure Sensor

The AGR12 is a digital pressure sensor designed for precise measurement of
gauge pressure.
The measured values are temperature-compensated and transmitted via an I²C interface.

Ideal for embedded systems, automation, and IoT applications


Overview

  • Measured quantity: Gauge pressure
  • Measurement range: 0 – 100 kPa (model dependent)
  • Sensor type: Digital
  • Interface: I²C
  • Resolution: 16 bit
  • Supply voltage: 3.0 – 5.25 V

Typical Applications

  • Medical and laboratory technology
  • Pressure monitoring systems
  • Pneumatic control systems
  • Embedded and IoT projects

Technical Data

Parameter Value
Interface I²C
I²C address 0x50
Resolution 16 bit
Data format kPa × 10
Temperature compensation integrated

Pinout

Pin Name Description
1 VCC Supply voltage
2 GND Ground
3 SCL I²C clock
4 SDA I²C data
5–6 N/C Not connected

Connection to Arduino Uno

AGR12 Arduino Uno
VCC 5V
GND GND
SCL A5
SDA A4

>

Communication (I²C)

  • Bus: I²C
  • Measurement command: 0xAC 0x12
  • Waiting time: ≥ 80 ms
  • Data: 2 bytes measurement value + 1 byte CRC

The pressure value is transmitted as kPa × 10.


Example Code (Arduino)

#include <Wire.h>

#define AGR12_ADDR 0x50

bool readAGR12(float &pressure_kPa, uint8_t &crc) {
  Wire.beginTransmission(AGR12_ADDR);
  Wire.write(0xAC);
  Wire.write(0x12);
  if (Wire.endTransmission() != 0) return false;
  delay(100); 
  Wire.requestFrom(AGR12_ADDR, (uint8_t)3);
  if (Wire.available() < 3) return false;

  uint8_t data0 = Wire.read();
  uint8_t data1 = Wire.read();
  crc = Wire.read();
  int16_t raw = (int16_t)((data0 << 8) | data1);
  pressure_kPa = raw / 10.0f;
  return true;
}
void setup() {
  Serial.begin(9600);
  Wire.begin();
  Wire.setClock(30000); 
  Serial.println("AGR12 Test (I2C)");
}
void loop() {
  float pressure;
  uint8_t crc;

  if (readAGR12(pressure, crc)) {
    Serial.print("Pressure: ");
    Serial.print(pressure, 1);
    Serial.print(" kPa | CRC = 0x");
    Serial.println(crc, HEX);
  } else {
    Serial.println("Error reading sensor");
  }
  delay(500);
}

Notes

  • After power-up, allow a short initialization time for the sensor
  • The output values represent gauge pressure measurements
  • Small deviations around 0 kPa are normal and caused by tolerances
  • For more accurate results, a software-based offset correction is recommended
  • Do not operate the sensor outside the specified pressure range

Revision

Version Date Change
1.0 2026-01-13 Initial release