PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit RC-Glied und Ladezeitmessung (gelöst)



konservator
14.02.2007, 23:39
Hallo. Ich halte es kurz:
Schaltung:



___
RA3 -----|___|----- RA0
|
|
---
---
|
|
|
Masse



Code in Basic



Wert:
ADCWert = 0 ;Wert auf 0 setzen
PORTA.3 = 1 ;Aufladen
Pause 20 ;Warten bis aufgeladen

PORTA.3 = 0 ;Kurzschließen
CMCON = %01000010 ;Komp. an, NI-Eingang = Vref, I-Eingang = RA0.DB Seite 62, CM2:CM0 = 010
WHILE CMCON.6 = 1 ;Solange Schwelle nicht erreicht
ADCWert = ADCWert + 1
WEND

Pause 20 ;Entladen
CMCON = %00000111 ;RA3 kann hohen Pegel ausgeben, Komp. aus
RETURN


Ergebnis ist immer Null bei sich änderndem R. Woran liegt es ?

SprinterSB
15.02.2007, 08:23
Du schliesst den C kurz, er entlädt sich also sofort.

Der C müsste über einen R entladen werden, etwa so:

http://freenet-homepage.de/gjl/pub/index.html#c-meter

Benji
15.02.2007, 09:31
Ist es nicht einfacher eine externe (vom uC) Schaltung aufzubauen?
Konkret:
1. uC gibt Kommando zum Aufladen
2. uC gibt Kommando zum Entladen
3. uC misst verstrichene Zeit
4. über die Schaltung wird eine Logische 1 oder 0 an einen digitalen Port gegeben, sobald der Kondensator entladen ist.
5. Berechnung der Kapazität

Dasselbe könntest du ja auch beim Ladevorgang machen...

Anmerkung: Ist RA3 wirklich 0 wenn du ihn auf 0 setzt? Oder ist er nur Hochohmig?

MfG Benji

Hubert.G
15.02.2007, 10:48
Zu C messen, speziell für grössere, wird oft ein 7555 eingesetzt, der µC misst dann die Taktzeit und kann auf die Kapazität zurückrechnen.

Hier ist ein Beispiel nur mit einem PIC: www.sprut.de/electronic/pic/programm/elkoc/elkoc.html

Hubert

konservator
15.02.2007, 16:21
Danke für die Antworten, es geht um die Zeitmessung. Habe es inzwischen gelöst.