Hi everyone,
I am trying to work with a 20Bars Gauge ABP2 pressure sensor from honey well using a wiring exactly similar to the diagram found in the documentation :
When I use an oscilloscope at both the SCL or the SDA, the master sends the commands, but nothing comes out of the sensor. The address from the sensor I bought is 0x28, I have checked! I have changed both sensor and Arduino Zero, but nothing happened... I have verified the wiring multiple time, but nothing seems wrong.
Here is my code, please tell me if you see something wrong :
What I don't see is any clear, well lit, in focus pictures of your wiring. Providing those will prevent playing 20 questions of "have you done this, have you done that".
// SPDX-FileCopyrightText: 2023 Carter Nelson for Adafruit Industries
//
// SPDX-License-Identifier: MIT
// --------------------------------------
// i2c_scanner
//
// Modified from https://playground.arduino.cc/Main/I2cScanner/
// --------------------------------------
#include <Wire.h>
// Set I2C bus to use: Wire, Wire1, etc.
#define WIRE Wire
void setup() {
WIRE.begin();
Serial.begin(9600);
while (!Serial)
delay(10);
Serial.println("\nI2C Scanner");
}
void loop() {
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
WIRE.beginTransmission(address);
error = WIRE.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4)
{
Serial.print("Unknown error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000); // wait 5 seconds for next scan
}
New info just dropped : I also have an ms5837-30ba.pdf sensor... It uses different code but the exact same circuit. And it works with my setup! So the error is definitely not wiring related.
ABP2DNXG020BG2A3XX (DIP Pins, No tube, 20bar gauge [disclaimer : not the issue, the pressure doesn't read at all], 0x28, Liquid environment [disclaimer : I have tried putting water on the hole, it does not change anything], 3.3V)
If I put the wrong address it does output 2, which, as mentionned before, means the sensor is not ACK. When I put the right one, we go back to status 0... Meaning it should work, but I see nothing
the status byte returned by the sensor should be 00000010 (0x02) but I get an 0x00 instead, which reading the documentation, should tell us the sensor is not powered.