Forum: Mikrocontroller und Digitale Elektronik Zeitkonstante - ich kann wohl nicht rechnen...


von Michael U. (Gast)


Lesenswert?

Hallo,

folgendes Problem:

ein C mit 47nF wird über einen Widerstand von +Ub 5V aufgeladen.
Das C hängt am Analogcomparatoreingang AIN1 (-) eines tiny2313, AIN0 (+) 
ist auf die Bandgap-Spannung gesetzt (1,23V).

Counter 1 läuft (im Moment) ohne Vorteiler. Ich suche den rechnerischen 
Zusammenhang zwischen Widerstandswert und Zählerstand, wenn der 
Comaprator den Capture auslöst.

Zeitkonstante ist ja klar, aber wie berechnet sich die bei Ladespannung 
5V bis zum Erreichen der 1,23V???

Ich könnte es von Capturewert zurückrechnen, da die ganze Sache aber 
noch ein paar Ungenauigkeiten hat, ist mir das erstmal zu unzuverlässig.

Letztlich soll das Ding Widerstände messen, nicht sonderlich genau, nur 
zum Sortieren von Standardwerten.

Hat da jemand die passende Formel zur Hand?

Danke im voraus.

Gruß aus Berlin
Michael

von ??? (Gast)


Lesenswert?


von Michael U. (Gast)


Lesenswert?

Hallo,

@???: naja, da bin ich durchaus vorbeigewandert...
Mein Problem ist eher, daß meine Schulzeit schon knapp 40 Jahre her ist 
und ich mir schon an der Umstellung der Formel etwas die Ohren breche 
und einfach hoffe, jemand hat das "mal schnell" drauf.

Rs muß doch eine halbwegs einfache Näherung zwischen Widerstandswert und 
Zeit unter den gegeben Umständen geben oder irre ich mich da schon?

Gruß aus Berlin
Michael

von Currywurst (Gast)


Lesenswert?

Näherungsweise kannst du ja "Tau" verwenden. Also R mal C. Tau ist die 
sogenannte Zeitkonstante die z.B. angibt wann dein Kondensator zu 63% 
geladen ist. Das ganze ist zwar eine Expotentialfunktion aber du kannst 
bis zum Zeitpunkt Tau durchaus einen linearen Zusammenhang von Spannung 
und Zeit annehmen. Ist zwar mathematisch nicht richtig aber du hast eine 
einfache Näherung zum Kopfrechnen.

von Tom (Gast)


Lesenswert?

Eine Näherungslösung ist diese:

Der Widerstand R, könnte zum Beispiel 10 kOhm sein, liegt während des 
Aufladevorgangs im Mittel an etwa 4,4 V. Anfangs 5,0 V, am Ende 3,77 V.

Dann ist der Strom durch R gleich 4,4 V / R, hier also 0,44 mA.

Mit dem Strom wird Dein C aufgeladen. Q = C * U, also die Ladung des 
vollen Kondensators ist 47 nF * 1,23 V = 57,8 nC.

Diese Ladung muss der Strom nun liefern. Q = I * t, also t = Q / I.
57,8 nC / 0,44 mA = 131 us.

Mit anderen Werten für R ganz ähnlich.

von Karl H. (kbuchegg)


Lesenswert?

Könnte mal jemand meine Ableitung kontrollieren

(d ist das Tau vom Wiki Artikel)


U(t) = Umax * ( 1 - e^(-t/d))

U(t) / Umax = 1 - e^(-t/d))

U(t) / Umax - 1  =  -e^...

1 - U(t)/Umax = e^(-t/d)

ln( 1 - U(t)/Umax ) = -t/d

d = ln( 1 - U(t)/Umax ) / -t       | d = R * C



R = ln( 1 - U(t)/Umax ) / (-t*C)

von Michael U. (Gast)


Lesenswert?

Hallo,

@Currywurst: das ist ja gerade mein Problem...
Tau sagt mir zwar, wann der C auf 63% aufgeladen ist, also auf 3,15V.

Mein Problem ist nun, sozusagen "Tau" für 1,23V zu bestimmen.
Weil es eine Exponetialfunktion ist, verzweifle ich daran etwas.

Es müßte doch ein R  C  x gegen, bei dem x der Faktor ist, der nahe 
genug an 1,23V (24,6%) rankommt. Ich bekomme es aber irgendwie nicht 
gebacken.

Gruß aus Berlin
Michael

von Andrew (Gast)


Lesenswert?

>d = ln( 1 - U(t)/Umax ) / -t

müsste doch d = -t / ln(1-U(t)/Umax) heißen, oder? Also Zähler und 
Nenner vertauschen.

von yalu (Gast)


Lesenswert?

So sollte es stimmen:

Ub ist die Betriebsspannung mit der der Kondensator geladen wird, Uref 
die
Spannung, an der der Komparator anspricht, tau die Zeitkonstante RC.

Ah, endlich konnte ich die [math]-Funktion des Forums einmal sinnvoll 
anwenden :)

von Karl H. (kbuchegg)


Lesenswert?

Andrew wrote:
>>d = ln( 1 - U(t)/Umax ) / -t
>
> müsste doch d = -t / ln(1-U(t)/Umax) heißen, oder? Also Zähler und
> Nenner vertauschen.

Ja du hast recht
(ich hatte vorher nach t aufgelöst, bevor ich gemerkt habe,
dass wir ja eigentlich nach R gehen und ich das R über d kriege)

d = -t / ln( 1 -U(t)/Umax)

für d einsetzen

R * C = -t / ln( .... )

               -t
R =  ------------------------
      C * ln( 1 - U(t)/Umax)

Aber das muesste es jetzt sein.

klingt auch plausibel:
Je länger die Zeit, desto größer war der Widerstand
da 1 - ...  kleiner 1 ist, ist der ln davon negativ,
daher muss t auch negativ sein, damit der Bruch positiv
wird.

von Andrew (Gast)


Lesenswert?

also:

R = -t/[C*ln(1-U(t)/Umax]

und mit eingesetzten Werten:

R= 7.535 * 10^7 * t

von Michael U. (Gast)


Lesenswert?

Hallo,

@Tom: das sieht erstmal sehr interessant aus, zumal der Weg µC-günsig 
wäre. Das spiele ich mal durch.

@Karl heinz Buchegger: ich nicht. ;)))

Sind der Sache ist es, ohne Aufwand eine "Widerstands-Sortierhilfe" zu 
bauen. Ich kann also gewisse Restfehler entweder ignorieren, kann sie 
aus einer Tabelle kompensieren oder mit einer E-Reihe im Flash 
abgleichen.

Deshalb gefällt mir auf Anhieb auch Toms Ansatz so gut.

Gruß aus Berlin
Michael

von Michael U. (Gast)


Lesenswert?

Hallo,

Ihr seit einfach zu schnell. :)) Ich muß das wohl alles erstmal in Ruhe 
lesen. :)

Gruß aus Berlin
Michael

von Karl H. (kbuchegg)


Lesenswert?

Michael U. wrote:
> Hallo,
>
> @Tom: das sieht erstmal sehr interessant aus, zumal der Weg µC-günsig
> wäre. Das spiele ich mal durch.
>
> @Karl heinz Buchegger: ich nicht. ;)))
>
> Sind der Sache ist es, ohne Aufwand eine "Widerstands-Sortierhilfe" zu
> bauen. Ich kann also gewisse Restfehler entweder ignorieren, kann sie
> aus einer Tabelle kompensieren oder mit einer E-Reihe im Flash
> abgleichen.
>
> Deshalb gefällt mir auf Anhieb auch Toms Ansatz so gut.

Wo hast du das Problem?
Falls du den Rechenprobleme befürchtest:

der ganze ln( ... ) ist eine Konstante, da U(t) ja
konstant ist ( = deine Comperator Spannung)

Aber: ist ok. Meine kleinen grauen Zellen brauchten sowieso
etwas Gymnastik :-)

von Ralf W. (Gast)


Lesenswert?

Hab hier bei Atmel das dazu gefunden:
http://atmel.com/dyn/resources/prod_documents/doc0942.pdf

von Currywurst (Gast)


Lesenswert?

>>Sind der Sache ist es, ohne Aufwand eine "Widerstands-Sortierhilfe" zu
>>bauen. Ich kann also gewisse Restfehler entweder ignorieren, kann sie
>>aus einer Tabelle kompensieren oder mit einer E-Reihe im Flash
>>abgleichen.

Ist die Spannung an der R liegt groß gegenüber den 1,25 Volt dann kannst 
du ja lineare zusammenhänge annehmen. Der Widerstand ist ja für einen 
fast konstanten Spannungsabfall eine fast konstante Stromquelle. Für das 
sortieren in einer E12 Reihe reicht es bestimmt. Nehme mal an die Zeit T 
bis zum erreichen von 1,25Volt ist proportional zu R. Bei bekannter 
Kapazität C ergibt sich ein fast linearer zusammenhang von T und R.  Der 
Rest ist Dreisatzrechnung und ausprobieren.

von Andrew (Gast)


Lesenswert?

Er braucht doch keine lineare Näherung, die Rechnung ist auch mit der 
Exponentialfunktion einfach aufzulösen und endet in einer Multiplikation 
mit einer Konstanten.

von Tom (Gast)


Lesenswert?

> Er braucht doch keine lineare Näherung, die Rechnung ist auch mit der
> Exponentialfunktion einfach aufzulösen und endet in einer Multiplikation
> mit einer Konstanten.

Kommt aber das gleiche dabei raus.

Konstante von Andrew:   R= 7.535 * 10^7 * t
d.h. t = 132,7 us bei R = 10 kOhm

Die lineare Näherung ergibt 131 us für 10 kOhm.

Diese Konstante muss nun Grundlage für die Programmierung sein - egal 
wie  ermittelt.

Bei dem Projekt wäre noch zu bedenken, dass Kondensatoren große 
Toleranzen haben können. Damit wird die Messung sehr ungenau. Kann man 
aber durch Kalibrieren mit einem bekannten Widerstand rausrechnen.

von Michael U. (Gast)


Lesenswert?

Hallo,

@Tom: ok, das nehme ich dann mal, Danke nochmal an alle.

Alles daran hat Toleranzen, Bandgap-Spannung, Betriebsspannung, 
Kondensator. Wie Du schon richtig sagst, kann ich das dann aber mit für 
mich ausreichender Genauigkeit rausrechnen.

Gruß aus Berlin
Michael


von GeraldB (Gast)


Lesenswert?

Wegen der e-Funktion dauert es eigentlich unendlich lange, bis C voll 
ist. Für die Praxis nimmt man an, das C nach 5 Tau voll ist.

von Uwe (Gast)


Lesenswert?

Hi!
Einen Gedanken hätte ich noch. In Anlehnung an Tom, den Rx aber in einen 
Stromtreiber einsetzen und mit Konstantstrom laden. Die e-Funktion ist 
dann
komplett raus. t= C*dU/I (gerade um U0 rum wirkt die e-Funkt. doch 
heftig)
Wenn du den Stromtreiber geschickt aufbaust kann die gemessene Zeit 
direkt dem Rx zugeordnet werden.

Viel Erfolg, Uwe

.

von Michael U. (Gast)


Lesenswert?

Hallo,

@GeraldB: der Fall tritt ja nicht auf. Ladespannung am Widerstand ist Ub 
des AVR, also 5V. Schaltpunkt ist die Bandgap-Spannung also rund 1,23V. 
Weiter wird nicht geladen, nach dem Capture wird das C erst über den 
Messwiderstand und dann durch L am AVR-Pin entladen.

Ist bei kleinen Widerständen und damit großen nötigen Kondensatoren für 
sinnvolle Capturewerte sowieso nahezu AVR-Mißhandlung...

@Uwe: Im Moment besteht der Testaufbau aus 4x 7-Segment im Multiplex mit 
Stellentriebern und Segmentwiderständen, dem Tiny2313, 2 Cs und den 
Meßklemmen. Wenn irgendwie möglich, will ich es dabei belassen, 
irgendwie bin ich gerade auf dem "Minimal-Trip". ;)))

Gruß aus Berlin
Michael

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.