Это видео недоступно.
Сожалеем об этом.
Pressure Sensor - Arduino
HTML-код
- Опубликовано: 5 апр 2020
- 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.
I'm using this sensor, but be aware! Sensorvalue is also changing with temperature!
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.
6:30; Thanks for the explainer of where the 0.5vdc came from!
Cheers, thanks for watching!
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!
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!
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
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!
Clear and straight to the point. Congratulations!
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.
You my friend are a saint. Been looking all over for this.
Cheers
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
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!
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.
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
Thank you, your video helped me a lot during my final year project
Glad I could help!
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.
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.
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!
Top video and description, it's pleasure to subscribe. Look forward to more like this.
Thank you very much!
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.
Excellent commentary and tutorial. Thank you.
Thanks
Thanks you very much, it help me a lot
this guy deserves a medal
Thanks for sharing, I'll be interested in this project as I'm doing a similar one.
Good luck!
Dude this is awesome! Great video
No problem glad it helped.
Heya! Great video. Thanks! I am adapting your model for a pressure / depth sensor on my underwater ROV.
Perfect!
cool project. Going to make a smart water tank for my home.
Good luck!
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
excelente gracias!!! from Mendoza Argentina!
Thank you. Looking for more project..
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?
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 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
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?
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
Great Video!
Thank you so much, it worked!
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..?
I wonder if you could do this with multiple transducer sensors. I may use this for monitoring my well water, thankyou
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"
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?
Great video, thanks.
Anything on absolute pressure sensor?
I’m interested in reading vacuum.
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?
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
Hello Mr if you can adding the temperature reading in LCD in same pressure sensor you can
Thank you so much
Great stuff, thanks a lot. Subscribed:-)
Thanks!
Great video. Which lines would I change using a 200psi sensor? Would I only change the maximum?
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?
excellent tutorial, thank you very much.
Good good really
Glad it helped! Thanks for watching.
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
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 work brother we all appreciate your work. but can you help me with connecting this to Blynk please
Thanks for watching!
If i want to turn a relay on or off at a certain pressure, would i add that code under yours?
Good Nigth friend, video show. I would like to know which source do you use in the Arduino IDE?
Very clear sir, thanks, I appreciated it..
Glad it helped
Good work man thanks
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.
Hi Ovens, do you reckon I can use this to measure the water pressure in a borehole?
Please make video for compressor work with Arduino . Please explain with wiring , Arduino code explain and product link.
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?
Great video, much appreciated
Glad it was helpful!
hi, if i want to switch on a relay belows 58psi and switch off if it reaches 58?
Did you get it?
Is this applicable to pressurized water tank to replace the conventional water pressure switch?
Great video. Thank you sir!
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?
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
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!!!!
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
So how do you think to measure negatif pressure if you wanna use this transducer in vacum chamber?
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 ?
a question can measure liquid like kerosene ...and for a regular injector nozzle
Yes sensor can measure liquid pressure.
Mine is 60psi. I change pressuretranducermaxPSI to 60 but at my serial monitor the prints without pressure are from -0.5 psi to 0.7 psi. Something going wrong with the sensor or some
thing else?
would this work for a vacuum sensor? any way you can help with a sensitive diy vacuum sensor that works down to the 1 mTorr level? they cost hundreds of dollars currently
Very detailed! Subscribing for more content👍🏻
Thanks for the sub!
Thank you sir
Glad it helped!
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
thanks for your nice job!!!
Thank you too!
can you teach me for my final year project. i really need your coding M3200 pressure transducer without LCD, hope you can help me
Most of these sensors I have seen are .5v=0psi 4.5v=max rated.... but 0v=-14.7 psi. Theoretically, if you applied a vacuum, it should (linearly) bring the voltage down to zero.
Here's my issue.... If I wanted it to read vacuum, how would I change the code for the equation to include those vacuum numbers? I assume an if loop to check pressure value for +/-0, and then if less than zero, convert the vacuum numbers to inHg... but what would the change in the equation be for the analog signal?
Side note: I have one of these transducers coming in the day after tomorrow, and I will be testing it with a compressor and a vacuum pump to see if the voltages work like I think they do. I plan to use them for much the same purpose as you, except I am planning to use them as probes for scope inputs for diagnostics, but would like to be able to use them with a separate digital read out also. What I don't know is the Arduino coding to make it work, or the math skills to figure out the equation.... If you'd be interested in collaborating on it, feel free to let me know. I plan to figure out fuel pressure, temperature, vacuum, oil pressure, and compression sensors..... Most of which sounds like something you could use also.
Hi sir can the pressure transducer measure car tire pressure
I don't see why not
Is it possible to add a digital input keypad to enter required data?
I guess it could be yeah if you coded it that way
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.
Bolehkah saya meminta scema rangkaian tersebut pak
Hi, do you know if there is an Arduino library available for these type of sensors ? Thanks
Not that I know of
I'm new to all this and was wondering if I could use a Pressure Transmitter instead and is there limits on the max pressure? Does it matter within the code itself?
Hi, I'm unsure what a pressure transmitter means that you are talking about. You can purchase these types of sensors from amazon in various pressure limits and very simple to adjust this code to them.
Obrigado pelo video! Me ajudou muito!
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!
If I wanted to run two of that same sensor for oil and fuel pressure would I just duplicate the code underneath and change the input to A1? And to display the second reading under the oil pressure just change the colum row to (1,0)?
Yes that would likely work!
I have a 200 PSI sensor wich value do i need to change.
I have a 300 psi sensor which has the same 0.5v is zero - 300psi 5v. When I put in the code, I changed the max psi to 300 but when I run the serial monitor and have it hooked it, it shows on average -1.5psi. Is this correct or should it say 0.0psi?
Just curious, how did you get your max and min pressure PSI analog readings? I am working on a similar project using a 15PSI sensor, but am trying to figure out how to find those min/max readings.
I am working on a similar project with 300 psi. Did you end up figuring it out Max and min for the sensors? How did you do the conversion?
I think max and min is just posted on the sensor data sheet. Not sure how to accomplish the conversion yet
@@josephdaquila2479OV input is read as 0 by analogRead and 5V is read as 1023. So, you have to convert analogRead values to match the voltage given by the sensor and correlate to the pressure according to sensor model.
Example: a sensor with full scale equal to 20psi and current pressure is 10 Psi and sensor voltage range is 0-5V. You get 2.5V from the sensor that is read by analogRead as 511 or 512. From these information you calculate the pressure and get 10psi.
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
Hi bro is there a way to filter the noise at STP
Excelente, good job!
Thanks a lot!
What kind of pressure measures of the device that you use? And are you familiar with BME280 Barometric Pressure sensor? Can you help me how can I measure a gauge pressure using the BME280 sensor.
Yes I have used the BME280
@@OvensGarage I used BME280 and used codes that reads the barometric pressure, example of the initial reading is 100.2 KPa. I want the initial reading to start with 0 like what you did in this video but I can't make it.
@@OvensGarage And it is possible to get the gauge pressure using the BME280?