Hello all, I was needing some help with interfacing ICM 380 pressure transducer with my arduino Uno. I am trying to get temperature and pressure values from a certain pipe. I have the temperature part figured out. I am unable to get this transducer to display output values. I checked it with my multimeter and I am receieving 0.408 V when I measured without applying any pressure to it. It did go up slightly when I tried pressurizing it with my mouth. Any suggestioins? Thanks in advance!
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
// Data wire is plugged into digital pin 4 on the Arduino
#define ONE_WIRE_BUS 4
// Setup a oneWire instance to communicate with any OneWire device
OneWire oneWire(ONE_WIRE_BUS);
// Pass oneWire reference to DallasTemperature library
DallasTemperature sensors(&oneWire);
const int pressureInput = A0; //select the analog input pin for the pressure transducer
const int pressureZero = 102.4; //analog reading of pressure transducer at 0psi
const int pressureMax = 921.6; //analog reading of pressure transducer at 500psi
const int pressuretransducermaxPSI = 100; //psi value of transducer being used
float temperature;
float pressureValue = 0; //variable to store the value coming from the pressure transducer
void setup(void)
{
Serial.begin(9600);
sensors.begin();
lcd.init();
lcd.begin(16,2);
lcd.backlight();
}
void loop(void)
{
// Call sensors.requestTemperatures() to issue a global temperature and Requests to all devices on the bus
sensors.requestTemperatures();
temperature = sensors.getTempFByIndex(0);
// Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire
Serial.print(" - F temp: ");
Serial.println(sensors.getTempFByIndex(0));
pressureValue = analogRead(pressureInput); //reads value from input pin and assigns to variable
pressureValue = ((pressureValue-pressureZero)*pressuretransducermaxPSI)/(pressureMax-pressureZero); //conversion equation to convert analog reading to psi
Serial.print(pressureValue, 1); //prints value from previous line to serial
Serial.println("psi"); //prints label to serial
delay(500);
sensors.requestTemperatures();
lcd.setCursor(0,1);
lcd.print("H2O Temp: ");
lcd.print(sensors.getTempFByIndex(0));
lcd.print((char)223);
lcd.print("F");
lcd.setCursor(0,2);
lcd.print("Pressure: ");
lcd.print(pressureValue, 1); //prints pressure value to lcd screen, 1 digit on float
lcd.print("psi");
delay(500);
}
