Jeg har en relativt billig 0-15psi tryktransducer. Den har 3 ben - jordet 5V og signal. Signalet afgiver en spænding på 0,5V til 4,5V baseret på tryk fra 0psi til 15psi. Jeg kan kontrollere, at det reagerer på betydelige trykstigninger, så det fungerer i det mindste til et punkt.
Problemet er, at aflæsningen fra arduino kan variere med over 50%, når den er ved et atmosfærisk tryk (hviler på et bord) ). Det skal være betydeligt mere nøjagtigt, hvis sensordataene skal stole på. Koden er grundlæggende:
void setup () {Serial.begin (9600);} void measurePressure () {int rawReading = analogRead (A0); // Område: 0..1024 // float rawVoltage = (rawReading * (4.5 / 1023.0)) + 0.5; Serial.print ("Rå læsning:"); Serial.println (rawReading);} ugyldig loop () {measurePressure (); forsinkelse (1000);}
Outputvariationerne er ikke helt tilfældige, det ser ud til, at aflæsningen går ned og op i intervaller på ca. 5-15 sekunder. Nedenfor er et eksempel på output:
Råaflæsning: 61Raw-læsning: 67Raw-læsning: 70Raw-læsning: 73Raw-læsning: 74Raw-læsning: 78Raw-læsning: 75Raw-læsning: 82Raw-læsning: 85Raw-læsning: 90Raw-læsning: 89 aflæsning: 97Raveaflæsning: 103Raveaflæsning: 119Raw-aflæsning: 146Raw-aflæsning: 165Raw-aflæsning: 171Raw-aflæsning: 168Raw-aflæsning: 163Raw-aflæsning: 150Raw-aflæsning: 143Raw-aflæsning: 118 78Raw-læsning: 80Raw-læsning: 82Raw-læsning: 88Raw-læsning: 92Raw-læsning: 102Raw-læsning: 134Raw-læsning: 160Raw-læsning: 170Raw-læsning: 172Raw-læsning: 166Raw-læsning: 158Raw-læsning: 149 : 61Raveaflæsning: 71Raveaflæsning: 77Raw-aflæsning: 79Raw-aflæsning: 84Raw-aflæsning: 90Raw-aflæsning: 90Raw-aflæsning: 99Raw-aflæsning: 134Raw-aflæsning: 161Raw-aflæsning: 170Raw-aflæsning: 166 læsning: 68Ra w læsning: 63 Rålæsning: 63 Rålæsning: 71
Rå aflæsning: 73Raveaflæsning: 81Raveaflæsning: 83Raveaflæsning: 85Raveaflæsning: 89Raveaflæsning: 98Raveaflæsning: 128Raveaflæsning: 161Raveaflæsning: 171Raveaflæsning: 166 : 63Raw-læsning: 72Raw-læsning: 75Raw-læsning: 83Raw-læsning: 85Raw-læsning: 89Raw-læsning: 97Raw-læsning: 130Raw-læsning: 164Raw-læsning: 172Raw-læsning: 163Raw-læsning: 155 læsning: 72 Rålæsning: 78
Jeg forsøgte at tilføje 4,7 k trækmodstand uden ændring, men det var bare et blindt forsøg. Jeg har også tilsluttet et multimeter, og læsningen ser ud til at være mere stabil, lige fra ca. 0,495V til 0,535V (variationer synes ikke at matche arduino-output).
Hvad kan forårsage problemet?