Pressure Sensor - Arduino
Вставка
- Опубліковано 4 жов 2024
- Today I walk through how to hook up an industrial pressure transducer sensor and interface it with an Arduino micro-controller. I take the incoming analog voltage value, convert it and display it to the serial monitor as well as onto an LCD screen. Code below. If you have any questions please comment below or e-mail me below.
Stay tuned for more videos!
Tyler,
*************************************************************************************
SUBSCRIBE:
www.youtube.co...
*************************************************************************************
SHARE THIS VIDEO LINK: • Pressure Sensor - Arduino
*************************************************************************************
BUY THE ITEMS IN THIS VIDEO (AMAZON.COM):
Video Equipment:
GoPro7: amzn.to/33FWCAW
GoPro Accessory Kit: amzn.to/2Uehig4
GoPro Stabilizer Gimbal: amzn.to/2UvX5Bz
Arduino:
Uno Starter Kit: amzn.to/2RfuEqq
Pressure Transducer: amzn.to/2JJrZRP
LCD screen: amzn.to/2Vatb60
Multimeter: amzn.to/2wfh6nE
*************************************************************************************
BUY THE ITEMS IN THIS VIDEO (AMAZON.CA):
Video Equipment:
GoPro7: amzn.to/2UdHtnk
GoPro Accessory Kit: amzn.to/3bl9wXy
GoPro Stabilizer Gimbal: amzn.to/3dlBt3r
Arduino:
Uno Starter Kit: amzn.to/2Re5MPY
Pressure Transducer: amzn.to/3aIJpdf
LCD screen: amzn.to/2Xeqymg
Multimeter: amzn.to/2JJrF5z
**************************************************************************************
CONTACT ME:
E-Mail: tylerovens@me.com
**************************************************************************************
Code Start */
/* This example demonstrates how to take a standard 3-wire pressure transducer
and read the analog signal, then convert the signal to a readable output and
display it onto an LCD screen.
Contact Tyler at tylerovens@me.com if you have any questions
*/
#include "Wire.h" //allows communication over i2c devices
#include "LiquidCrystal_I2C.h" //allows interfacing with LCD screens
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 100psi
const int pressuretransducermaxPSI = 100; //psi value of transducer being used
const int baudRate = 9600; //constant integer to set the baud rate for serial monitor
const int sensorreadDelay = 250; //constant integer to set the sensor read delay in milliseconds
float pressureValue = 0; //variable to store the value coming from the pressure transducer
LiquidCrystal_I2C lcd(0x3f, 20, 4); //sets the LCD I2C communication address; format(address, columns, rows)
void setup() //setup routine, runs once when system turned on or reset
{
Serial.begin(baudRate); //initializes serial communication at set baud rate bits per second
lcd.begin(); //initializes the LCD screen
}
void loop() //loop routine runs over and over again forever
{
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
lcd.setCursor(0,0); //sets cursor to column 0, row 0
lcd.print("Pressure:"); //prints label
lcd.print(pressureValue, 1); //prints pressure value to lcd screen, 1 digit on float
lcd.print("psi"); //prints label after value
lcd.print(" "); //to clear the display after large values or negatives
delay(sensorreadDelay); //delay in milliseconds between read values
}
*/ Code End - Навчання та стиль
At 10:57, the number is not a decimal because the analog input values only return whole integers, my mistake.
can you share the new code ?
@@siraitkreatifchanel Code doesn't change
@@OvensGarage Great video! This helped me a ton. I'm not sure I'm understanding the 10:57 comment though. I think I understand the integer vs decimal part, but why is it reading 102psi instead of 0psi? Was this filmed before you added the "pressureValue = ((pressureValue-pressureZero)*pressuretransducermaxPSI)/(pressureMax-pressureZero); //conversion equation to convert analog reading to psi" line?
Again, fantastic and very helpful video! I'm just trying to educate myself.
please friend !!!
help me with this code !!
I need to print on the TM 1637 display !!!
I can't help showing it!
please, can you help me ?
@@jondonlon1407 Actually if you read the code you can see that the 102 is not a PSI value, it is the value between 0 - 1024 converted by the Arduino (equivalent to 0-5V). That is printed because he has put the real PSI value in comment (the code line below the reading() line). If he uncomments that line of program you will see 0 PSI as value. So 102 is equivalent to 0 psi witch is the good value.
Dude! This is by far the best video of pressure sensor I can find. Great job of explaining your code. Most videos just talk about the hardware yet forget about coding. I plan on using this video to setup pressure sensors for an air ride system.
Glad it helped! I try to setup these vids so it's easy to understand for someone who has never done it before...I'm not an expert either! We are all learning together.
6:30; Thanks for the explainer of where the 0.5vdc came from!
Cheers, thanks for watching!
Clear and straight to the point. Congratulations!
amazing vidoe man! I'm setting up an oil pressure guage in my car using an I2c display and this helped out a ton. I love that you go line by line explaining what each line of code does and you explain the math to back it up!
Glad it helped!
I've spent the last few months on and off working on a project with a pressure sensor and I could not get it to work for the life of me (I could solve it instantly by paying twice the price of a component to have it shipped from america). This video has basically saved me because it's exactly what I want to achieve and can be found much easier.
Thanks for this instructional video. I thought it was well done and well reasoned. I pasted your code into my large sketch, made a minor change, eliminated the LCD, and it ran fine.
can you teach me for my final year project. i really need your coding without LCD, hope you can help me
Hi and thanks for this video, it helped get me on the right track for adding a fuel pressure sensor to my truck. I'm new to Arduino and writing code but I made a few changes in the calculations that seemed a bit easier (for me anyways). Here it is in case it'll help you or anyone else along the way when you start adding different sensors. I'm also going to add a pyrometer and a boost gauge and run them all (or try to anyway) off one arduino.
Things I changed;
-My display was different so I switched to LiquidCrystal
-I didn't use the pressurezero, pressuremax, or max psi
-I determined the linear rate of 5.45 for a 150psi sensor but since Arduino doesn't use decimals, I made it 545 and then divided by 100 later
-In the pressure value, I subtracted 102 since .5v = 0 psi and 102 is the analog equivalent of .5v
#include
const int pressureInput = A1; //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 100psi
//const int pressuretransducermaxPSI = 150; //psi value of transducer being used
const int baudRate = 9600; //constant integer to set the baud rate for serial monitor
const int sensorreadDelay = 250; //constant integer to set the sensor read delay in milliseconds
const int linear = 545;
float pressureValue = 3; //variable to store the value coming from the pressure transducer
LiquidCrystal lcd(12,11,5,4,3,2); //sets the LCD I2C communication address; format(address, columns, rows)
void setup() //setup routine, runs once when system turned on or reset
{
Serial.begin(baudRate); //initializes serial communication at set baud rate bits per second
lcd.begin(16,2); //initializes the LCD screen
}
void loop() //loop routine runs over and over again forever
{
pressureValue = analogRead(pressureInput); //reads value from input pin and assigns to variable
pressureValue = (((pressureValue-102)/linear)*100); //This seemed simpler to for me
Serial.print(pressureValue, 1); //prints value from previous line to serial
Serial.println("psi"); //prints label to serial
lcd.setCursor(0,0); //sets cursor to column 0, row 0
lcd.print("Pressure:"); //prints label
lcd.print(pressureValue, 0); //prints pressure value to lcd screen, 0 digit on float so that it would all fit on the screen
lcd.print(" psi"); //prints label after value
lcd.print(" "); //to clear the display after large values or negatives
delay(sensorreadDelay); //delay in milliseconds between read values
}
hello friend for a 200 psi sensor that needs to be configured
I'm using this sensor, but be aware! Sensorvalue is also changing with temperature!
Great video & description. Was planning to use this type of sensor & a traditional gauge setup on my Jag but this approach is far more sophisticated. I also want to monitor battery voltage so your last comments are a big plus! FYI Oil pressure & battery voltage are big issues on modern Jags but JLR don't install these driver aids these days. Many folk on the Jag forums will be interested in your project, good luck & I'll watch out for updates. Many thanks Dave in the Wirral, UK . Subscribed!
Thanks for the comment appreciate it!
You my friend are a saint. Been looking all over for this.
Cheers
This a great example, just a side not to your code, you could use the map() function to convert those voltage/input ranges as well. Keep up the great videos
Thanks for watching and thanks for the tip!
where have you disappeared to ...Yo are by miles the best at teaching how to use not just Arduino but all these sensors.. I hated to use Arduino until I saw your videos
Thanks for the video!! worked great. now trying to figure out how to do multiple.
Thank you, your video helped me a lot during my final year project
Glad I could help!
Top video and description, it's pleasure to subscribe. Look forward to more like this.
Thank you very much!
Excellent commentary and tutorial. Thank you.
Thanks
excelente gracias!!! from Mendoza Argentina!
Fantastic man! I'm doing an air ride set up and wanted to flush my own screen in the dash. This is a great tutorial
That's great, this should work perfect for your application. Glad I could help!
Dude this is awesome! Great video
No problem glad it helped.
this guy deserves a medal
Im working on a N2 generator, and I need to be able to monitor the pressure and flow rate, so this is going to help a lot. Thanks!
Glad it helped. Cheers
Thank you for this project! I'm starting at arduino language and it was easy for me to follow your explanation. I'm trying to make a water level indicator for my VW camper bus using this pressure level. I need to transform the analog reading values into percentage and liters so i can know how much water do i have left, i think with this code i can make it happen. :D
Awesome brother, really cool project. Been wanting to delve into the Arudino world for quite some time. Thanks for the inspiration!
Thanks, I'll be trying to make these electronic videos easy to understand and follow so anyone can replicate them if they want. Cheers.
@@OvensGarage Looking forward to the next vids. I take to this fairly quickly as I used to be a programmer for a living. All the best!
@@JonHeaven Maybe you will be able to teach me more than I know then haha, this is just a hobby for me so I am learning as a I go.
Thanks you very much, it help me a lot
cool project. Going to make a smart water tank for my home.
Good luck!
Thank you so much, it worked!
Hola. Muy buena la programación. La probé y excelente. Lo único que agregaría es que para transductores de 12 Mpa, como mi caso, el delay a usar debe ser de 1000 sino se torna bastante impreciso. Muchas gracias.
I find the video very instructive, especially the time you take to explain each instruction in detail.
My question is if you have done tests with negative pressure, that is, with depression, I would like to build a vacuum gauge and it seems to me that it could work.
I have not done the test with an applied vacuum. I'm unsure if the sensors are designed to work that way. I would check the sensor manufacturer specs.
Nice video, keep it up, thanks :)
Thanks man great video. I have a home heated by oil tank and I'm thinking it'd be a good first project to put an analog sensor to measure tank level. So it can alert me when the tank gets low, and I can check it remotely. As of now I have to walk over and it's in the back of my garage. But also thought if I log the data I can measure oil usage over periods of time. I have a Rasp PI 4 & Arduino UNO, going to buy that sensor you used and probably use the Pi so I can take the data and move it via Wifi somewhere I can access it remotely.
Thanks for sharing, I'll be interested in this project as I'm doing a similar one.
Good luck!
Heya! Great video. Thanks! I am adapting your model for a pressure / depth sensor on my underwater ROV.
Perfect!
Thank you. Looking for more project..
If you adjust that blue potentiometer on your lcd piggy back you will be able to see the writing on the screen as it alters the contrast
3:51 1.5 psi is 77.5mmHg, so your measurement is probably right. It is normal that the "vacuum" is a much larger number because you only have to remove the air. There's a lot of atmospheric pressure outside to push against, so you can "suck" a lot harder than "blow". Nice presentation, btw!
Great stuff, thanks a lot. Subscribed:-)
Thanks!
Very clear sir, thanks, I appreciated it..
Glad it helped
Great Video!
Hi bro i have one question......if you have to your own mcu board then what will be interfacing circuit will be of analog pin.... de we need a resistor divider ckt with skotky diode with that?
Thank you sir
Glad it helped!
Good work man thanks
excellent tutorial, thank you very much.
Good good really
Glad it helped! Thanks for watching.
Great video. Thank you sir!
Great video, much appreciated
Glad it was helpful!
This code worked, thanks!.
Getting 2 white bars on lcd, how did you do it?
You're welcome!
Resolved by replacing the lcd library and address
nice but for industrial applications, we use often 4-20mA sensors not 0,5-5V Sensors :-) Nice Video thx 👌❤
That's only because of your proximity to the PLC, This doesn't require a PLC so there would be no voltage drop. This is nice on an ESP32 where the value can be wirelessly transmitted to a PLC or HMI from a remote location, especially if you have an ESP32 with LoRa, then you could transmit multiple miles on just 5 volts wouldn't be practical with 4-20mA
Obrigado pelo video! Me ajudou muito!
thanks for your nice job!!!
Thank you too!
Very detailed! Subscribing for more content👍🏻
Thanks for the sub!
Excelente, good job!
Thanks a lot!
Great video thx!
You bet!
Hi awsome video ... Do you think this sensor would be sensitive enough to detect air flow in ducting .. We have a fan that extracts from an industrial laser ... I need to work a way to detect which way the air flow is going left or right from a bypass system .. Was hoping if this is sensitive enough I could fit one on each side .. And control indicator light to show the air flow direction .. Hope that makes sense ! .thank you
Paul
Nice bro thanks for useful video
Glad to help!
@@OvensGarage is it possible to measure water level of water tank l with the help of this sensor
This is really a thorough video. Thank you very much. I would like to use this to control air pressure coming from a compressor, but I don't konw where to find prorammable air compressors, do you have an idea of any commercial model that I could connect to the arduino?
hey, I too want to do the same. Got stuck with the same question u asked here. whether you got it..? or u have any alternative..?
Everything works for me except the pressure is no printing to the LCD screen, though it is reading it in the serial monitor. i changed the address as well, but I am just getting white squares, had to change columns an rows too.
Probably the contrast of your screen
Hello, I am using a 300 psi pressure transducer. I used your code I am just confused what number to use for the analog signal. You the the number 1024 what will be the number I use. Or better question how do I determine that number?
great work brother we all appreciate your work. but can you help me with connecting this to Blynk please
Thanks for watching!
Good Nigth friend, video show. I would like to know which source do you use in the Arduino IDE?
Great video, thanks.
Anything on absolute pressure sensor?
I’m interested in reading vacuum.
I wonder if you could do this with multiple transducer sensors. I may use this for monitoring my well water, thankyou
Awesome video. I'm having one issue, when I use your equation and some portions of your code, for some reason my sensor readings flip to negative at 40PSI and as I increase the pressure, the negative starts dropping back to 0. Its a weird one I can't figure out.
The variables that are part of the equation are declared as INT while The result the code is expexting is float. This will cause the system to put a negative sign in about 32 psi... The solution is simple: declare all variables that are part of the pressure equation as float and also define them as float (include a '.0' after the integer part). This should solve your issue
Hi, great video! beginner here, i have a question tho.. my sensor is capable to measure up to 12 bar (174 psi), yours is 100 psi how did you get the values 0-1023? how do i get the values of my sensor?
The 0-1024 is the function of the analog.read() command. It takes the input in voltage and converts it to that range. It is not sensor specific
Great video. Which lines would I change using a 200psi sensor? Would I only change the maximum?
Good afternoon, excellent video, I have problems with the library that type of library I use, the one I have of "LiquidCrystal_I2C" throws me an error in "lcd.begin"
Well explained, thank you! I am currently working with a 5000PSI pressure transducer (Output voltage 0.5V-4.5V) and the Arduino nano. Can I use this code changing the constants? and, what do I have to change or add to the circuit?
Hello Mr if you can adding the temperature reading in LCD in same pressure sensor you can
Thank you so much
Hi thank you for this great video
Can you display the pressure value on a phone rather than than an LCD screen? What changes need to be done on the code?
Great Video!! Thank you. I have a project where I want to send 5V until a given pressure is reached. The pressure would start out high then when the lower pressure is reached shut off the 5V output. Being new to programming would that be difficult to add to your code?
Please make video for compressor work with Arduino . Please explain with wiring , Arduino code explain and product link.
If i want to turn a relay on or off at a certain pressure, would i add that code under yours?
Thank you!!!!!
You're welcome!
Bolehkah saya meminta scema rangkaian tersebut pak
nice tutorials.
can this sensor be used to read negative pressure?
thanks
I don't think you can do that with this sensor.
@@OvensGarage thanks for the information
Hi Ovens, do you reckon I can use this to measure the water pressure in a borehole?
Hello, thank you for your video.
I've got a small question.
If my sensor works with a 0-10V signal, can I use a voltage divider for the same code?
thank you
I believe so yes
Great video! That camera shake is making me sea sick though
Thanks!
I have 4 of these exact transducers. When reading the unaltered analog value on the serial monitor, I get 87 for one of them and 102 for the others. Does this just indicate that that specific transducer is running at less than 0.5 V? When I calculate the low voltage from those numbers I get 0.42V which does seem reasonable. Am I missing something or do I just need to calibrate each program to the specific transducer it's using if it's not 102.6?
Is this applicable to pressurized water tank to replace the conventional water pressure switch?
Hi sir can the pressure transducer measure car tire pressure
I don't see why not
Thanks for sharing, is there any similar code for use with oled display? please excuse my ignore.. new one to this kind of programming..
You can likely find example code with some OLED libraries in the IDE software.
What should do if unit in bar.
a question can measure liquid like kerosene ...and for a regular injector nozzle
Yes sensor can measure liquid pressure.
Hi bro is there a way to filter the noise at STP
This is an amazing video!
For my school i need to use a mpx 2050 gp pressure transducer to make a bloodpressure monitor. I need to convert the output voltage to a signal that gives a pressure from 0 to 200 mmhg. Could you help me with the arduino code for this task?
I couldt thank you enough!
can you teach me for my final year project. i really need your coding M3200 pressure transducer without LCD, hope you can help me
So how do you think to measure negatif pressure if you wanna use this transducer in vacum chamber?
If the sensor supply voltage is 12v not 5v and its output voltage is 0-5 volt ..will this affect the reading on the ADC pin?
i skipped the lcd and read the value in the serial monitor, but with the exact same code my sensor (100psi) shows -2.2psi. does that mean it is broken?
Amazing work mate!
Would you be kind enough to share the library file with us. I could not find the correct library.
Thank you
Check the address for the display I had the right library but wrong address for my display.
What materials do you use?
I have a 200 PSI sensor wich value do i need to change.
I just watch your video concerning industrial pressure and Ihave some questions.
firstly, please what is the identification of a sensor you use? if I want to command it or use exactly the same.
secondly, which is the type of the pressure sensor you use? differential? absolute? vacuum?
thirdly, can i use it in the reactor of a biodigester?
thanks in advance!
i look forward to hearing from you soon!
The pressure transducer sensor and all of the items I use are in the video description below, including the example code that I created and used. Absolute. You can use it wherever you deem fit. The sensor is okay to use with fluid, fuel, or air pressure. Good luck with your project.
@@OvensGarage thanks to answer me. in the video I haven't saw the '''identity''' of the sensor. because I whould like to use the same in my project.
so, I want the identity please which will allow me to search its datasheet, please
Nice video.. What is the maximum length of the cable that can be used?
I'm not sure! I haven't tested anything over 1-2 ft long.
Is it compensated with static pressure or I have to apply barometer too and do the math?
These are definitively not compensated. I use a 30psi sensor in my heating system in my house, and it varies proportional to the change in atmospheric pressure.
Hi Ovens, How many pressure sensors can we can connect with this Adruino board ? in case I want to install 6 sensors on 1 board, How can I extend input port ?
Hi, I got a question, I want to use it for measureing into a water container (1000 lt), the sensor could be in touch with the water,? my idea is at the bottom of the container in pipe line put it, thanks in advanced!!!!
Do you have example towing sensor?
thanks bro
No problem
Hi im very new to coding and arduino I was wondering what Lcd library you used.... i dont have a display on my lcd screen