Hi! ich habe hier ein unbekanntes Bauteil (ich vermute K-Type Thermostat), dass bei Erhitzung per Feuerzeug seinen Widerstand vergrößert. Habe nun einfach 5V auf den Sensor gelegt und Schalte dahinter auf A4; also: +5V -> Sensor -> | -> Masse | -> A4 Auf A4 kommen also sowas um die 4.9 bis 4.7V an je nachdem wie heiß der Sensor ist. Der Sensor hat wohl eine große Temperaturspanne. Nun will ich gern im Bereich 2V bis 5V eine Umrechnung auf int Werte 0-1024 haben. (A/D-Wandlung) Habe gelesen, dass ich die A/D-Referenzspannung über ARef anpassen muss. Lege ich einfach +5V auf ARef an? Oder ziehe ich durch einen Pull-Down Widerstand einfach die Gesamtspannung runter? Aktuell bekomme ich immer den Wert 0 raus. Code: const int tempSensorPin = 4; void setup() { Serial.begin(9600); pinMode(tempSensorPin, INPUT); } void loop() { int tempV = analogRead(tempSensorPin); Serial.println("tempV"); Serial.println(tempV); delay(1000); }
Die Funktion map() übernimmt das mapping. Um die Kommaposition musst du dich evtl. selbst kümmern. http://arduino.cc/en/Reference/Map
1 | pinMode(tempSensorPin, INPUT); |
Kannst du dir sparen, wenn Du einen Analogen Wert ausliest.
Ja, map() kenne ich, aber der Wert ist immer 0. Egal welche Spannung ich anlege. Ich dachte, dass AREF ggf. eine falsche Vergleichsspannung hat? Habe +5V auf AREF gelegt, der Wert ist immer noch 0. Ich versteh's nicht...
Laut deinem Schaltplan hast du den analogen Eingang (A4?) mit GND oder Masse verbunden. Dann kann auch nichts anderes herauskommen
bibabutzemann schrieb: > Laut deinem Schaltplan hast du den analogen Eingang (A4?) mit GND oder > Masse verbunden. Dann kann auch nichts anderes herauskommen Ja, das war falsch, klar. Habe es nun so: +5V -> A4 -> Sensor -> GRD Habe ich natürlich immer 1023 jetzt. Wie bekomme ich das so hin, dass ich die Spannung hinter dem Sensor an A4 anlege? Wenn ich den Sensor GRD direkt an A4 anschließe, fließt einfach gar kein Strom... ?!
OK, Prolbem: Der Widerstand des Sensors schwankt je nach Temperatur zwischen 12 kOhm und 50 Ohm. Wie bekomme ich das mit den +5V die anliegen gemessen? Schaltung ist nun +5V an Sensor, GRD des Sensors an A4.
Also wenn dein Sensor nur 2 Anschlüsse hat -wovon ich ausgehe- dann musst du den eher so anschliessen : +5V---Sensor---A4 und GND weglassen. Verstehe gar nicht wieso du unbedingt GND und +5V anschliessen willst ?!?
Also wenns ein Thermoelement ist, dann dürfte es eigentlich nicht als Widerstand missbraucht werden. Ein Thermoelement erzeugt doch eine Spannung, je nachdem wie heiß es gemacht wird. Sprich: Man müsste die Spannung des Thermoelements über einen Operationsverstärker oder so verstärken und damit dann in den µC.
Also ist wohl doch ein PTC/NTC Widerstand, oder? Das geht so nicht mit nur einem Widerstand. Du brauchst mindestens zwei Widerstände, damit an einem Widerstand (Spannungsteiler) mal mehr oder weniger Spannung (von der Referenzspannung = 5V) abfällt, die du dann mit dem ADC (A4) Eingang messen kannst.
Also das Ding sieht so aus: http://www.rmw-kartservice.com/rmw-shop/images/product_images/popup_images/temp--sensor--type--k---abgas-40cm_0.jpg Und hat 2 Anschlüsse. Wenn ich mit dem Multimeter den Widerstand messe komme ich bei +25°C auf 12 kOhm und wenn ich es mit dem Feuerzeug 20-30 Sek in die Flamme halte (die Spitze) komme ich auf c.a. 50 Ohm Widerstand. Wenn ich es so mache: +5V---Sensor---A4 Messe ich mit dem Multimeter zwischen den beiden Anschlüssen zwischen 4.7 und 4.9V -- je nach Hitze -- desto heißer, desto weniger Spannung. Bei analogRead() auf A4 kommt aber immer 1023 raus. Das versteh ich nicht :-/
aref schrieb: > Also das Ding sieht so aus: > > http://www.rmw-kartservice.com/rmw-shop/images/pro... > > Und hat 2 Anschlüsse. Das Bild sagt mir nichts, aber wenn die Bezeichnung im Link "(K-Typ)" stimmt, dann IST es ein Thermoelement und kann NICHT als Widerstand verwendet werden. > Wenn ich mit dem Multimeter den Widerstand messe komme ich bei +25°C auf > 12 kOhm und wenn ich es mit dem Feuerzeug 20-30 Sek in die Flamme halte > (die Spitze) komme ich auf c.a. 50 Ohm Widerstand. Wenn Spannung erzeugt wird, wirkt sich das natürlich auf den Widerstand aus. Versuch lieber mal das Ding zu erhitzen und eine SPANNUNGSMESSUNG zu machen. Keine Widerstandsmessung. Wenn dann eine Spannung bei großer Hitze Messbar ist, ist es eine Thermoelement -> siehe Wikipedia. > Wenn ich es so mache: > > +5V---Sensor---A4 So kannst du es in keinem Fall machen. Du kannst dir es so vorstellen, dass in dem Mikrocontroller auch ein Widerstand von A4 nach GND ist (ein sehr großer). Das heißt es fällt über den Sensor eine kleine Spannung ab (ca 0,3V) und über A4 nach Masse (im µC) der Rest der 5V. Du brauchst letztendlich, falls es wirklich ein Widerstand ist so eine Schaltung: +5V--+--Sensor--+--Widerstand--Masse |--Aref |---A4 > Messe ich mit dem Multimeter zwischen den beiden Anschlüssen zwischen > 4.7 und 4.9V -- je nach Hitze -- desto heißer, desto weniger Spannung. > > Bei analogRead() auf A4 kommt aber immer 1023 raus. > > Das versteh ich nicht :-/
bibabutzemann schrieb: > Wenn Spannung erzeugt wird, wirkt sich das natürlich auf den Widerstand > aus. Versuch lieber mal das Ding zu erhitzen und eine SPANNUNGSMESSUNG > zu machen. Hmm, ja -- das hab ich ja auch gemacht. 4.7 bis 4.9V kommt dabei raus. Was ich nicht verstehe ist, dass wenn an A0 4.7 oder 4.9V anliegen immer 1023 raus kommt. Liegen diese 4.7V über der Skala vom Analog-Pin? Wie muss ich die Schaltung machen, um die Spannung zu messen? Langsam bin ich total verwirrt ;)
Also so wie es aussieht, muss ich einen zusätzlichen IC einsetzen: http://www.designer2k2.at/home/arduino/19-thermoelement-typ-k-an-arduino.html z.B. AD595
aref schrieb: > Also so wie es aussieht, muss ich einen zusätzlichen IC einsetzen: > > http://www.designer2k2.at/home/arduino/19-thermoel... > > z.B. AD595 Das meinte ich doch. Und beim Messen der Spannung meinte ich eigentlich nur zwischen den zwei Kontakten des Sensors die Messpitzen zu messen und keine Beschaltung (5V, Arduino oder sonstiges) verwenden. Sprich : Voltmeter nur mit Sensor verbinden and thats it. Voltmeter(+) <---Sensor---> Voltmeter(-)
bibabutzemann schrieb: > Voltmeter(+) <---Sensor---> Voltmeter(-) Nein, da tut sich nix. 0.000V bei beliebiger Temperatur. Es wird keine Spannung erzeugt. Es ändert sich NUR der Widerstand. Damit is es aber auch kein Typ-K, richtig? Und den AD595 brauch ich dann auch nicht besorgen, denn wo nichts ist, kann man auch nichts verstärken. Als ich +5V an den Sensor anlege und den anderen Pol an GRD des Arduino anschließe, kann ich bei Temperaturänderung einen Spannungsunterschied messen, da der Widerstand sich erhöht.
Schalte doch mal einen zusätzlichen Widerstand(10k z.B.) in Reihe nach Masse und greife mit A4 die Mitte dieses Spannungsteilers ab. Da sollte doch zumindest kein Endwert(0 oder 1023) mehr bei rauskommen. Solche passiven Sensoren schließt man doch eh meist als Spannungsteiler an ADCs an.
Max G. schrieb: > Schalte doch mal einen zusätzlichen Widerstand(10k z.B.) in Reihe nach > Masse und greife mit A4 die Mitte dieses Spannungsteilers ab. > Da sollte doch zumindest kein Endwert(0 oder 1023) mehr bei rauskommen. > Solche passiven Sensoren schließt man doch eh meist als Spannungsteiler > an ADCs an. Das habe ich auch gedacht -- kann sein, dass ich zu müde bin/war und die Schaltung falsch aufgebaut habe, aber dann kam 0.00 raus. Oh man, das ist doch völlig unlogisch... Also hier meine Schaltung (jetzt alles minimiert, es gibt nur noch einen beschalteten Eingang --- jetzt auf A0) ausgehend von GRD / Arduino: GRD -> 10k -> A4 -> Sensor -> +5V Ich greife also A0 direkt hinter dem Sensor ab aber bevor der 10k-Widerstand kommt. Der hängt dahinter und geht zu GRD des Arduino... Programmcode (analogReference() war nur eine Spielerei - egal welcher Wert, es is immer 0.00): const int tempSensorPin = 0; void setup() { Serial.begin(9600); analogReference(INTERNAL); } void loop() { double sensorValue = analogRead(tempSensorPin); Serial.print("V?:"); Serial.println(sensorValue); } --- Das kann doch gar nicht sein?! Am Multimeter habe ich zwischen + und - des Sensors astreine 4.924V. Zwischen A0 und GRD habe ich 4.923V. Und analogRead() sagt mir 0.00...?!
OK! Ich hab den Fehler gefunden. Die Schaltung sieht nun so aus: +5V -> Sensor -> A0 -> 100 Ohm -> GRD Durch die 100 Ohm komme ich bei 32°C auf einen Wert von 10. Habe grade gemessen. 500°C ergeben einen Wert von 600. Jetzt muss ich halt noch schauen, wie ich einen korrekten Zusammenhang zwischen Temperatur und Wert finde. Danke euch allen schon mal.
aref schrieb: > ich habe hier ein unbekanntes Bauteil (ich vermute K-Type Thermostat), > dass bei Erhitzung per Feuerzeug seinen Widerstand vergrößert. Bei unbekannten Bauteilen hilft oft schon mal ein Photo (scharf, Auflösung Bilddaten entsprechen optischer Auflösung - gell). Und wenn es kein Thermoelement oder PT100(0) ist, ist Feuerzeug keine gut Idee, da bei NTC oder PTC meinst bei Temperaturen um 150°C Schluss mit Lustig ist.
Tip schrieb: > Bei unbekannten Bauteilen hilft oft schon mal ein Photo (scharf, > Auflösung Bilddaten entsprechen optischer Auflösung - gell). > Und wenn es kein Thermoelement oder PT100(0) ist, ist Feuerzeug > keine gut Idee, da bei NTC oder PTC meinst bei Temperaturen um 150°C > Schluss mit Lustig ist. Das passt schon; es stammt aus einer Abgasanlage. Die Thermosensoren dort sind bis 1100°C spezifiziert. Klappt jetzt wunderbar.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.