AAU CANSAT - Fra sensor til fysisk værdi

mostly obsolete see comp.html

TODO diskussion om 1023 versus 1024

Sensor

En sensor omsætter en fysisk værdi som temperatur og tryk til noget målbart somen spænding eller strøm. For de fleste enkle sensorer er det oftest en spænding man kan måle.

Temperatursensor LM35

LM35 er (datablad) er en temperatursensor der

Datablad for temperatursensor 

Her ses et udsnit af datablad for temperatursensor LM35. Man kan se, at den har tre tilslutninger:

  • Vs forsyningsspænding - den skal forsynes med en jævnspænding for at fungere. Den er ikke kritisk blot mellem 4 og 20 V, men skal være stabil.

  • 0Vnul den anden ende af batterietforsyningspændingen

  • OUTPUT - Temperaturen som spænding. Det ses at OUTPUT er 0V + 10.0mV/grad Celcius og at den kan måle mellem 2 gr C og 150 gr C

OUTPUT spændingen måles mellem OUTPUT og 0V/nul.

Det er muligt at måle lavere temperaturer, men der skal da en anden og lidt mere kompliceret opkobling af sensoren til.

Andre sensorer har ofte tilsvarende omregninger fra den fysiske måleværdi til en spænding.

Ser vi på temperatursensoren kan vi se følgende sammenhæng

Vs(Volt) = 10.0mV * (T(grader Celcius))

omregnet bliver det

T(grader Celcius) = Vs / 10.0mV (grader Celcius)

Et par eksempler er givet i nedenstående tabel

OUPUT (Volt) T(gr Celcius)
0.010 1.0
0.100 10.0
0.250 25.0
1.000 100.0
1.500 150.0

Bemærk, at der står at laveste temperatur der kan måles er 2 grader Celcius som svarer til 20 mV (0.020V).

Kalibrering

Der er nogle sensorer der skal kalibreres før end at man kan bruge dem. Den temperatursensor der bruges her skal ikke kalibreres idet

Måling af spænding med computer

Næste skridt er at måle output fra sensoren - en spænding.

Man kan lave en simpel opkobling af sensoren og måle OUTPUT med et almindeligt voltmeter for at teste sensoren og se om den virker. Man tager et glas koldt vand og måle temperaturen og så fylde varmt vand i af et par omgange og måle den stigende temperatur. Man kan verificere måling med at almindeligt termometer.

Vi har valgt at benytte en standard Arduino (UNO size) som basis computer for vores Cansat kit. Arduino løsningen er valgt grundet dens store udbredelse og meget enkle programmeringsværktøj.

Computeren(Ardunio, MSP430,…) har en analog indgang hvormed man kan måle spændinger. En analog indgang kan typisk måle spændinger mellem 0 og 3.3V eller 0 og 5.0V. I det følgende regner vi med 0 til 5V.

En analog indgang karakteriseres ved dens bit opløsning - 10 bit, 11 bit osv. En 10 bits indgang opdeler de 5 V i 2^10 = 1024 intervaller. Det vil sige af eks vil 3V blive målt som tallet 1023 * 3/5 = 613 og 4.9V som 1023 * 4.9/5 = 1002. Den mindste forskel man kan måle (kvantiseringen) er 5/1023 = 4.9 mV.

Tager vi tabellen fra før med temperaturmålingerne er der indført en søjle med måletallene (output tal fra analog indgang).

OUPUT (Volt) måletal T(gr Celcius)
0.010 2 1.0
0.100 20 10.0
0.250 51 25.0
1.000 204 100.0
1.500 306150.0

Opløsning

Den mindste spændingsforskel man kan måle er 5/1023 V = 0.0049V eller 4.9mV. Temperatursensoren giver 10 mV pr grad Celcius dvis mindste temperaturforskel vi kan måle er ca 0.5 grader.

Tilbage til fysiske enheder

Måletallet skal nu konverteres så at vi igen har den fysiske enhed. Ser vi i tabellen ovenfor skal eks måletal 204 omsættes til 100.0 grader C.

De 5 V er representeret ved et måletal mellem 0 og 1023, dvs omregningsfaktoren er 5/1024.

omregning til spænding er da ved at gange måletallet med 5/1023

Næst er der så omregning til den fysisk værdi - i dette tilfælde temperatur - ved at gange spændingen med1 /10mV idet der jo gik 10mV på hver grad Celcius

Et eksempel:

  1. Måletal 204 (fra tabellen ovenfor) bliver til 204 *5V/1023 = 0.997V

  2. Spænding 0.997V bliver til 0.997V/10mV = 99.7 grader Celcius

Vi startede ud med 100 grader og vi har vist at nøjagtigheden er 0.5 grader så dette resultat er ok.

disclaimer - der mangler lidt enheder for at det er helt korrekt