PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RC Glied spinnt.



konservator
08.02.2007, 16:03
Liebe Leser,

ich habe hier ein RC-Glied an einen Microchip angeschlossen.

Pin ---- 0 bis 40kOhm --- 100nF --- Masse

1. Ich setze Pin high
2. Ich lasse 20ms warten
3. Ich setze Pin auf hochohmig
4. Ich lasse warten, bis Pin Low wird und lasse dabei zählen

Je nach R-Wert dauert es kürzer/länger bis Pin low wird.

Ich habe jetzt den Wert von R konstant gelassen und mehrere Meßwerte als Ergebnis, die ich mir visualisiert habe.

Was kann ich aus diesen Werten schließen ?

W1 - W4 bedeuten:

W1:
Siehe 1. - 4.

W2: Es wird die Originalroutine RCTime in PBP verwendet

W3: Es wird immer wieder beim Zählen von TRIS.1 auf TRIS.0 geschaltet, Pin auf Masse gelegt und wieder auf TRIS.1 geschaltet.

W4: Es wird die Routine RCTime in PBP mit Methode von W1 verwendet.

Zahlen bedeuten: Gezählte Zeit.

KlaRaw
08.02.2007, 17:56
Hallo,
Deine Angaben sind für mich etwas ungenau.

>> Pin ---- 0 bis 40kOhm --- 100nF --- Masse

Das heisst wohl, vom Port geht es auf einen Widerstand, der die Werte 0 Ohm bis 40 KOhm annehmen kann.

Das RC-Glied wird über den Port aufgeladen

>> 3. Ich setze Pin auf hochohmig

Wie hochohmig ist er denn?
Wie wird das RC-Glied denn entladen?

>> 4. Ich lasse warten, bis Pin Low wird und lasse dabei zählen

Was füe eine Spannung wird gemessen?
# R+C gegen Masse?
# C gegen Masse?

Wie, durch einen anderen Port?

>> .. bis Pin Low wird ..
d.h. vermutlich, die Spannung am Port erreicht den Wert für logisch 0.

Hierbei ist zu beachten das logisch 0 oder logisch 1 nicht geau auf einen Wert fixiert ist, sondern einen Bereich abdeckt. Der Betrag der Spannung bei dem von 0->1 oder 1->0 gewechselt wird ist zudem unscharf (+- 0,3V??).

Will man präsize, wiederholbare Spannungsverhältnisse haben. so muss man einen Schmitt Trigger einsetzen.

Gruss Klaus.

Benji
08.02.2007, 19:07
So wie ich das sehe kann sich der Kondensator ja gar nicht entladen...

Hast du das RC - Glied so angeschlossen? (siehe Code) Wenn ja, ist ein Anschluss des Kondensators über den Widerstand in der Luft wenn PIN_X vom PIC (ist es überhaupt ein PIC?) hochohmig wird...



___
PIN_X -----|___|----| |------
R C |
|
Masse

konservator
08.02.2007, 19:59
>> Pin ---- 0 bis 40kOhm --- 100nF --- Masse

Das heisst wohl, vom Port geht es auf einen Widerstand, der die Werte 0 Ohm bis 40 KOhm annehmen kann.
Anders: I/O Pin ---- Poti(40kOhm) ---- 100nF ---- Masse


Wie hochohmig ist er denn?
Hochohmig genug um als offener Schalter gesehen zu werden.


Wie wird das RC-Glied denn entladen?
Darüber habe ich mir auch Gedanken gemacht, es sollte ja ein Kurzschluß nach Aufladen sein. Ich habe versucht, dies durch W3 zu erreichen, so daß immer gemessen wird, dann ein KS folgt, dann wieder gemessen wird und der Eingang hochohmig ist. Gemittelt müßte es verhältnismäßig wiederholbare Ergebnisse geben. Fakt ist, auch bei unterschiedlichen R ist der Wert dann immer 0, wie es deutlich raussticht im Diagramm.

Anfangs habe ich direkt nach dem Aufladen PORT.0 gesetzt und erst dann TRIS.1. Das hat bei allen Methoden Null ergeben, egal, wo der Widerstand gerade war.



Was füe eine Spannung wird gemessen?
U_RC. Der Port, der auflädt mißt dann auch.


vermutlich, die Spannung am Port erreicht den Wert für logisch 0.
Natürlich. Dabei weiß ich, daß der Pin zwischen 0 und 0,8 Volt ist.


Der Betrag der Spannung bei dem von 0->1 oder 1->0 gewechselt wird ist zudem unscharf (+- 0,3V??).
Mag sein, erklärt aber nicht die Diagramme.


Will man präsize, wiederholbare Spannungsverhältnisse haben, so muss man einen Schmitt Trigger einsetzen.
Dann ist die Grenze zu schnell überwunden. Schließlich würde ein solcher eine theoretisch diskrete Grenze "auffächern". Der PIC kann also nicht zählen, und es würde sicher 0 ergeben.


Hast du das RC - Glied so angeschlossen? (siehe Code) Wenn ja, ist ein Anschluss des Kondensators über den Widerstand in der Luft wenn PIN_X vom PIC (ist es überhaupt ein PIC?) hochohmig wird.
Stimmt. Ich habe mich dem durch W3 angenähert, siehe die Antwort an KlaRaw...

Der Code von W3:


TRISA.3 = 0 ;Aufladen
PORTA.3 = 1
Pause 3

;PORTA.3 = 0 ;Messen + KS im Wechsel
TRISA.3 = 1
WHILE PORTA.3 = 1
ADCWert = ADCWert + 1
TRISA.3 = 0
PORTA.3 = 0
TRISA.3 = 1
WEND

TRISA.3 = 0 ;Endgültig entladen
PORTA.3 = 0
Pause 18

KlaRaw
09.02.2007, 07:52
Hallo,
so wie das RC-Glied jetzt angeschlossen ist wird es zwar aufgeladen aber wenn Du messen willst, dann misst Du die Entladung über einen sehr hohen Widerstand. Das hat bald mehr mit Selbstentladung zu tun.
Du musst das RC-Glied über diesen Port laden (Output = 1) und dann auch entladen (Output = 0). Zum Messen nimmst Du einen zweiten Port den Du zwischen Widerstand und Kondensator anschaltest.

Gruss Klaus.

konservator
09.02.2007, 14:10
Hallo,
so wie das RC-Glied jetzt angeschlossen ist wird es zwar aufgeladen aber wenn Du messen willst, dann misst Du die Entladung über einen sehr hohen Widerstand.
Hast du W3 verstanden ?


Du musst das RC-Glied über diesen Port laden (Output = 1) und dann auch entladen (Output = 0). Zum Messen nimmst Du einen zweiten Port den Du zwischen Widerstand und Kondensator anschaltest.


Du meinst:


___
PIN1(KS) -----|___|----- PIN2(Messen)
|
|
---
---
|
|
|
Masse



Das ist eine Möglichkeit. Wie läßt sich W3 verbessern ?

konservator
09.02.2007, 15:03
Ich habe die von mir interpretierte Schaltung umgesetzt und das Ergebnis ist angehängt. Das sieht gut aus.

W1: R blieb an einer Stelle
W2: Rmin,Rmittel,Rmax,Rmax2,Rmittel2,Rmin2.

Wie erklärst du dir V4 & V5 bei W2 ? Sie waren auf circa gleicher Position, auf jeden Fall war Rmax2(V4) > Rmittel2(V5).