2011-01-01 5 views
2

der erste sensor ist meine lm335z ausgang.Wie bekomme ich Celsius als Ausgabe von LM335Z mit Arduino?

int firstSensor = 0; 
int secondSensor = 0; 
int thirdSensor = 0; 
int inByte = 0; 

void setup() 
{ 
    Serial.begin(9600); 
    establishContact(); // send a byte to establish contact until receiver responds 
} 


void loop() 
{ 
    if (Serial.available() > 0) { 
    inByte = Serial.read(); 
    firstSensor = analogRead(0); 
    delay(10); 
    secondSensor = analogRead(1); 
    thirdSensor = analogRead(2); 
    Serial.print(firstSensor, DEC); 
    Serial.print(","); 
    Serial.print(secondSensor, DEC); 
    Serial.print(","); 
    Serial.println(thirdSensor, DEC); 
    } 
} 

void establishContact() { 

} 

Antwort

6

Auf der Grundlage seines datasheet, wird die Temperatur am Ausgang 10 mV/K variieren. Aber wenn Sie eine Referenzspannung bei einer bekannten Referenztemperatur finden, können Sie dies hilfreich Gleichung aus dem Datenblatt verwenden:

V_out = V_ref * T_out/T_ref, die T_out = T_ref * (V_out/V_ref) entsprechen

So sagen Ihre Spannung 2.982V bei 25 ° C oder 298,15 Grad Kelvin (dies ist in unserem Datenblatt vorgeschlagen), dann können Sie Ihre Gleichung auf:

T_out = (298.15 Kelvin)(V_out/2.982V)-273.15

So können Sie bereits unter der Annahme, kann eine analoge umwandeln in eine Spannung * lesen, schließen Sie einfach die gemessene Spannung und dies sollte gib dir y unsere Temp in ° C

* Die Arduino hat einen eingebauten 10-Bit-ADC und die maximale Spannung ist 5v lesen kann. Daher können Sie 5 V/1024 ADC-Schritte = 0,00488 V pro ADC-Schritt berücksichtigen. (d. h.). Wenn Sie also für V_out einstecken, wird die Gleichung:

T_out = (298.15)(firstSensor*0.001637)-273.15 wobei 0,001637 = 0,00488/2.982.

+0

niemals mehrfach durch einen kleinen Gleitkommakonstante Wert zu erhalten - Gleitkomma ist ungenau und oft Menschen geben nicht genügend Ziffern in der konstant um genau zu sein - 5/1024 = 0,048828125. Ebenso sehr vorsichtig sein mit A/DC-Conversions als der Bereich nicht ist, wie Sie berechnet. Ein A/DC-Wert von 1023 aus einem ATmega328 (UMC für die Arduino) gleich Vcc (Versorgungsspannung) - nicht 1024. Das heißt, analogRead (A0) liefert 1023, wenn der Stift A0 Vcc entspricht. Sie werden um 4.88mv (oder mehr - siehe vorherige) wenn Sie 0,00488 als Wert verwenden. Um zu überprüfen: 1023 * 0,00488 = 4,99224 oder 1 * K zu niedrig. –

Verwandte Themen