Possible issue with Tab5 and UiFlow v2.3.1 - (i2c driver install error)
-
in my case i need to query an AIN unit, which is i2c...so this error is a total blocker.
-
@Kenzo as Ive said before try below: remove "get voltage" block and try your Tube Pressure unit with analog value only
-
@adamm5 Ive rebuilt this project from scratch and can confirm that ignoring the i2c load error is possible even when using the AIN i2c unit and PAhub unit. This seems to be a change to my earlier experience but perhaps something else was happening with the code.
-
Thanks everyone for your suggestions!
@robski - I went back to my Tube example and the only one that worked was the ADC parameter to pull data. (I used 12bit)
So I looked at the UiFlow1 example for the Tube Pressure and tried to duplicate it. The program now runs BUT I am not sure if I am using the correct math conversion to convert the raw data from the ADC parameter into Kpa. I have searched a couple of sources BUT can't seem to find documentation that fully explains how to correctly calculate Kpa with the ADC parameter to Kpa...
Does anyone know were to get really good documentation on the tube pressure sensor that explains how to properly calculate Kpa using the sensor with ADC option?
-
So if I assume the ADC 12 bit option will give me 4,096 different points and the ADC 16 bit option will give me 65,536 different points maybe I can come up with a formula ( using the voltage - Pressure graph) of how to calculate Kpa when using ADC option for the Tube pressure... Everyone I am just thinking out loud so don't bash me too badly... LOL!
-
what are RAW values you are getting from your sensor? pure analog read value?
try below
float raw = analogRead(sensorPin); // Read analog value
float Vout = raw / 4095.0 * 3.6; // Convert to voltage (assuming 3.6V reference)
float P = (Vout - 0.1) / 3.0 * 300.0 - 100.0; // Calculate pressure in kPa -
@robski Thanks for replying! With nothing connected to the Tube pressure sensor, I am getting a RAW value of 3,287 (12 bit option selected in the ADC parameter).
In regards to a 3.6V reference, where is that in the documentation?
I think we are getting close to solving this problem!
-
@robski - I stumbled across this youtube video about an Arduino Pressure Sensor and was thinking about testing a version of his method for coming up with a calculation...
-
with your raw value as 3287
sensor range -100 to 200
analog range 0 to 4095your calculated pressure should be around 140
-
@robski - hmmm.... Well that raw value was with nothing connected to the Tube Pressor sensor. Because nothing is connected to the tube pressure sensor I would assume it would be closer to 0 Kpa... 140Kpa is a big difference from 0 Kpa... I wonder what we are missing?
-
@robski I keep coming up with 140Kpa also...
We must be missing something... -
just connect voltage to sensor and measure what voltage it is giving out between output pin and ground. for 0 kPa your raw Analog value should be around 1300 i think
-
@robski - I think you hit on something there! I measured the voltage between the ground and the sensor and it came to around 1.1v which according to the graph should be around 0 Kpa. (see attached photos) Something is definitely strange...
-
This post is deleted! -
Also here is the formula I was using to calculate Kpa
So for 12 bit parameter, this gives a kpa resolution of 300Kpa/4096 bits or 0.0732421875 kpa/bit (73.2pa/bit)
x = ( (0.0732421875 kpa/bit * Raw Value bit) - 100Kpa)
x = ( (0.0732421875 kpa/bit * 3287 bit) - 100Kpa) = 140.7KpaFor the 16 bit parameter this gives a kpa resolution of 300Kpa/65536 bits or 0.00457763671875 kpa/bit (4.6pa/bit)
x = ( (0.00457763671875 kpa/bit * Raw Value bit) - 100Kpa)
x = ( (0.00457763671875 kpa/bit * 52600 bit) - 100Kpa) = 140.8Kpa -
@robski I sent an email to M5Stack Support about the possible issue with the Tab5 and Tube Pressure sensor BUT no response so far....
-
@Kenzo
This is an ADC problem. We are fixing UiFlow2 codes. Please be patient.