Kapazitätsmessung mit dem ATtiny85 


Elektronik-Labor   Projekte   AVR 






Kürzlich ist mir ein Multimeter kaputt gegangen, mit dem ich auch kleine Kapazitäten ab 1 pF messen konnte. Ersatz musste her. Mit dem Tiny85 sollte die Aufgabe lösbar sein. Der zu messende Kondensator wird über einen genauen Widerstand mit 4,99 MOhm aufgeladen. Der Controller misst die Ladezeit bis der Port B3 als high gelesen wird.



Das Programm arbeitet mit unterschiedlichen Zählschleifen für kleine und für große Kondensatoren. In der ersten Schleife wird festgestellt, ob der Kondensator kleiner als 20 nF ist. In dem Fall wird die schnelle Schleife für die Messung bis 20000 pF aufgerufen. Die Zählgeschwindigkeit wird mit 10 nop-Befehlen so eingestellt, dass gerade ganze Picofarad gezählt werden. Ohne Messobjekt werden 30 pF gemessen, die von allen weitern Ergebnissen subtrahiert werden.

'Tiny85 1 pF ... 1000 nF
$regfile = "attiny85.dat"
$crystal = 8000000
$hwstack = 8
$swstack = 4
$framesize = 4

Dim t As Word
Open "comb.1:9600,8,n,1" For Output As #1
Config Adc = Single , Prescaler = Auto

Do
  t=0
  ddrb.3=1
  Portb.3=0
  waitms 20
  ddrb.3=0
  do
    t=t+1
    waitus 3500
  loop until pinb.3=1 or  t>20

  if t>20 then
    t=0
    ddrb.3=1
    waitms 20
    ddrb.3=0
    do
       t=t+1
       waitus 3500
    loop until pinb.3=1
    Print #1 , t;
    Print #1 , " nF   ";
  end if

  if t<21 then
    t=0
    ddrb.3=1
    waitms 20
    ddrb.3=0
   do
       t=t+1
       nop: nop
       nop: nop
       nop: nop
       nop: nop
       nop: nop
    loop until pinb.3=1
    t=t-30
    Print #1 , t;
    Print #1 , " pF   ";
  end if

  portb.3=0
  Waitms 100
Loop

End




Für die größeren Kondensatoren ab 20 nF läuft die Zählschleife langsamer. Eine Verszögerung von 3500 µs kommt gerade auf 1 nF pro Durchlauf. Bei 100 nF dauert eine Messung bereits 350 ms. Gerade noch machbar ist eine Messung bis 1 µF mit einer Messdauer von 3,5 s




Weitere Anwendungen zum Tiny85:

Der Morse-Fuchs
Tonerzeugung


Elektronik-Labor   Projekte   AVR