Forum: Analoge Elektronik und Schaltungstechnik Port Pin an AREF?


von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Angehängte Dateien:

Lesenswert?

Hallo,

geht so was an AREF wenn ich darauf achte dass PA0 und PA1 nie 
gleichzeitig geschaltet werden?

Gruß, Martin

von HildeK (Gast)


Lesenswert?

Eine seltsame Anordnung.
Könntest du noch sagen, wozu das gut sein soll? Warum nicht einfach von 
der VCC abnehmen?
Jedenfalls würde ich, wenn schon so was gebraucht wird, keinen 
Schaltregler verwenden, um ARef zu versorgen, sondern einen 
Linearregler. Aref sollte ja möglichst konstant und ruhig sein.
Ich gehe mal davon aus, dass an PA1 5V herauskommen.

von Axel S. (a-za-z0-9)


Lesenswert?

Martin B. schrieb:

> geht so was an AREF

Warum? Was soll das? Geschaltete Referenz von 3.3V in einem 5V System? 
Verwende einfach einen Regler mit wenig I_q. Oder verzichte ganz darauf. 
Was stört dich denn an der internen Referenz? Oder der Betriebsspannung 
als Referenzspannung?

> wenn ich darauf achte dass PA0 und PA1 nie
> gleichzeitig geschaltet werden?

Man legt eine Schaltung nicht darauf hin aus daß nichts passiert, wenn 
man sich vorsieht. Sondern so, daß sie immer sicher ist. Zumal man in 
der Entwicklungsphase sowas gar nicht garantieren kann.

von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Lesenswert?

HildeK schrieb:
> Könntest du noch sagen, wozu das gut sein soll? Warum nicht einfach von
> der VCC abnehmen?

Damit ich je nach Sensortyp am ADC die Referenzspannung umschalten kann.

Axel S. schrieb:
> Was stört dich denn an der internen Referenz? Oder der Betriebsspannung
> als Referenzspannung?

Die interne ist zu niedrig. Mit etwa 3,5V passt es besser.

HildeK schrieb:
> keinen
> Schaltregler verwenden, um ARef zu versorgen, sondern einen
> Linearregler.

Reichen eventuell 2 Dioden und ein Widerstand?
Der MC läuft mit 5V

Gruß, Martin

von Arno (Gast)


Lesenswert?

Dann... leg einen relativ hochohmigen Spannungsteiler mit "etwa 3,5V" an 
AREF an und schalte mit der internen Referenzumschaltung auf VCC um.

Guck vorher nach, ob im Datenblatt irgendwas definiert ist, wie stark 
AREF belastet werden darf.

Notfalls schaltest du nicht mit der internen Referenzumschaltung auf VCC 
um sondern mit einem zweiten Port-Pin. Dann hast du nur wieder das 
Risiko, dass du bei interner Referenzspannung einen Kurzschluss zum 
Port-Pin bauen kannst.

MfG, Arno

von M.A. S. (mse2)


Lesenswert?

Arno schrieb:
> ... schalte mit der internen Referenzumschaltung auf VCC um. ...
Gibt es die? Ich jedenfalls weiß nicht, um welchen Mikrocontroller es 
geht.

von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Lesenswert?

M.A. S. schrieb:
> Gibt es die?

Ist mir auch nicht bekannt. Ist ein Atmega 238.

von Εrnst B. (ernst)


Lesenswert?

M.A. S. schrieb:
> Gibt es die? Ich jedenfalls weiß nicht, um welchen Mikrocontroller es
> geht.

Es ist einer, der schon die Pin-Change-Interupts "PCINT1,2,3,4,5..." 
hat.

Insofern ist der bestimmt neu genug um auch eine per Software auf VCC 
stellbare ADC-Referenz zu haben.

von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Lesenswert?

Εrnst B. schrieb:
> Insofern ist der bestimmt neu genug um auch eine per Software auf VCC
> stellbare ADC-Referenz zu haben.

Ja, die hat er. Auch auf 2,5V. Aber ich möchte auch 3,5V.

Ich sehe grad, die Verbindung PA0 braucht man nicht...

von Pandur S. (jetztnicht)


Lesenswert?

Es soll Faelle geben, siehe Datenblatt, da muss ARef nahe Vcc sein muss. 
zB bei den AVR.

von Stefan F. (Gast)


Lesenswert?

1
            1kΩ
2
3,3V o------[===]------+-----------o AREF
3
                       |
4
GND |--------||--------+-----------o PA0
5
            100nF


PA0 = Input -> 3,3V
PA0 = Output HIGH -> 5V

So ist es deppensicher, kann man nicht kaputt programmieren.

Besonders genau wird das aber nicht. Ich würde lieber die interne 
Referenz nehmen und das zu messende Eingangssignal mit Spannungsteilern 
passend herabsetzen. Ob du da am Ende alle Bits optimal ausnutzen 
kannst, ist zweitrangig, denn da unterste Bit geht sowie im Rauschen 
unter.

Die vollen 10 Bit kannst du nur mit hohem Schaltungsaufwand und 
Programmier-Tricks ausnutzen. Da ist die Nutzung eines externen ADC mit 
seriellem Interface viel einfacher und besser.

von Manfred (Gast)


Lesenswert?

Martin B. schrieb:
> Ist ein Atmega 238.

Ich kenne einen BC238, der hat aber nur drei Beine.

Martin B. schrieb:
> Ja, die hat er. Auch auf 2,5V. Aber ich möchte auch 3,5V.

Wenn ich mal einen Zahlendreher unterstelle und ATmega328P annehme, hat 
der als interne Referenz 1,1 Volt, keine 2,5. Die streuen von einem 
Stein zum anderen erheblich, sind ansonsten aber sehr stabil.

Ist es keine Option, diese zu verwenden und das Eingangssignal zu 
teilen? Ich mache das in diversen Meßanwendungen und komme damit auf 
ordentliche Meßwerte.

Wie schon geschrieben, würde auch ich keinesfalls einen Schaltregler 
verwenden, sondern, wenn es denn sein müsste, eine 4,096V-Referenz samt 
Spannungsteiler einsetzen.

von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Angehängte Dateien:

Lesenswert?

Manfred schrieb:
> Wenn ich mal einen Zahlendreher unterstelle und ATmega328P annehme

Ups...

Manfred schrieb:
> Ist es keine Option, diese zu verwenden und das Eingangssignal zu
> teilen?

Hat bei mir leider nicht geklappt. Hatte unter anderem einen 4-20mA 
Sensor dran. Mit der internen Referenz konnte ich nur das untere Drittel 
messen und mit 5v Ref spielte sich die Messung komplett nur im unteren 
Drittel ab. Deswegen die 3,3V. Da hatte ich die ganze Bandbreite von 
Sensor zur Verfügung. Wenn ich den Messwiderstand verkleinert oder 
vergrößert hab hatte ich komische Rechteckimpulse auf meiner 
Messspannung.

Über den PortPin möchte ich Referenzspannung steuern je nach dem was für 
ein Sensor dran hängt. Einen Spannungsteiler muss man für jeden Sensor 
einzeln berechnen.

Vielleicht könnte man es mit einem DAC lösen. Damit kann man dann AREF 
perfekt einstellen und so bei jedem Sensor die optimale Bandbreite 
nutzen.

Gruß, Martin

von Stefan F. (Gast)


Lesenswert?

Martin B. schrieb:
> Mit der internen Referenz konnte ich nur das untere Drittel
> messen und mit 5v Ref spielte sich die Messung komplett nur im unteren
> Drittel ab.

Wo ist das Problem, die Eingangsspannung auf 1,1V herunter zu teilen?

> Wenn ich den Messwiderstand verkleinert oder
> vergrößert hab hatte ich komische Rechteckimpulse auf meiner
> Messspannung.

Ich glaube das nicht verstanden, was ein Spannungteiler ist. Mal 
angenommen, dein Messwiderstand sei 1kΩ, dann kannst du ihn auf zwei 
Widerstände aufteilen um die Spannung auf 1/4 zu teilen:
1
             750Ω        250Ω
2
 Signal o---[===]---+---[===]---| GND
3
                    |
4
                    o
5
                 Zum ADC

Martin B. schrieb:
> Vielleicht könnte man es mit einem DAC lösen. Damit kann man dann AREF
> perfekt einstellen und so bei jedem Sensor die optimale Bandbreite
> nutzen.

Leider sind Bauteile nicht perfekt. Je komplexer deine Schaltung wird, 
umso  mehr Rauschen und andere Ungenauigkeiten wirst du haben. Genau das 
will man aber insbesondere bei der Referenzspannung nicht haben.

Viel hilft nicht viel.

Eher lohnt es sich, auch 1-2 Bits zu verzichten. Und wenn das 
inakzeptabel sein sollte, dann verwende einen externen ADC, der mehr 
Bits haben kann (z.B. 12) und zudem genauer ist und weniger rauscht. Das 
bringt dir am Ende mehr, als der Schnickschnack mit der umschaltbaren 
Referenz.

Schau dir mal den MCP3208 an, der ist billig und kinderleicht 
anzuwenden. Er hat 8 Kanäle mit 12 Bit Auflösung. Damit liefert er ohne 
umschaltbare Referenz garantiert bessere Ergebnisse als dein AVR mit dem 
hohen Aufwand drumherum.

von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ich glaube das nicht verstanden, was ein Spannungteiler ist.

Martin B. schrieb:
> Einen Spannungsteiler muss man für jeden Sensor
> einzeln berechnen.

Schon, wenn ich jetzt aber einen anderen Sensor anschließe passt das 
ganze nicht mehr.

von Axel S. (a-za-z0-9)


Lesenswert?

Martin B. schrieb:

> Hatte unter anderem einen 4-20mA Sensor dran.

Da brauchst du nicht mal einen Spannungsteiler. Einfach den 
Bürdewiderstand verkleinern.

> Mit der internen Referenz konnte ich nur das untere Drittel
> messen und mit 5v Ref spielte sich die Messung komplett nur im unteren
> Drittel ab.

Wenn wir mal die Übertreibung raus lassen - ja. So ist das wenn man den 
falschen Widerstand verwendet. Es ist aber nicht schwer den korrekten 
Wert aus 1.1V ÷ 20mA zu berechnen.

> Wenn ich den Messwiderstand verkleinert oder
> vergrößert hab hatte ich komische Rechteckimpulse auf meiner
> Messspannung.

Dann macht du ganz entschieden was falsch. Das ist das Problem das du 
angehen solltest. Nicht an den Symptomen herumdoktoren.

> Über den PortPin möchte ich Referenzspannung steuern je nach dem was für
> ein Sensor dran hängt. Einen Spannungsteiler muss man für jeden Sensor
> einzeln berechnen.

Welche Sensoren hast du denn? Wenn die alle 4..20mA ausgeben, mußt du 
gar nichts berechnen.

> Vielleicht könnte man es mit einem DAC lösen. Damit kann man dann AREF
> perfekt einstellen und so bei jedem Sensor die optimale Bandbreite
> nutzen.

Blödsinn.

Im allgemeinen löst man das so, daß man jeden Sensor auf den gleichen 
Spannungsbereich umsetzt. Deswegen gibt es ja die standardisierten 
4..20mA Sensoren, damit man das nur genau einmal machen muß.

Es gibt sowieso nur zwei sinnvolle Werte für die Referenzspannung. Das 
ist einmal eine konstante Spannung (für Sensoren mit eigener Referenz) 
und zum anderen die Betriebsspannung (für ratiometrische Messung). Den 
Rest macht man durch geeignete Konditionierung des Signals.

von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Lesenswert?


von Axel S. (a-za-z0-9)


Lesenswert?

Martin B. schrieb:
> Axel S. schrieb:
>> Welche Sensoren hast du denn? Wenn die alle 4..20mA ausgeben, mußt du
>> gar nichts berechnen.
>
> Momentan sind es die drei.
[...]
> Einmal 0-5V, ein mal 4-20mA und ein mal 33-240Ohm.

Ich sehe da 4..20mA, 4..20mA und den resistiven Sensor. Und da ist das 
mit einem Bürdewiderstand, einen Bürdewiderstand und einem Widerstand 
für eine ratiometrische Messung getan. Und die Referenzspannung für den 
ADC schaltest du zwischen der internen Referenz und der Betriebsspannung 
um.

Und wie genau möchest du die Meßwerte denn haben? Den Füllstand mußt du 
doch nicht mit mehr als 4 Bit auflösen (entspricht 16 Werten zwischen 
"leer" und "voll"). Der ADC hat aber 10 Bit. Das könntest du alles 
locker mit der Referenz fest auf Vcc messen. Auf einem schaukelnden Boot 
schwappt die Flüssigkeit in den Tanks ohnehin ständig.

Hast du eigentlich gesehen, daß der erste und dritte Sensor mindestens 
12V sehen wollen?

> Ich wollte mir zwei Anschlussleitungen sparen und alle drei Sensoren an
> einen ADC. Konfiguriert wird das dann über Software.

Das verstehe ich nicht. Du mußt mit den drei Sensoren doch ohnehin an 
drei ADC-Eingänge. Drei Eingänge, drei Auswertungsschaltungen. Wenn es 
dir ums Pins sparen geht - du verbrätst gerade 2 Pins für die 
Referenzspannungsumschaltung. Um 2 Pins einzusparen?

PS: ach ja, nochwas. Darf man eigentlich erfahren warum du 3 
verschiedene Sensoren verwendest die eigentlich alle 3 das gleiche 
messen - den Flüssigkeitspegel in einem Tank? Jeder normaldenkende hätte 
einen Typ von Sensor dafür ausgesucht.

: Bearbeitet durch User
von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Angehängte Dateien:

Lesenswert?

Axel S. schrieb:
> Ich sehe da 4..20mA, 4..20mA und den resistiven Sensor

Einer hat einen Bereich von 0-5V.

Axel S. schrieb:
> (entspricht 16 Werten zwischen
> "leer" und "voll")

Ich messe ja nicht zwischen leer und voll vom Sensor sondern zwischen 
leer und voll vom Tank. Wenn die Flüssigkeitssäule nur max 30 cM hoch 
ist, hab ich bei AREF 5V nur ein Drittel vom ADC. Bei Interner AREF bin 
ich jedoch schon nach über 10 cM am Ende des Bereichs.

Axel S. schrieb:
> Auf einem schaukelnden Boot
> schwappt die Flüssigkeit in den Tanks ohnehin ständig

Es geht um ein Motorrad. Das schaukeln wird hauptsächlich von der 
Tankuhr kompensiert und zum anderen arbeite ich mit einem Array bei dem 
der älteste Messwert bei jeder neuen Messung raus fliegt.

Axel S. schrieb:
> Du mußt mit den drei Sensoren doch ohnehin an
> drei ADC-Eingänge.

Nicht wenn ich AREF so einstelle dass die für jeden Sensor passt.

Axel S. schrieb:
> Wenn es
> dir ums Pins sparen geht

Nicht um Pins sondern um Anschlussleitungen für den Sensor.

Axel S. schrieb:
> Jeder normaldenkende hätte
> einen Typ von Sensor dafür ausgesucht

Das ist leider die Vorgabe, ändert aber nichts an dem Problem vom 
Messbereich. Wenn bei einem anderen Fahrzeug die Flüssigkeitssäule nun 
0-20 Cm oder 0-50 cM ist braucht jedes Fahrzeug eine andere Software.

von Stefan F. (Gast)


Lesenswert?

Martin B. schrieb:
> Schon, wenn ich jetzt aber einen anderen Sensor anschließe passt das
> ganze nicht mehr.

Man kann sich die Hose auch mit der Kneifzange anziehen. Dann baue den 
Spannungsteiler halt in das Gehäuse oder in den Stecker des Sensors ein.

Oder nimm wie gesagt einen 12 Bit ADC, dann kannst du alle mit einem 
Spannungsteiler abdecken ohne Auflösung zu verlieren.

von Stefan F. (Gast)


Lesenswert?

Martin B. schrieb:
>> Du mußt mit den drei Sensoren doch ohnehin an drei ADC-Eingänge.
> Nicht wenn ich AREF so einstelle dass die für jeden Sensor passt.

Zeichen mal auf, wie du dir das vorgestellt hast. Wie kommen drei 
Sensoren an einen ADC Eingang?

Brauchst du wirklich alle 10 Bits? Lass AREF doch einfach immer auf 5V. 
Selbst wenn dein Signal nur 1/20 davon wäre, hättest du am Ende immer 
noch genug Auflösung denke ich. Nämlich ca. 50 Werte zwischen vollem und 
leerem Tank. Wozu glaubst du, mehr zu brauchen?

von Axel S. (a-za-z0-9)


Lesenswert?

Axel S. schrieb:
> Martin B. schrieb:

> Es geht um ein Motorrad.

Du hast ein Motorrad mit drei Tanks? Mit einer Füllstandshöhe bis 1m? 
Willst du mich verarschen?

> Das schaukeln wird hauptsächlich von der
> Tankuhr kompensiert und zum anderen arbeite ich mit einem Array bei dem
> der älteste Messwert bei jeder neuen Messung raus fliegt.

Und das ändert was? Dein Sensor sieht die Flüssigkeit trotzdem 
schwappen. Ganz abgesehen davon daß du den Tankinhalt nicht auf den ml 
genau anzeigen willst. Da reichen sogar 3 Bit.

>> Ich sehe da 4..20mA, 4..20mA und den resistiven Sensor
> Einer hat einen Bereich von 0-5V.

Als Option. Da kannst auch 4..20mA kriegen.

> Ich messe ja nicht zwischen leer und voll vom Sensor sondern zwischen
> leer und voll vom Tank. Wenn die Flüssigkeitssäule nur max 30 cM hoch
> ist, hab ich bei AREF 5V nur ein Drittel vom ADC. Bei Interner AREF bin
> ich jedoch schon nach über 10 cM am Ende des Bereichs.

Wie bereits gesagt: zwischen 1.1V und 5V liegt ungefähr ein Faktor von 
4. Nicht 9 wie du behauptest. Und ja: wenn du einen Flüssigkeitsstand 
von 0..30cm hast, dann wäre es sinnvoll einen geeigneten Sensor zu 
verwenden.

>> Du mußt mit den drei Sensoren doch ohnehin an
>> drei ADC-Eingänge.
>
> Nicht wenn ich AREF so einstelle dass die für jeden Sensor passt.

Was redest du?

> Nicht um Pins sondern um Anschlussleitungen für den Sensor.

Was zum Teufel redest du?

>> Jeder normaldenkende hätte
>> einen Typ von Sensor dafür ausgesucht
>
> Das ist leider die Vorgabe, ändert aber nichts an dem Problem vom
> Messbereich. Wenn bei einem anderen Fahrzeug die Flüssigkeitssäule nun
> 0-20 Cm oder 0-50 cM ist braucht jedes Fahrzeug eine andere Software.

Wovon in drei Teufels Namen redest du?

Wenn dein Meßbereich bis 50cm geht und dein Sensor das auflösen kann, 
denn hast du mit einem 10 Bit ADC immer noch 0.5mm Auflösung. Das soll 
nicht genau genug sein? Außerdem brauchst du doch sowieso für jeden 
Tanktyp eine Interpolation Füllhöhe -> Tankinhalt. So ein Tank ist ja 
kein Zylinder.

von HildeK (Gast)


Lesenswert?

Martin B. schrieb:
> HildeK schrieb:
>> keinen
>> Schaltregler verwenden, um ARef zu versorgen, sondern einen
>> Linearregler.
>
> Reichen eventuell 2 Dioden und ein Widerstand?
> Der MC läuft mit 5V
Die Frage ist schon einige Zeit her und ich habe jetzt die weiteren 
Beiträge nur grob überflogen.
Zwei Dioden haben jedenfalls den Nachteil, dass sie deutlich 
Temperaturabhängig sind; in anderen Applikationen setzt man Dioden als 
Temperatursensor ein.
Das könnte man ggf. im Zimmer noch vertreten, am Motorrad hast du 
jedenfalls einen deutlich höheren Temperaturbereich abzudecken.

von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Lesenswert?

Ich möchte mal kurz zusammenfassen:

Meine Frage war ob ich AREF von meinem Kontroller selbst steuern kann um 
den ADC Bereich an einen Sensor anpassen zu können. Dazu kamen 
hilfreiche Überlegungen, vielen Dank.

Ebenso kamen Hinweise dass ich das Konzept überdenken solle. Dafür bin 
ich natürlich auch dankbar. Brainstorming ist ein wichtiger Weg um 
möglichst nahe ans optimalen Ergebnis zu kommen.

Aber, die Diskussion driftet mir inzwischen in eine Richtung die mit der 
Sache nichts mehr zu tun hat.

Fakt ist, jeder Typ von Fahrzeug hat einen anderen Tank, ebenso einen 
anderen Sensor. Wenn ich nun ein System baue, möchte ich mit einem 
System alle Möglichkeiten abdecken. Das bedeutet, jeden Tank mit jedem 
Sensor zu kombinieren, mit der selben Software und dem selben 
Kontroller. Dazu gehört meine ich den Sensor an das System an zu passen 
und nicht bei einem Sensor 3Bit, beim anderen 4Bit und wieder beim 
anderen 10Bit zu messen. Deswegen meine Überlegung und meine Frage was 
Ihr zu meinen Überlegungen meint.

Aus diesem Grund bringen mich folgende Dinge nicht wirklich weiter:

>Jeder normaldenkende hätte einen Typ von Sensor dafür ausgesucht.
>Du hast ein Motorrad mit drei Tanks? Mit einer Füllstandshöhe bis 1m?
>Willst du mich verarschen?
>dann wäre es sinnvoll einen geeigneten Sensor zu verwenden.
>Was redest du?
>Was zum Teufel redest du?
>Wovon in drei Teufels Namen redest du?

Natürlich möchte ich auch nicht 3 Sensoren GLEICHZEITIG an EINEN ADC 
Eingang anschließen.

Wenn es nur zwei sinnvolle Werte für die Referenzspannung gibt, wozu hat 
der Atmega dann die Möglichkeit eine externe Referenzspannung an zu 
schließen?

Vielen Dank für Eure Hilfe.

Gruß, Martin

von Stefan F. (Gast)


Lesenswert?

Denke immer dran, dass die Ausgänge bei HIGH nicht exakt 5V liefern und 
bei LOW nicht exakt 0V. Zudem kommt aus jedem Ausgangs-Pin noch ein 
beträchliches Rauschen heraus. Das wird deine schön gedachte ADC Messung 
mit den vielen 10 Bits versauen. Ich schätze, dass davon unterm Strich 
nur noch 7-8 Bit nutzbare Bits übrig bleiben.

Ein ADC mit mehr Bits würde die Lage nicht verbessern, denn der Offset 
und das Rauschen bleibt.

Aber ein ADC mit mehr als 8 Bits OHNE Umschaltung der Referenz würde 
unterm Strich bessere Ergebnisse liefern. Moment mal - dein ADC hat ja 
schon mehr als 8 Bits!

Ergo: Die Umschaltung ist vollkommen sinnfrei. Es sei denn, du machst 
sie so aufwändig, dass die Spannungen wirklich exakt stimmen und 
Rauschfrei sind. Damit würde aber auch der Schaltungsaufwand regelrecht 
explodieren.

Wenn du den Aufwand in kauf nehmen willst: bitte, tu dir keinen Zwang 
an. Wenn nicht, dann mache es nicht durch eine schlecht durchdachte 
Lösung noch schlechter als es ohne sie von ganz alleine schon wäre.

von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Lesenswert?

Stefan ⛄ F. schrieb:
> dass davon unterm Strich nur noch 7-8 Bit übrig
> bleiben.

Klar. Nur messe ich von der gesamten Bandbreite des Sensors (in einem 
Fall von 1m) eben nur 30 cm. Da wird die Messung noch viel ungenauer. 
Deswegen wollte ich mit AREF mir den Bereich "passend machen". Mit einem 
DAC an AREF könnte sich das System ja selbst justieren. Dann wäre es 
egal ob mein Messbereich 0-20 cm oder 0-100 cm ist. Wenn der ADC Wert 
zB. 1000 überschreitet regle ich mit dem DAC nach. Leer wäre dann immer 
um 0 und voll immer um 1000, egal welche Füllhöhe bei voll tatsächlich 
ist.

Ich weiß nicht ob ich mich wirklich verständlich ausdrücken kann. Viele 
Antworten zeigen mir dass ich es wohl nicht wirklich geschafft habe.

von Axel S. (a-za-z0-9)


Lesenswert?

Martin B. schrieb:
> Natürlich möchte ich auch nicht 3 Sensoren GLEICHZEITIG an EINEN ADC
> Eingang anschließen

Na dann lies noch mal deine Beiträge. Kannst du das irgendwo rauslesen?

Martin B. schrieb:
> Fakt ist, jeder Typ von Fahrzeug hat einen anderen Tank, ebenso einen
> anderen Sensor. Wenn ich nun ein System baue, möchte ich mit einem
> System alle Möglichkeiten abdecken

Du möchtest also eine eierlegende Wollmilchsau bauen. Wird nichts 
werden. Was meinst du eigentlich, warum sich die 
Automatisierungstechniker Standard-Schnittstellen für Sensoren 
ausgedacht haben?

Aber ich bin dann raus. Und du kannst weiter frickeln.

von Stefan F. (Gast)


Lesenswert?

Martin B. schrieb:
> Ich weiß nicht ob ich mich wirklich verständlich ausdrücken kann.

Dein Vorhaben ist schon klar, aber deine Annahme, dass deine "Lösung" 
die Ergebnisse verbessert, ist falsch.

Du willst so eine Art "Autorange" Umschaltung bauen, wie es viele 
Digitalmultimeter machen. Doch dann schau dir mal an, wie die das 
machen.

1) Durch Umschaltung von Spannungsteilern vor dem ADC Eingang, nicht 
durch Änderung von AREF.
2) Dazu wird ein spezielles IC verwendet, nicht die für analoge Zwecke 
unvorteilhaften digitalen Ausgänge des Mikrocontrollers.

von Rainer V. (a_zip)


Lesenswert?

Du willst also an dein Platinchen 3 (oder auch beliebig viele) 
verschiedene Sensoren anschalten können. Jeder Sensor hat im schlimmsten 
Fall sein eigenes Anschlußformat. Prinzipiell kann man auf Sensorseite 
mit Strom- oder Spannungsschnittstelle rechnen. D.h. du hast auf deiner 
Platine x Eingänge, die entweder deinen Sensorstrom oder deine 
Sensorspannung auf den Meßbereich des ADW abbilden. Für Stromsensor 
haben sich 0-20mA, 4-20mA und "Exoten" etabliert, für Sensorspannung 
brauchst du im einfachsten Fall einen Spannungsteiler. Für die bisher 
gezeigten Sensoren brauchst du also nichts Anderes mehr! Da solltest du 
jetzt mal drüber nachdenken.
Kleiner Tip

Martin B. schrieb:
> Ich messe ja nicht zwischen leer und voll vom Sensor sondern zwischen
> leer und voll vom Tank

wenn die Messung des Teilbereichs zu ungenau wird (was sich in deinem 
Fall ja erst noch rausstellen muß), dann mußt du die Meßdaten halt 
aufbereiten. Das kann wieder im einfachen Fall Umschaltung der 
Ref-Spannung sein, kann aber auch eine aktive Verstärkung erfordern. Und 
warum du einen Sensor mit einem Meßbereich von 1m einsetzt, wenn 30cm 
ausreichen, ist auch dein Geheimnis...
Gruß Rainer

von Stefan F. (Gast)


Lesenswert?

Ich verstehe das "Problem" nicht.

Man kann doch jede Spannung, die größer als 1 Volt ist auf 1V herunter 
teilen. Und man kann auch Stromschleifen auf 1V bringen, nämlich mit 
einem 50Ω Widerstand. Und falls der Arbeitswiderstand (wie du sagtest, 
warum auch immer) hochohmiger sein muss, dann legst du den eben auch als 
Spannungsteiler aus, wie ich oben schrieb.

So kannst du das Signal jedes beliebigen Sensors auf den Bereich von 
0-1V bringen. Und das kann der ADC mit seiner internen Referenz 
wunderbar präzise messen.

Du brauchst lediglich für jeden Sensor zwei Widerstände auf der Platine, 
die an das jeweilige Fahrzeug angepasst werden. Was ist daran schwer?

von Rainer V. (a_zip)


Lesenswert?

Stefan ⛄ F. schrieb:
> Was ist daran schwer?

Der TO verliert sich mangels Praxis in wirre Details...Sensor mit 1m 
Messbereich wird nur für 30cm genutzt ect. Da hilft nur, erst mal einen 
Sensor anschließen und schaun, was sich ergibt! Am Tank kann man ja Gott 
sei Dank auch wackeln, ohne jedesmal mit der Maschine eine Runde auf dem 
Hof zu drehen :-)
gruß Rainer

von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Angehängte Dateien:

Lesenswert?

Axel S. schrieb:
>> Natürlich möchte ich auch nicht 3 Sensoren GLEICHZEITIG an EINEN ADC
>> Eingang anschließen
>
> Na dann lies noch mal deine Beiträge. Kannst du das irgendwo rauslesen?

Axel S. schrieb:
> Du hast ein Motorrad mit drei Tanks? Mit einer Füllstandshöhe bis 1m?
> Willst du mich verarschen?

Egal wie unprofessionell man sich nun ausdrückt, wenn man SO etwas 
daraus ließt hat man wohl ein kleines Problem. Wobei es in diesem Fall 
wohl nicht am Schreiber liegt sondern am Leser.

Rainer V. schrieb:
> Das kann wieder im einfachen Fall Umschaltung der
> Ref-Spannung sein,

Nichts anderes hab ich gefragt, ob so was möglich ist bzw jemand gemacht 
hat.

Rainer V. schrieb:
> Und
> warum du einen Sensor mit einem Meßbereich von 1m einsetzt, wenn 30cm
> ausreichen, ist auch dein Geheimnis...

Das Geheimnis kann ich lüften. Es gibt solche Sensoren erst ab 1m 
Messbereich. Sensoren mit Schwimmer haben eine feste Länge die in der 
Regel zu lang oder zu kurz ist. Zu lange kann man nicht einbauen. Zu 
kurze messen im unteren Bereich nicht mehr, gerade dann wenn man sich 
die Frage stellt ob es noch bis zu der Tankstelle reicht. Die Jungs bei 
denen die Sensoren vergammelt sind rechnen ab der Reserveleuchte die 
Kilometer die ihnen bleiben. Dann bauen sie sich einen neuen Sensor ein 
um das gleiche wieder zu machen?

Stefan ⛄ F. schrieb:
> Du brauchst lediglich für jeden Sensor zwei Widerstände auf der Platine,
> die an das jeweilige Fahrzeug angepasst werden.

Genau das möchte ich ja vermeiden. Nicht jedes Fahrzeug anpassen sondern 
eine Platine für alle.

Rainer V. schrieb:
> Der TO verliert sich mangels Praxis in wirre Details...Sensor mit 1m
> Messbereich wird nur für 30cm genutzt ect. Da hilft nur, erst mal einen
> Sensor anschließen und schaun, was sich ergibt!

Der TO möchte dem widersprechen. Mir mangelt es weder an Praxis noch am 
Experimentieren.

Auf dem Bild:
1. Sensor 0-5V, eingetaucht in eine Vase
2. Sensor 4-20mA, Kappe abgeschraubt um mit dem Finger Druck aus zu üben
3. OK, Kein Sensor 33-240 Ohm aber dafür ein Poti
4. Tacho eines Fahrzeugs besorgt und Tankuhr angeschlossen
5. Mikrokontroller mit Versorgung, zugegeben etwas chaotisch
6. Oskar zum überwachen der PWM mit der ich die Tankuhr ansteuere

Mir geht es nicht um die Möglichkeiten welche ich habe um alle möglichen 
Sensoren in allen möglichen Tanks an zu schließen. Ich möchte nur nicht 
zu jedem hin fahren um seinen Sensor an seinen Tank an zu passen.

Ich möchte ihm eine Platine mit EINEM Eingang für seinen (egal welchen 
Sensor, egal welchen Tankinhalt) Sensor und EINEM Ausgang für seine 
Tankuhr zuschicken. Nicht 10 Eingänge die er dann irgendwie 
durchprobieren muss bis er was passendes hat.

Ein Fahrzeug läuft mit einem Sensor schon und es funktioniert auch. Das 
zweite Fahrzeug hat nun einen ganz anderen Tank. Die selbe Platine 
möchte ich nun auch in diesem Fahrzeug betreiben ohne einen anderen 
Spannungsteiler oder einen anderen Eingang zu nutzen. Einfach Platine 
einbauen und via USB neu Konfigurieren und fertig.

Gruß, Martin

von Manfred (Gast)


Lesenswert?

Martin B. schrieb:
> Ein Fahrzeug läuft mit einem Sensor schon und es funktioniert auch. Das
> zweite Fahrzeug hat nun einen ganz anderen Tank. Die selbe Platine
> möchte ich nun auch in diesem Fahrzeug betreiben ohne einen anderen
> Spannungsteiler oder einen anderen Eingang zu nutzen. Einfach Platine
> einbauen und via USB neu Konfigurieren und fertig.

Du kannst hier beliebig lange herumstrampeln und Leute bezichtigen, 
Deine Texte nicht lesen zu können, das ändert nichts an der 
elektronischen Realität:

Das geht nicht

Du hast weiter vorne drei Sensorvarianten benannt, die eine 
unterschiedliche Beschaltung erfordern, nur über AREF kann das nicht 
funktionieren. Realistisch nachgedacht kämen Bestückungsvarianten der 
gleichen Platine in Frage. Etwas komplexer vielleich alle gleich 
bestückt und mit Codierbrücken für den Sensortyp.

von Rainer V. (a_zip)


Lesenswert?

Martin B. schrieb:
> Der TO möchte dem widersprechen. Mir mangelt es weder an Praxis noch am
> Experimentieren

Dann zeige uns doch die Ergebnisse von einem (beliebigen) Sensor. Und 
sage auch, was dabei nicht passt. Das kann man dann vielleicht mal 
verbessern. Die Anpassung an "beliebige" Tanks samt beliebigem Sensor 
machen wir dann später...
Übrigens fand ich schon damals mit meiner Quickly das Umstellen auf 
Reserve, wenns geruckelt hat, als das Nonplusultra! Einzige akzeptierte 
Verbesserung wäre gewesen, das Ding wäre von alleine zur nächsten Tanke 
gefahren :-)
Gruß Rainer

von Axel S. (a-za-z0-9)


Lesenswert?

Martin B. schrieb:
> Ich möchte ihm eine Platine mit EINEM Eingang für seinen (egal welchen
> Sensor, egal welchen Tankinhalt) Sensor und EINEM Ausgang für seine
> Tankuhr zuschicken.

Das geht nicht. Kannst du glauben oder nicht. Ist aber so.

von Manfred (Gast)


Lesenswert?

Rainer V. schrieb:
> Übrigens fand ich schon damals mit meiner Quickly das Umstellen auf
> Reserve, wenns geruckelt hat, als das Nonplusultra! Einzige akzeptierte
> Verbesserung wäre gewesen, das Ding wäre von alleine zur nächsten Tanke
> gefahren :-)

Ganz viele Jahre später am richtigen Motorrad gab es eine analoge 
Tankanzeige und trotzdem noch den Reservehahn, das machte Sinn. Im 
Normalfall hat man den Benzinhahn garnicht angefasst, weil er, per 
Unterdruck gesteuert, bei stehendem Motor geschlossen war.

von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Lesenswert?

Vielen Dank für die Kritik und die Denkanstöße. Ich gehe nochmal in mich 
und bastele etwas weiter.

Manfred schrieb:
> bestückt und mit Codierbrücken für den Sensortyp.

Ist ein interessanter Ansatz, danke.

Rainer V. schrieb:
> Verbesserung wäre gewesen, das Ding wäre von alleine zur nächsten Tanke
> gefahren

Nun, wird sicher irgendwann kommen. Mein Staubsauger kann das schon. 
Irgendwann werden die Fahrzeuge auch soweit sein. Hoffentlich jedoch 
nicht bei Zweirädern. Meinen Erinnerungen zu nach tat es immer weh wenn 
mein Motorrad einen anderen Weg eingeschlagen hat als ich...

Gruß, Martin

von Joachim B. (jar)


Lesenswert?

Manfred schrieb:
> Das geht nicht
Axel S. schrieb:
> Das geht nicht.

sehe ich auch so!

Es gibt LIBs bei Arduino für viele Displays, Trotzdem muss man sich vor 
dem Compilieren entscheiden welcher Controller eingesetzt ist, 
automatisch funktioniert das auch nicht.

So ist das auch bei der Hardware deinem Sensor.

Wenn dein zu messender Raum 5m ist brauchst du einen 5m Messstab, mit 
dem kommst du aber nicht in einen Raum der nur 3m hat und automatisch 
faltet sich auch kein Messstab.

Ausnahme Autorange beim DMM, gucken ob der Wert zu groß ist und einen 
Falter, sprich Meßummschalter einbauen bis der Wert den Meßbereich nicht 
übersteigt!

Das würde bei einer Tankanzeige schon irritieren, bei jedem Start geht 
der Zeiger auf VOLL und etwas später ist dann doch weniger drin, genauso 
wie es bei vielen DMM nervt, weil die Aktualisierungsrate zu lahm ist, 
deswegen wählt man ja meist den Meßbereich vor in dem man messen will, 
weg von Autorange zu 2V 20V 200V

Martin B. schrieb:
> Einfach Platine
> einbauen und via USB neu Konfigurieren und fertig.

das ginge wie bei der Arduino LIB und genug Ports und flash durch 
Voreinstellung per Software. Deine REF wird aus einem DAC gebaut der die 
Uref anpasst neu kompiliert oder den Uref Wert und die DAC Einstellung 
im EEPROM ablegt (3 Taster, set up down, oder Jumper, Lötbrücken)

https://create.arduino.cc/projecthub/instrumentation-system/dac-8-bit-using-r-2r-ladder-964837

8 Bit 0-255 sollten dicke reichen für einen Tankanzeige, es geht ja 
"nur" um 0-50L? Keiner will da auf Schnapsgläser 2cl auflösen.

AREF mit externer REF muss natürlich sauber (frei von Störungen sein) 
sowie belastbar sein und nicht während der Wandlung wegdriften dürfen!

: Bearbeitet durch User
von HildeK (Gast)


Lesenswert?

Martin B. schrieb:
> Das bedeutet, jeden Tank mit jedem
> Sensor zu kombinieren, mit der selben Software und dem selben
> Kontroller. Dazu gehört meine ich den Sensor an das System an zu passen
> und nicht bei einem Sensor 3Bit, beim anderen 4Bit und wieder beim
> anderen 10Bit zu messen.

Bist du da nicht auf dem Holzweg?
Auch wenn du nur die Referenzspannung umschalten musst, heißt das eine 
Variante in der Software, zumindest eine andere Softwarekonfiguration. 
Wie auch immer, du brauchst eine sensorabhängige Variante.

Man könnte auch einen TL431 nehmen (https://www.ti.com/lit/gpn/tl431). 
Der hat nominal 2.5V, kann aber durch externe Beschaltung auf höhere 
Spannungen umgeschaltet werden, siehe Bild 21 in dem Datenblatt. Und es 
gibt auch Derivate mit 1.25V Referenzspannung. Da könntest du mit einem 
MOSFET unterschiedliche R2 zuschalten.
Das geht natürlich auch mit einem umschaltbaren Spannungsteiler, wobei 
dann die Referenzspannung eben eine größere Abhängigkeit von der VCC 
hat.
Das oben genannte Problem der Anpassung an den jeweiligen Sensor bleibt 
aber, zumindest ein Anlernen an der aktuellen Sensor.

von Stefan F. (Gast)


Lesenswert?

HildeK schrieb:
> Das oben genannte Problem der Anpassung an den jeweiligen Sensor bleibt
> aber, zumindest ein Anlernen an der aktuellen Sensor.

Das meine ich ebenfalls.

Da macht man den Tank einfach einmal voll und drückt den Anlernen-Knopf.
Dann dividiert man 100% durch den Messwert, und speichert sich das 
Ergebnis als Multiplikator ab.

Von nun an braucht man nur noch den Messwert des ADC mit diesem 
Multiplikator multiplizieren und hat eine schöne Tankanzeige in Prozent. 
Wie viele Bits das sind und ob der Sensor den Messbereich des ADC 
optimal ausnutzt, ist ziemlich egal. Damit hat man auch gleich statische 
Abweichungen vom Soll sowohl bei der Refenzspannung als auch beim Sensor 
mit abgefrühstückt.

(Das ganze geht auch ohne Fließkommazahlen, wenn man will oder muss)

von M.A. S. (mse2)


Lesenswert?

Manfred schrieb:
> Ich kenne einen BC238, der hat aber nur drei Beine.
Damit verräts Du Dein Alter. (Ich bin auch mit dem BC238 
aufgewachsen...)
;)

von HildeK (Gast)


Lesenswert?

M.A. S. schrieb:
> Manfred schrieb:
>> Ich kenne einen BC238, der hat aber nur drei Beine.
> Damit verräts Du Dein Alter. (Ich bin auch mit dem BC238
> aufgewachsen...)
> ;)

Weiterhin Off-Topic: ich bin mit dem OC612 aufgewachsen 😀 ...
Und habe gerade zum ersten Mal ein Datenblatt dazu gesehen!

von Stefan F. (Gast)


Lesenswert?

M.A. S. schrieb:
> Damit verräts Du Dein Alter.

Jo. Wobei ich anfangs nur Zugang zu altem Lehrmaterial hatte, wo überall 
der BC-107 verwendet wurde. Mit einer Feile konnte man ihn zum 
Fotowiderstand, Fotodiode oder Optokoppler umfunktionieren. Ein wahres 
Universal-bauteil :-)

von Axel S. (a-za-z0-9)


Lesenswert?

Stefan ⛄ F. schrieb:
> Da macht man den Tank einfach einmal voll und drückt den Anlernen-Knopf.
> Dann dividiert man 100% durch den Messwert, und speichert sich das
> Ergebnis als Multiplikator ab.

Das funktioniert aber nur dann, wenn der Tankinhalt proportional zur 
Füllhöhe ist. Das ist regelmäßig nicht der Fall.

von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Lesenswert?

M.A. S. schrieb:
> Ich bin auch mit dem BC238
> aufgewachsen...

HildeK schrieb:
> ich bin mit dem OC612 aufgewachsen

Ich mit der PL504...

von Martin B. (Firma: BINE Automatentechnik ◔) (pac-man)


Lesenswert?

Axel S. schrieb:
> Das funktioniert aber nur dann, wenn der Tankinhalt proportional zur
> Füllhöhe ist. Das ist regelmäßig nicht der Fall.

Das weiß ich. Muss korrigiert werden.

Beitrag #6575069 wurde von einem Moderator gelöscht.
von Manfred (Gast)


Lesenswert?

Joachim B. schrieb:
> Manfred schrieb:
>> Das geht nicht
> Axel S. schrieb:
>> Das geht nicht.
> sehe ich auch so!

Da ist das Hauptproblem der Lösung, die Hardware:
Martin B. schrieb:
> Einmal 0-5V, ein mal 4-20mA und ein mal 33-240Ohm.

0-5V wollen vom µC gemessen werden, am besten aus den selben 5V wie der 
AT328 versorgt und direkt dran an den Analogeingang.

4-20mA brauchen einen Bürdewiderstand, an dem man den Spannungsabfall 
misst.

33-240Ohm brauchen einen Festwiderstand, je nach Beschaltung nach Plus 
oder GND, auch am besten aus den selben 5V wie der AT328 versorgt. An 
diesen Teiler mißt man dann die Spannung.

Wenn der µC wenig zu tun hat, könnte man die drei Beschaltungen auf drei 
verschiedene Analogeingänge legen, die Software wird doch eh individuell 
eingespielt.

von Manfred (Gast)


Lesenswert?

M.A. S. schrieb:
> Damit verräts Du Dein Alter. (Ich bin auch mit dem BC238
> aufgewachsen...)
> ;)

Nur weil ich einen modernen Transistor kenne?

Nee nee, erste Spielereien waren eher mit AC125, dann Verstärkerchen mit 
AC187/188 oder BD161/162. Irgendwann wurde Silizium bezahlbar, BC107.

In Fernseher und Radio haben wir noch 'Birnen' umgesteckt, PL504, EL84. 
Antennenverstärker mit E88CC ... Mein erster Fernseher hatte noch eine 
PL36, bekam ich als Lehrling von einem älteren Herren geschenkt.

von Joachim B. (jar)


Lesenswert?

Manfred schrieb:
> In Fernseher und Radio haben wir noch 'Birnen' umgesteckt, PL504, EL84.

alle ohne Boosterdiode?

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
Noch kein Account? Hier anmelden.