Fråga:
Oljetryck / Vattentryck / Boosttryck (Turbomotor)
Luis Javier Peña Ureña
2014-12-14 09:44:14 UTC
view on stackexchange narkive permalink

Jag är en bilentusiast och jag vill bygga några mätare själv med Arduino.

Jag tittade på den här tryckgivaren eller sändaren, 100 psi, rostfritt stål, för olja, bränsle, luft, vatten och jag tänkte om jag kunde använda den här sensorn för att utföra alla dessa uppgifter: vatten, boost och oljetryck.

Titta på signalutgången jämfört med läs PSI-diagram för sensorn

 Signal output vs read PSI chart of the sensor

Jag kom ut med denna ekvation för PSI-beräkningen:

Eftersom det är en Y = bx + a , där:

  a = 0,5 b = y2 - y1 / x2 - x1 = (4,5 - 0,5) / (100 - 0) = 4/100 = 0,04x = PSIy = Signalens spänning  

Detta betyder att

Spänningsavläsning = 0,04PSI + 0,5

Så vi har:

PSI = (Voltage Reading - 0.5) / 0.04

Är jag korrekt? Kan jag använda den här sensorn?

Två svar:
BrettAM
2014-12-14 12:00:34 UTC
view on stackexchange narkive permalink

Du matematiska kontrollerar dig till mig.

När du kodar den kommer du förmodligen att läsa en spänning med en analog stift (eller extern ADC) som returnerar ett heltal mellan 0 och 0 volt och 1024 = vin volt. vin blir 5 om du inte kopplar in vinstiftet och 1024 kan vara annorlunda om du använder en extern ADC.

Hur som helst bör du vara medveten om att de råa avläsningarna troligen inte kommer att vara 0-5 , och de har inte decimaler. Du måste först konvertera avläsningen till spänningen med något så här:

  float voltage = ((float) reading) / 1024.f;  

lägg märke till att datatypens flottör används (möjliggör decimaler) och att konstanten som delas med också är en flottör så att beräkningarna definitivt kommer att ske mellan flytpunktsnummer.

floatberäkning är långsam på en arduino. Du kan bara använda vanliga heltal. `byte psi = (analogRead (A1) -102) / 8` skulle vara en ganska bra uppgradering. Eller om du behöver mer precision; `int psi = (analogRead (A1) -102) * 100/819`.
heltal aritmetik är effektivare men jag tvivlar på att tidsskillnaden verkligen betyder något. När jag testade detta var det ingen skillnad mellan körningstiderna mellan de två versionerna med tanke på 4 mikrosekunder upplösning av mikro ().
Var försiktig ... formeln för konvertering är float voltage = ((float) rawADC + 0.5) / 1024.0 * Vref (från https://www.gammon.com.au/adc med förklaring). I ditt fall är 8-bitars heltal (0-255) bra, inget behov av extra precision.
user1395364
2017-11-20 21:21:44 UTC
view on stackexchange narkive permalink

Jag skulle lägga till kod för att testa spänningen mellan 0,0 och mindre än eller nära 0,5 volt. Frånkopplad tryckgivare presenterar inte 0,5 v, 0 PSI-givarspänning; inte utgång 0,5 v @ 0 PSI visar en lägre spänning som indikerar ett fel eller en öppen krets i givarkabeln. Mina erfarenheter, för många gånger "lånade andra ingenjörer hårdvara och jag avvecklade felsökning av ett fel men stöld;} Bara några rader kod för att säkerställa att anslutningarna är korrekta. Flytpunkten mot heltal aritmetisk beräkningstid uppvägs av avgörande tid av A / D-omvandlare och givare. Bildelen var min lösning för att visa HOA-kortstatistik för mitt väldigt varierande vattentryck på Condo Assn, mycket kostnadseffektivt också.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...