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 |