PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 9 Volt Sensor mit Attiny13 auslesen?



tobiastob
15.03.2008, 20:05
Hallo,
ich habe einen Spannungsteiler, bestehend aus einem Sensor und einem Potentiometer, die an 9 Volt liegen. Muss ich nun auch auch 9 Volt an AREF (PB0) des Attiny13 anlegen um den Sensor auszulesen? Oder brennt der Prozessor dann durch?
Ist bei einer externen Referenzspannung auch ein 100 nF Kondesator an AREF nötig?

Grüße
tob

Hubert.G
15.03.2008, 21:03
Du darfst am ADC-Eingang nicht mehr als VCC anliegen haben und an AREF auch nicht,
Den 100n an AREF sollte man immer nach GND schalten.

tobiastob
16.03.2008, 00:46
Danke Hubert.
Sollte es aber nicht funktionieren, wenn ich noch einen Widerstand mit dem ADC Pin in Reihe schalte, um die Eingangsspannung wieder auf 5 Volt zu senken, oder ist das ein Denkfehler? Dann könnte ich ja auch bei AREF die üblichen 5 Volt anlegen.
Geht der ADC sofort kaputt, wenn ich (testweise, aus Versehen) eine zu hohe Spannung anlege?

Hubert.G
16.03.2008, 08:54
Du musst einen Spannungsteiler vorschalten, nicht nur einen Widerstand in Reihe. Also 10k in Reihe zum ADC und vom ADC- Eingang noch einen 10k nach GND. Die Eingänge sind bei Spannungen über der max. Spannung lt. Datenblatt ziemlich schnell kaputt. Es kann allerdings auch zu teilschädigungen kommen die man nicht sofort erkennt, das ist dann besonders gemein.

tobiastob
16.03.2008, 12:49
Danke. Aber senken die 10k Widerstände nicht auch die Spannung am Sensor? Der bekäme ja auch keine 9 Volt mehr. Ist es generell micht möglich Sensoren mit dem ADC auszulesen, die mit über 5 Volt betrieben werden?

Grüße tob

Dirk
16.03.2008, 13:13
Hallo Tob,

du bekommst keine Antworten, die dir helfen, weil nicht ganz klar ist, wie der "9V-Sensor" mit dem Potentiometer verschaltet ist. Es kommt auch gar nicht darauf an, mit welcher Spannung der Sensor versorgt wird, sondern welche Spannung am Ausgang der kompletten Sensorschaltung (Sensor + Poti) herauskommt.
Diese Spannung darf nicht über VCC liegen.
Liegt sie doch über VCC, z.B. zwischen 0 und 8V, must du da am Ausgang der Sensorschaltung einen Spannungsteiler (2 Widerstände) anschließen. Am Mittelpunkt zwischen den 2 Widerständen liegt dann der ADC-Eingang.

Gruß Dirk

tobiastob
16.03.2008, 14:09
Hallo Dirk,

tut mir Leid, dass es bisher nicht verständlich war. Ich hoffe, die Skizze hilft da ein wenig.

Ich meinte auch keinen 9 Volt Sensor, sondern einen Spannungsteiler mit insgesamt 9 Volt. Entschuldigung.

Statt des angesprochenen Potentiometers hab ich einen 80 Ohm Widerstand eingebaut. Den müsste ich dann evtl. noch anpassen.

Ich hatte es schon mal mit der gleichen Beschaltung, ohne die 10 k
Widerstände, bei einem AtMega8 probiert. Da lieferte der ADC zumindest unterschiedliche Werte.

Mir ist eigentlich auch nur wichtig, dass der Widerstand des Sensors irgendwann geringer wird als der "Gegenwiederstand". Exakte Messergebnisse und ein besonders großer Messbereich sind nicht nötig.
Aber auch wenn es mit dem ATMega8 funktioniert hat, war es wohl eine sehr unsaubere Lösung und beim ATTiny13 funktioniert sie nicht. Hab schon einen (vermutlich) geröstet. Der ADC misst konstant 1024.

Ich hab nun auch die beiden von Hubert vorgeschlagenen 10 k Widerstände eingezeichnet.

Ist die Größe der beiden Widerstände für Versorgung des Sensors unerheblich, solange sie beide identisch sind, bzw. im gewollten Verhältnis zueinander stehen?

Hoffentlich hab ich mit meinen bisherigen Verwirrungen nicht schon alle vertrieben.

Grüße tob

Dirk
16.03.2008, 14:30
Hallo tob,

also:
Die Spannung am Sensor/Teiler1 kann zwischen 1,9 und 9 Volt liegen, wenn der Sensor seinen Wert von 0 bis 300 Ohm ändern kann. (Was ist das für ein Sensor???)

Der uC würde aber nur bis 5V messen können. Es ist dann gut so, wenn du mit den beiden Widerständen die Spannung halbierst.
Am uC wären das dann 0,9 bis 4,5V. Das kann man so gut messen.

Gruß Dirk

P.S.: Wenn der Sensor 0 Ohm haben könnte, dann wird der 80 Ohm-Widerstand mit 113mA belastet (0,6W). Das ist ein Stromfresser. Vielleicht kann man das auch anders machen. Erzähl doch 'mal genauer, was das für ein Sensor ist!

Bernhard667
17.03.2008, 18:03
Hallo,

warum machst Du nicht:
GND - Sensor - Mittelpunkt - 300 Ohm Widerstand - 9V
Den ADC Pin legst Du an Mittelpunkt.
Dann hast Du an Mittelpunkt eine Spannung von 0-4,5V.
Dabei nutzt Du den ADC besser aus, und kannst die 2 Teiler sparen.
Ausserdem ist der maximale Strom 9V/300 Ohm =33mA. Immer noch viel, aber schon mal besser als 113mA.

Bernhard

tobiastob
17.03.2008, 21:04
Hallo,
Danke für Eure bisherigen Bemühungen. Der Sensor ist ein Heizelement, bzw. ein Heizdraht, dessen Länge und sonstige Beschaffenheit ich leider nicht ändern kann. Also bitte keine anderen passenderen Sensoren vorschlagen. Ich hoffe, das klingt jetzt nicht zu zickig, ich wollte es nur vorweg nehmen.

Also: Ich habe mal einen kleinen Test-Spannungsteiler aufgebaut:
als "Teiler" habe ich 90,5 Ohm eingebaut. Am gesamten Stromkreis liegen 9
V an.

Die Stromanzeige schwankt leider etwas unschlüssig zwischen 0,02 und 0,01 A.

Ungekühlt liegen am Heizelement 7,2 Volt, gekühlt 7,1 V an. Das entspricht, wenn man von 0,02 A ausgeht, einem maximalen Widerstand von 360 Ohm und einem minimalen von 355 Ohm.

Liegen am Heizdraht nur maximal 4,5 Volt an, sinkt die Spannung auf minimal 4,46 Volt. Die Differenz ist also noch geringer.

Die messbare Differenz ist ja schon im "Idealfall" sehr gering, d.h. wenn das Heizelement ausreichend versorgt wird.
Mit einem ATMega8 war die Differenz, wie gesagt, für den ADC noch ausreichend. Da bemerkte er die Kühlung bei einem Teiler von 70 Ohm und einem "ADC-Grenzwert" (nennt man das so) von 700. Wurde das Heizelement gekühlt, lag der "ADC-Wert" über 700.
Ich brauche auch zwischen Max.- und Minimalwert keine weiteren Abstufungen.
Aber den ADC des ATMega8 habe ich ja auch etwas überstrapaziert. Der ATTIny13 macht das so gar nicht mit. Der ist da wohl etwas empfindlicher, wenn man ihn zu sehr unter Spannung setzt.

Wäre es vielleicht schon günstiger für den ADC, wenn Teiler und Sensor die Plätze tauschen würden? Oder gibt es evtl. ganz andere Lösungsmöglichkeiten?

Vielen Dank und Grüße
tob

Dirk
18.03.2008, 16:46
Hallo tob,

ausgehend von Folgendem:
- Temperatur-Sensor 355..360 Ohm
- Es wird nur eine Schaltschwelle (Ein/Aus) benötigt, die irgendwo (oder mittig?) zwischen den Werten 355 und 360 Ohm des Sensors liegt.
- Es soll keine umfangreichere Beschaltung (Verstärker o.ä.) erfolgen

... würde ich das machen:
- ADC im Tiny13 mit der Referenzspannung 1,1V konfigurieren
- Den Messkreis so aufbauen:
- GND - Sensor - Abgriff - Widerstand 3,0kOhm - +9V
- Am Abgriff den ADC-Eingang (und 0,1uF nach GND) anschliessen.
- Je nach äußeren Bedingungen noch eine Schutzschaltung gegen Überspannung am Abgriff ergänzen (Diode ...).

Ergebnis:
- Zwischen den beiden angegebenen Werten des Sensors (355/360 Ohm) liegen rechnerisch ca. 11 ADC-Werte.
- Die sind so gut zu unterscheiden, dass man fast schon eine kleine Temperaturmessung damit machen könnte.
- Der Auswertung würde ich noch ein "selbstlernendes" Verhalten beibringen:
Der uC speichert (z.B. in seinen 64 Bytes EEPROM) regelmäßig die gemessenen Minimal- und Maximalwerte. Er bestimmt dann selbst durch Mittelwertbildung die Schaltschwelle zwischen den beiden Grenzwerten und lernt dadurch mit der Zeit dazu.

Gruß Dirk

tobiastob
19.03.2008, 16:36
Hallo Dirk,

meinst du wirklich 3,0 kOhm im Messkreis? Damit bleiben dem Heizelement ja nur weniger als 1 Volt, womit es ja unterversorgt ist, also gar nicht erst warm wird. Oder meinst du 0,3 kOhm, also etwa die Größe des Sensors? Dann wäre aber die Referenzspannung von 1,1 Volt zu niedrig und der Tiny bekommt wieder Schwierigkeiten. Oder hab ichs falsch verstanden?

Grüße tob

Dirk
19.03.2008, 18:43
Damit bleiben dem Heizelement ja nur weniger als 1 Volt, womit es ja unterversorgt ist, also gar nicht erst warm wird.

OK, das hatte ich so nicht verstanden. Ich war davon ausgegangen, dass du zwar eine Art "Heizdraht" (als Sensor) hast, hatte aber überhaupt nicht angenommen, dass da auch ein Heizstrom fließen soll.

Mir ist dann auch nicht mehr klar, was du eigentlich messen oder schalten willst. Ich klinke mich also an dieser Stelle aus.

Gruß Dirk

tobiastob
22.03.2008, 11:01
Hallo Dirk

Muss denn ein Sensor nicht immer im Messkreis mit Strom versorgt werden? Sonst funktioniert doch auch z.b. kein Fotosensor. Das ist doch mit einem Heizdraht nicht anders. Zumindest kenne ich keine andere Möglichkeit.

Meiner braucht etwa 7 Volt, weil er mit 4,5 V Versorgungsspannung zu kühl ist, und daher einen noch geringen Abfall des Widerstandes bei weiterer Kühlung hat. Und diese kurzfristige Abkühlung möchte ich eben ganz grob messen.

Tut mir Leid, dass es so unverständlich war.
Danke für deine Hilfe.
Würde mich freuen, wenn noch jemand eine Idee hat.

Grüße tob

zerush
22.03.2008, 11:26
Also: Ich habe mal einen kleinen Test-Spannungsteiler aufgebaut:
als "Teiler" habe ich 90,5 Ohm eingebaut. Am gesamten Stromkreis liegen 9
V an.

Die Stromanzeige schwankt leider etwas unschlüssig zwischen 0,02 und 0,01 A.

Ungekühlt liegen am Heizelement 7,2 Volt, gekühlt 7,1 V an. Das entspricht, wenn man von 0,02 A ausgeht, einem maximalen Widerstand von 360 Ohm und einem minimalen von 355 Ohm.

Wenn das so ist, ist es doch ganz leicht... über deinem 90,5 Ohm Widerstand fallen nun mal 1,9V mal 1,8V ab...

Wenn du diese Spannung in den ADC einspeist, und die intere Referenzspannung von 2,5V einstellst, solltest du sehr gute Werte geliefert bekommen!

Hubert.G
22.03.2008, 11:42
Also nach meinen Berechnungen sollte das funktionieren.
In deiner obigen Schaltung hast du 80 Ohm als Teilerwiderstand. Wenn du anstelle der 80 Ohm einen 33 Ohm nimmst, dann kannst du die interne 1,1V Referenz verwenden. Die zwei 10k Widerstände dann weglassen.
Du hast bei 9V Heizspannung dann mehr als 8V an deinem Heizelement.
Bei einer Änderung von etwa 10 Ohm ergibt das dann eine Änderung der ADC-Werte um etwa 30.
Die Heiz- und Betriebsspannung müssen allerdings konstant sein.