Hallo Stefan,
ja- wie pock schon sagt: das geht. Hatte ich für eine Serienelektronik
schon mal gemacht.
Am besten wär's, wenn der Mikrocontroller einen Komparator hat. (gibts
zB bei den PICs)
Ein normaler Port sollte aber eigentlich auch gehen.
Du lädst ein C über ein R auf.
- Interrupts sperren
- Eingangsport (Komparator) als Input Capture konfigurieren. Oder IRQ
auslösen
- Ausgangsport setzen
- Timer rücksetzen.
- Interrupts freigaben
- warten, bis der Eingangsport kippt.
Die Zeit des Capture Events ist dann die Impulszeit- also die
Entladezeit aus R und C.
Diese Messung ist recht ungenau. Toleranz des Widerstandes, des
Kondensators, Schaltschwelle des Komparators, bzw des Inputpins.
Deshalb machst Du die Messung einmal mit deinem zu messenden Kondensator
- und einmal mit einem Referenzkondensator. Dann spielt eigentlich nur
noch die Genauigkeit des Referenzkondensators eine Rolle und der Fehler
durch die Zeitauflösung des Timers.
1-2% Kondensatoren sind noch bezahlbar.
Du kannst die Kondensatoren umschalten, indem Du sie gegen einen Pin
schaltest, der einmal Ausgang LOW und einmal Eingang hochohmig ist.
Für den Bereich 1nF bis 5nF könnte es Sinn machen, mehr als nur einen
Referenzkondensator zu verwenden. zB 1nF, 100nF oder 1nF,10nF,100nF,1uF