Handboek · hoofdstuk 24Condensatoren en de RC-tijd
Lading opslaan, tijd maken en een drukknop die maar één keer drukt
Een condensator is twee geleiders met een isolator ertussen. Hij slaat lading en energie op, maar vooral: hij heeft tijd nodig om te laden of te ontladen. Met een weerstand erbij krijg je een klok van milliseconden tot minuten, met één getal dat alles vastlegt: de tijdconstante . In dit hoofdstuk reken je laden en ontladen exact uit, meet je de curve met een microcontroller, maak je van een pulserende spanning een vlakke, en zorg je dat de knop 'kasdak' op het bedieningspaneel van de klimaatmodule bij één druk ook echt maar één keer reageert.

- Je kan uitleggen hoe een condensator lading opslaat en rekenen met in F, µF, nF en pF, ook vanuit een opdrukcode.
- Je kan het laden en ontladen via een weerstand berekenen met en , met .
- Je kan de 63 %-regel en de 5τ-regel gebruiken en de tijd tot een drempelspanning berekenen.
- Je kan de energie in een condensator berekenen met en vergelijken met een batterij.
- Je kan uitleggen hoe een condensator een gelijkgerichte spanning afvlakt, en de rimpel schatten.
- Je kan een RC-curve meten met een microcontroller en er τ en C uit bepalen, ook door te lineariseren.
- Je kan een drukknop ontdenderen met een RC-filter en een Schmitt-trigger of in software, en die keuze verantwoorden.
De Leidse fles
In het midden van de achttiende eeuw was elektriciteit een salonattractie. Met een draaiende glazen bol en een wollen doek kon je vonken trekken, maar de lading verdween even snel als ze kwam. In 1745 en 1746 vonden twee onderzoekers, onafhankelijk van elkaar, een manier om ze te bewaren: Ewald von Kleist in Pommeren en Pieter van Musschenbroek in Leiden. Ze laadden een glazen fles met water, met een metalen draad erin, terwijl ze de fles in de hand hielden. Wie daarna tegelijk de draad en de buitenkant aanraakte, kreeg een schok die door arm en borst sloeg. Musschenbroek beschreef ze in een brief als zo hevig dat hij de proef niet wilde herhalen.
De Leidse fles, zoals ze in heel Europa ging heten, was de eerste condensator: twee geleiders (het water binnenin, later een laagje metaalfolie, en de hand of een folie buitenom) gescheiden door een isolator, het glas. Rijen flessen naast elkaar gaven grotere vonken. Bijna honderd jaar later onderzocht Michael Faraday hoe de isolator tussen de geleiders de opgeslagen lading beïnvloedt. De eenheid van capaciteit draagt zijn naam: de farad.
Vandaag zit er in elk elektronisch toestel een handvol tot enkele honderden condensatoren. Ze zijn meestal kleiner dan een rijstkorrel, en de meeste slaan zo weinig energie op dat je er niets van voelt. Maar het principe is nog altijd dat van de fles: twee geleiders, een isolator, en lading die blijft zitten tot ze een weg vindt.
In de klimaatmodule doen condensatoren drie dingen die je elke dag nodig hebt: ze houden de 5 V-rail stabiel, ze filteren storingen weg van de meetingangen, en ze maken tijd: de knop 'kasdak' op het bedieningspaneel wordt er betrouwbaar door.

Twee platen, een isolator en een bron
Wat je al weet. Stroom is lading die beweegt (F19); in een kring loopt ze alleen als die gesloten is (F18). In hoofdstuk 5 zag je dat een condensator exponentieel ontlaadt, met . Hier leer je waarom.
Een condensator bestaat uit twee geleiders, de platen, met een isolator ertussen: het diëlektricum. Sluit je hem aan op een bron, dan duwt de bron elektronen naar de ene plaat en trekt ze weg van de andere. Door de isolator zelf gaat geen stroom, maar in de draden wel: de ene plaat wordt positief, de andere even sterk negatief. Tussen de platen ontstaat een elektrisch veld en een spanning . Dat gaat door tot die spanning even groot is als die van de bron: dan is de condensator geladen en stopt de stroom.
Hoe meer spanning, hoe meer lading er op de platen zit, en die twee zijn recht evenredig. De evenredigheidsconstante is de capaciteit :
De capaciteit hangt af van de bouw: grotere platen en een kleinere afstand geven meer capaciteit, en een isolator die zich laat 'polariseren' (zijn eigen ladingen een beetje verschuift) ook. Lucht doet dat nauwelijks; sommige keramische materialen duizend keer meer dan lucht. Daarom zijn de meeste condensatoren opgerold of gestapeld: lange, dunne platen met een flinterdunne isolator ertussen. Hoe je de capaciteit uit de afmetingen berekent (), zie je in hoofdstuk E19.
Tijdens het laden meet een ampèremeter in de draad wel stroom, maar geen enkele lading gaat door de isolator: wat links op de plaat aankomt, vertrekt rechts van de andere plaat. Is de condensator geladen, dan loopt er niets meer: een condensator laat geen gelijkstroom door. Alleen een veranderende spanning geeft stroom in de kring.
Een elco en zijn opschriften
Condensatoren zijn er in vier grote families. Welke je kiest, hangt af van hoeveel capaciteit je nodig hebt, bij welke spanning, en hoe nauwkeurig. Hieronder een elektrolytische condensator (elco), de grote cilinder in elke voeding, met een keramische condensator ernaast.
| soort | typisch bereik | eigenschappen | waarvoor |
|---|---|---|---|
| keramisch (schijfje of SMD) | 1 pF tot ±10 µF | klein, goedkoop, niet gepolariseerd; waarde verandert met temperatuur en spanning | ontkoppelen (100 nF), filters, ontdenderen |
| folie (polyester, polypropyleen) | 1 nF tot ±10 µF | stabiel en nauwkeurig, niet gepolariseerd, groter | timing, filters, netspanning |
| elektrolytisch (elco) | 1 µF tot ±100 000 µF | veel capaciteit per volume; gepolariseerd; ruime tolerantie (±20 %); veroudert | afvlakken, buffers bij motoren en voedingen |
| supercondensator | 0,1 F tot ±3000 F | enorm veel capaciteit, maar maar ±2,7 V per cel; gepolariseerd | energiebuffer: klok, geheugen, korte stroomonderbreking |
- 1Capaciteit
1000 µF, met een ruime tolerantie: bij elco's vaak ±20 %. Een 'meting' van 900 µF is dus geen defect.
- 2Werkspanning
25 V is de hoogste spanning die de elco blijvend mag krijgen. Kies ruim: voor een rail van 12,8 V (tot 14,6 V bij het laden) minstens 25 V.
- 3Minstreep
Een elco is gepolariseerd: de isolator is een oxidehuidje dat alleen standhoudt als de min aan de minkant zit. Omgekeerd aangesloten lekt hij stroom, wordt heet en kan openbarsten.
- 4Lange poot = plus
Nieuwe elco's hebben een langere pluspoot, zoals een led. Na het inkorten blijft alleen de streep over.
- 5Breukgroef
Een ingeperst kruisje bovenaan: als de elco door een fout gas vormt, scheurt hij daar open in plaats van te ontploffen.
- 6105 °C
De hoogste temperatuur. Een elco droogt uit: de levensduur staat in de datasheet (bv. 2000 h bij 105 °C) en wordt, als vuistregel, dubbel zo lang per 10 °C koeler.
- 7Symbool
Twee plaatjes; bij een gepolariseerde condensator een + aan de pluskant (of één gebogen plaat).
- 8Keramisch, code 104
Kleine condensatoren dragen een code van drie cijfers in picofarad: twee cijfers en het aantal nullen. 104 = 10 · 10⁴ pF = 100 nF. Niet gepolariseerd.
Rekenen met Q = C · U
(a) Welke waarde heeft een condensator met opdruk 473K? (b) Een elco van 470 µF staat op de rail van 12,8 V. Hoeveel lading zit erop, en hoeveel elektronen zijn er van de ene plaat naar de andere verschoven? (c) Hoe groot zou de capaciteit zijn van twee platen van 1 m² op 1 mm afstand in lucht? Hoe groot zouden die platen moeten zijn voor 1 F?
- code 473K; ,
- ; lucht: met
- waarde van 473K
- en het aantal elektronen
- capaciteit van de platen; oppervlakte voor 1 F
- 1(a) 47 en drie nullen, in picofarad: . De K betekent ±10 %.
- 2(b) .
- 3Aantal elektronen: .
- 4(c) .
- 5Voor 1 F moet de oppervlakte keer groter: , een vierkant van ongeveer 10,6 km zijde.
Laden via een weerstand: waarom het steeds trager gaat
Zet de schakelaar in het schema op 1. Op het eerste moment is de condensator leeg: er staat 0 V over, dus de volle 5,0 V over de weerstand. De stroom is dan . Die stroom brengt lading op de platen, en de spanning stijgt. Maar daardoor blijft er minder spanning over de weerstand, en dus minder stroom: de condensator laadt steeds trager. Volgens de maaswet (hoofdstuk 21):
In een kort tijdje komt er een lading bij, dus een spanning . Met andere woorden: in elk tijdje komt er een vaste fractie bij van wat nog ontbreekt. Een vaste fractie per stap: dat is exponentieel verval (hoofdstuk 5), hier van het tekort. De grafiek toont het met stappen van : telkens 20 % van het resterende tekort erbij. Hoe kleiner je de stappen neemt, hoe dichter je bij de exacte kromme komt, en het getal duikt vanzelf op:
| stap Δt | per stap bij | aantal stappen tot τ | na τ ontbreekt nog |
|---|---|---|---|
| 0,50 τ | 50,0 % | 2 | 0,2500 |
| 0,20 τ | 20,0 % | 5 | 0,3277 |
| 0,10 τ | 10,0 % | 10 | 0,3487 |
| 0,01 τ | 1,0 % | 100 | 0,3660 |
| 0,001 τ | 0,1 % | 1000 | 0,3677 |
| steeds kleiner | 0,3679 = 1/e |
Het product bepaalt dus hoe snel alles gaat. Het heet de tijdconstante of RC-tijd (ohm maal farad is seconde). Voor de spanning en de stroom tijdens het laden vanaf 0 V geldt exact:
Ontladen, en de twee vuistregels
Zet de schakelaar op 2. De geladen condensator is nu zelf de bron: hij duwt stroom terug door de weerstand. Hoe lager zijn spanning, hoe kleiner die stroom, dus ook het ontladen gaat steeds trager, met dezelfde :
Twee vuistregels die je elke dag gebruikt:
- De 63 %-regel. Na één is 63 % van de verandering gebeurd: bij het laden is 63 % van de eindspanning bereikt, bij het ontladen is nog 37 % over (). Zo lees je af uit een gemeten curve. Ook de raaklijn in het begin wijst aan: als de condensator in hetzelfde tempo zou blijven laden, was hij na precies één vol.
- De 5τ-regel. Na vijf tijdconstanten is het verschil kleiner dan 1 %: in de praktijk is de condensator dan vol of leeg. Wiskundig is hij dat nooit helemaal.
| tijd | laden: al bereikt | ontladen: nog over |
|---|---|---|
| 0,69 τ | 50,0 % | 50,0 % |
| 1 τ | 63,2 % | 36,8 % |
| 2 τ | 86,5 % | 13,5 % |
| 3 τ | 95,0 % | 5,0 % |
| 4 τ | 98,2 % | 1,8 % |
| 5 τ | 99,3 % | 0,7 % |
Vaak wil je weten wanneer de spanning een drempel haalt, bijvoorbeeld de spanning waarbij een ingang kantelt. Neem de logaritme van de formule (hoofdstuk 5):
Rekenen met τ: vertragen tot een drempel
Een condensator van 220 µF laadt via 47 kΩ vanaf 0 V op 5,0 V. (a) Bereken en de tijd tot hij 'vol' is. (b) Na hoeveel tijd haalt hij 3,0 V, de spanning waarboven een ingang van de microcontroller zeker 'hoog' leest ()? (c) Je wil dat dezelfde schakeling 2,0 s wacht voor ze de 3,0 V haalt, met dezelfde weerstand. Welke condensator kies je?
- , ,
- drempel
- en
- tijd tot 3,0 V
- C voor 2,0 s
- 1(a) ; vol na .
- 2(b) .
- 3(c) Er moet gelden , dus en .
- 4De dichtstbijzijnde gangbare waarde is 47 µF: dan wordt het .
Een RC-curve meten met een microcontroller
Laadt een condensator echt volgens ? En hoe groot is zijn capaciteit werkelijk?
- Arduino Uno met USB-kabel
- weerstand 10 kΩ (±1 %)
- elco 100 µF (16 V of meer)
- breadboard en draadjes
- computer met de seriële monitor (of Python)
- 1Bouw de kring: D8 → 10 kΩ → knooppunt → elco → GND; het knooppunt ook naar A0.
- 2Laad de schets rc_meting.ino op (volgende blad). Ze ontlaadt eerst 10 s, zet dan D8 hoog en meet 5 s lang om de 0,1 s.
- 3Kopieer de uitvoer uit de seriële monitor naar een rekenblad of naar het Python-programma van het blad daarna.
- 4Zet de ADC-waarde uit tegen de tijd. Bepaal τ met de 63 %-regel.
- 5Bepaal τ ook door te lineariseren, en bereken telkens de capaciteit .
| (s) | 0,0 | 0,3 | 0,6 | 0,9 | 1,0 | 1,5 | 2,0 | 3,0 | 4,0 | 5,0 |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 279 | 483 | 630 | 670 | 816 | 902 | 981 | 1009 | 1018 |
Voorbeeldmeting (een deel van de 51 waarden). De waarde stijgt snel en dan steeds trager, en blijft net onder 1024. 63 % van 1024 is 647: dat wordt gehaald tussen 0,9 s (630) en 1,0 s (670). Lineair geïnterpoleerd: .
De metingen volgen de exponentiële laadcurve (grafiek). Met geeft een capaciteit van , niet de 100 µF van de opdruk. Geen meetfout: een elco heeft een tolerantie van ±20 %, deze zit 6 % onder de nominale waarde. Lineariseren (volgende bladen) gebruikt alle punten tegelijk en geeft .
Twee kleine fouten spelen mee. De pin levert niet precies 5,00 V, maar de ADC meet tegen dezelfde 5 V, zodat dat wegvalt (ratiometrisch, hoofdstuk 22). En de ADC rondt af naar beneden: daarom komt de waarde nooit boven 1023, en is een punt vlak bij 1024 onbetrouwbaar voor het lineariseren.
C++: de laadcurve meten
Het programma doet alles in setup(): het loopt maar één keer. Eerst staat D8 tien seconden laag, meer dan tien tijdconstanten: de condensator is dan zeker leeg. Dan gaat D8 hoog, en op de tijdstippen 0, 100, 200 … ms leest het A0. De uitvoer staat als t_ms;N in de seriële monitor, klaar voor een rekenblad.
// rc_meting.ino - de laadcurve van een RC-kring meten// D8 -- 10 kOhm -- knooppunt -- 100 uF -- GND; het knooppunt hangt ook aan A0.const int LAAD = 8;const int MEET = A0;const unsigned long STAP_MS = 100; // om de 0,1 s een metingconst int AANTAL = 51; // 0 tot 5,0 s void setup() { Serial.begin(9600); pinMode(LAAD, OUTPUT); digitalWrite(LAAD, LOW); // eerst volledig ontladen delay(10000); // 10 s = meer dan 10 tau Serial.println("t_ms;N"); unsigned long start = millis(); digitalWrite(LAAD, HIGH); // t = 0: het laden begint for (int k = 0; k < AANTAL; k++) { while (millis() - start < k * STAP_MS) { // wachten tot het volgende meetmoment } int n = analogRead(MEET); Serial.print(k * STAP_MS); Serial.print(";"); Serial.println(n); } digitalWrite(LAAD, LOW); // daarna weer ontladen} void loop() {}Waarom een lege while en geen delay(100)? Een analogRead en het versturen van tekst kosten zelf tijd (ongeveer een milliseconde). Met delay(100) na elke meting schuiven de meetmomenten telkens iets op; door te wachten tot millis() - start het volgende veelvoud van 100 ms haalt, blijven ze op de juiste plaats. Voor een snellere RC-kring (kleiner dan 0,1 s) moet je sneller meten: dan loopt de lus met micros().
Python: τ uit de meting halen
Het 63 %-punt gebruikt maar twee metingen. Beter is een methode die alle punten gebruikt: lineariseren (hoofdstuk 3). Uit volgt : zet je uit tegen , dan krijg je een rechte door de oorsprong met helling . Numpy zoekt de best passende rechte (polyfit, de kleinste kwadraten van hoofdstuk 3).
# tau.py - de tijdconstante bepalen uit een gemeten laadcurveimport mathimport numpy as np t = np.arange(0, 5.01, 0.1) # sN = np.array([0, 103, 196, 279, 354, 422, 483, 537, 586, 630, 670, 706, 738, 767, 793, 816, 837, 856, 873, 888, 902, 914, 925, 935, 944, 952, 959, 966, 971, 977, 981, 986, 989, 993, 996, 999, 1001, 1004, 1006, 1007, 1009, 1010, 1012, 1013, 1014, 1015, 1016, 1017, 1017, 1018, 1018]) # ADC-waarden om de 0,1 s # methode 1: het 63 %-punt (lineair interpoleren tussen twee metingen)doel = (1 - math.exp(-1)) * 1024k = int(np.argmax(N >= doel)) # eerste meting boven het doeltau1 = t[k - 1] + (doel - N[k - 1]) / (N[k] - N[k - 1]) * (t[k] - t[k - 1]) # methode 2: lineariseren. 1 - N/1024 = e^(-t/tau), dus ln(1 - N/1024) = -t/tau: een rechtegoed = (t > 0) & (N < 1000) # vlak bij 1024 zijn de afrondingsfouten te grooty = np.log(1 - (N[goed] + 0.5) / 1024) # + 0,5: het midden van de ADC-staphelling, snijpunt = np.polyfit(t[goed], y, 1)tau2 = -1 / helling R = 10e3print(f"63 %-punt: tau = {tau1:.3f} s -> C = {tau1 / R * 1e6:.1f} uF")print(f"lineariseren: tau = {tau2:.3f} s -> C = {tau2 / R * 1e6:.1f} uF ({goed.sum()} punten)")print(f"snijpunt met de y-as: {snijpunt:.4f} (ideaal 0)")Uitvoer (gedraaid bij het bouwen van deze pagina):
63 %-punt: tau = 0.943 s -> C = 94.3 uF lineariseren: tau = 0.940 s -> C = 94.0 uF (35 punten) snijpunt met de y-as: -0.0001 (ideaal 0)
Beide methoden geven ongeveer 94 µF. De punten boven laat het programma weg: daar is heel klein, en één stap afronding verandert de logaritme met tientallen procenten. Dat zie je ook in de grafiek: de punten liggen mooi op een rechte, tot ze onderaan beginnen te wiebelen.
Energie in een condensator
Om lading op een condensator te brengen, moet de bron arbeid leveren: elke extra lading moet tegen de spanning in die er al staat. In het begin gaat dat gemakkelijk (0 V), op het einde tegen de volle . Gemiddeld is dat tegen , dus is de opgeslagen energie : de oppervlakte van de driehoek onder de rechte .
Hoeveel is dat? Een elco van 1000 µF op 25 V bevat : genoeg voor een felle vonk als je hem kortsluit, niet genoeg om iets te laten draaien. Een supercondensator van 100 F op 2,7 V bevat , ongeveer 0,1 Wh. De LiFePO4-batterij van de klimaatmodule (1,54 kWh, hoofdstuk 16) bevat evenveel als ongeveer 15 200 zulke supercondensatoren.
Een condensator is dus geen batterij: per kilogram slaat hij veel minder energie op (een supercondensator orde van grootte 5 Wh/kg, een LiFePO4-batterij ongeveer 110 Wh/kg). Zijn sterkte is snelheid: hij kan zijn energie in milliseconden afgeven of opnemen, zo vaak je wil, zonder te slijten zoals een batterij. Een flitser en een defibrillator laden daarom eerst langzaam een condensator op, en ontladen hem dan in één klap.
Een condensator houdt zijn lading vast, ook als het toestel uit staat. In voedingen en omvormers die op netspanning werken, zitten elco's van honderden volt: open die nooit, ook niet na het uittrekken van de stekker. In de 12 V-installatie van Habitat is de spanning ongevaarlijk, maar een grote elco die je kortsluit met een schroevendraaier geeft een vonk die metaal wegbrandt.

Habitat: een supercondensator als buffer voor de 5 V-rail
Valt de voeding van de microcontroller even weg (een losse stekker, een omvormer die herstart), dan wil je dat de Mega nog lang genoeg draait om zijn datalogbestand netjes af te sluiten (hoofdstuk 30). De 5 V-rail trekt gemiddeld 0,16 A (hoofdstuk 21), en de Mega werkt op 16 MHz betrouwbaar tot 4,5 V. (a) Hoe lang houdt een elco van 1000 µF de rail boven 4,5 V? (b) En een supercondensator van 1,0 F? (c) Welk deel van de energie in de supercondensator gebruik je daarbij?
- (neem aan: constant); van 5,0 V tot 4,5 V
- of
- tijd voor beide
- gebruikte fractie van de energie
- 1De lading die de rail verbruikt, komt van de condensator: , en . Dus .
- 2(a) : veel te kort.
- 3(b) : ruim genoeg om een bestand te sluiten.
- 4(c) Gebruikt: van de : .
- 5Controle met het vermogen: gemiddeld , maal is . Klopt.
Afvlakken: een condensator na de gelijkrichter
In hoofdstuk 23 maakte één diode van wisselspanning een pulserende gelijkspanning: de helft van de tijd nul. Zet er een condensator over, en het beeld verandert. Tijdens de top laadt de diode de condensator tot bijna de topspanning. Daarna daalt de ingang, de diode spert, en de condensator levert zelf de stroom aan de last. Hij ontlaadt, maar veel te traag om ver te zakken: met 2200 µF en 100 Ω is , elf keer langer dan een periode van 20 ms. Bij de volgende top laadt de diode hem weer bij.
Wat overblijft, is een gelijkspanning met een kleine rimpel. De simulatie (met het diodemodel van hoofdstuk 23 en een transformator met 1,0 Ω inwendige weerstand) geeft voor 2200 µF een uitgang tussen 13,87 en 14,99 V: een rimpel van 1,12 V rond 14,4 V.
Een snelle schatting. Tussen twee toppen levert de condensator bijna een hele periode de laststroom . Hij verliest dan een lading , dus een spanning:
Voor 2200 µF: , iets meer dan de simulatie, omdat de condensator in werkelijkheid al laadt vóór de periode om is. De schatting is dus aan de veilige kant. Met 1000 µF wordt de rimpel 2,4 V, met 4700 µF 0,54 V; een brug met 2200 µF geeft 0,49 V.
De prijs zie je in de tweede grafiek: de diode laadt de condensator bij in korte stoten van ongeveer 3,1 ms per periode. Omdat de hele lading in die korte tijd moet binnenkomen, is de piekstroom 1,5 A, tien keer de gemiddelde laststroom. Diode en transformator moeten dat aankunnen, en bij het aanzetten, als de condensator nog leeg is, is de stroomstoot nog groter.
Een afvlakcondensator kiezen
Een transformator van 12 V~ met een bruggelijkrichter moet een last van ongeveer 0,50 A voeden, met een rimpel van hoogstens 1,0 V. (a) Welke capaciteit heb je minstens nodig? Kies uit de reeks 2200, 3300, 4700, 6800, 10 000 µF. (b) Welke werkspanning moet de elco hebben? De netspanning mag 10 % boven 230 V liggen.
- brug: ; ;
- transformator 12 V~ (topwaarde ); twee diodes van ±0,7 V in serie
- C
- werkspanning
- 1(a) . Volgens de schatting is 4700 µF net te klein. De simulatie (last van 28 Ω, ongeveer 0,5 A) is milder: 4700 µF geeft 0,66 V rimpel, 6800 µF 0,46 V.
- 2Een elco mag echter 20 % minder capaciteit hebben dan zijn opdruk, en verliest er nog wat bij het verouderen: een 4700 µF kan zo 3800 µF worden. Kies daarom 6800 µF.
- 3(b) Topwaarde: . Met 10 % meer netspanning: . Zonder last (niets trekt de condensator leeg) wordt het nog iets meer.
- 4Een elco van 16 V is dus te krap; kies 25 V.
Denderen: waarom één druk tien keer drukt
Een drukknop lijkt een perfecte schakelaar: open of dicht. Maar het contact is een metalen veertje dat tegen een ander stukje metaal klapt, en het veert terug. Gedurende enkele milliseconden gaat het contact tientallen keren open en dicht: het dendert. Voor een lamp maakt dat niets uit. Een microcontroller leest zijn ingang echter miljoenen keren per seconde, en ziet elke terugsprong als een nieuwe druk.
Hoe lang duurt dat? De ingenieur Jack Ganssle mat het voor achttien verschillende schakelaars. Zestien ervan denderden gemiddeld ongeveer 1,6 ms, en hoogstens 6,2 ms. Maar één mooie rode drukknop denderde bij het loslaten soms 157 ms. Veel sprongen waren korter dan een microseconde. Een ontdendering moet dus korte pulsjes negeren, en lang genoeg wachten voor de langzaamste knop die je verwacht.
De grafiek toont het model van een versleten knop: 4,1 ms dender bij het indrukken. Rechtstreeks op een pin met pull-up (F24) zou het programma vijf keer 'ingedrukt' zien. Wisselt elke druk het kasdak tussen open en dicht, dan hangt de uitkomst af van toeval: een even aantal sprongen, en er gebeurt niets.
Er zijn drie oplossingen, die je vaak combineert:
- Een RC-filter: een condensator die de snelle sprongen uitmiddelt, zodat de spanning maar traag verandert.
- Een Schmitt-trigger: een ingang met twee drempels die van die trage spanning weer één nette flank maakt.
- Software: een nieuwe toestand pas aanvaarden als het signaal een tijdje stil is gebleven.

RC-filter en Schmitt-trigger
Het filter. In het schema van het volgende blad trekt het knooppunt A hoog; de knop trekt het naar 0 V. De condensator hangt via aan A. Wordt de knop ingedrukt, dan ontlaadt de condensator via (τ = 10 ms); laat je los, dan laadt hij via (τ = 20 ms). Een terugsprong van een halve milliseconde verandert de spanning over de condensator maar met een paar procent: de dender verdwijnt in de trage kromme.
Het probleem. Die trage kromme komt nu wel ergens in het gebied tussen 'zeker laag' (onder 1,5 V) en 'zeker hoog' (boven 3,0 V). Een gewone ingang kan daar twijfelen en bij de kleinste storing heen en weer springen. Je hebt dus weer dender, nu elektronisch.
De oplossing: hysterese. Een Schmitt-trigger heeft twee drempels: omhoog kantelt hij pas bij , omlaag pas bij , en daartussen onthoudt hij zijn vorige toestand. Het is hetzelfde idee als de thermostaat met twee drempels van het dakraam (F25): één drempel geeft geklapper, twee drempels één nette schakeling. De 74HC14 bevat zes zulke ingangen, telkens met een omkering (hoog in, laag uit). Bij 4,5 V voeding geeft de datasheet typisch en ; bij 5 V rekenen we met ongeveer 2,6 en 1,6 V. De spreiding tussen exemplaren is groot: ligt ergens tussen ongeveer 1,8 en 3,5 V, tussen 1,0 en 2,2 V. Een ontwerp moet met die uitersten werken.
De pinnen van de ATmega-chips op de Uno en de Mega hebben zelf een kleine Schmitt-trigger, maar de datasheet belooft alleen dat onder 'laag' en boven 'hoog' gelezen wordt; hoe groot de hysterese is, staat er niet in. Voor een knop op een lange kabel neem je daarom een echte Schmitt-trigger, of je controleert in software.
Habitat: de knop 'kasdak' op het bedieningspaneel ontdenderen
Naast de deur van de kweekruimte komt een bedieningspaneel. De eerste knop, S1 'kasdak', laat het schuifpaneel van het dak openen of sluiten: elke druk wisselt. Het paneel hangt op ongeveer 3 m kabel van de Mega, en in de buurt schakelen de pomp en de dakmotor. Ontwerp de ingang: kies , en , bereken de reactietijden met de rekenwaarden van de 74HC14, controleer ze met de uitersten, en kies een pin.
- knop naar GND; dender tot ±6 ms (Ganssle); 74HC14 bij 5 V: ,
- uitersten: 1,8-3,5 V, 1,0-2,2 V
- reactie ruim onder 100 ms (dan voelt het 'meteen')
- , ,
- reactietijden bij indrukken en loslaten
- pin en instellingen
- 1Keuze. en (keramisch). Ingedrukt loopt er maar door de knop; de condensator ontlaadt via en stoot dus ook geen grote stroom door het contact.
- 2Indrukken: ontladen van 5,0 V met tot : .
- 3Loslaten: laden met tot : .
- 4Uitersten. Indrukken: tussen en . Loslaten: tussen en . Altijd langer dan 6 ms dender, altijd ruim onder 100 ms.
- 5Pin. De Mega heeft nog tientallen vrije digitale pinnen; D22 ligt op de dubbele rij aan de rand, handig voor een kabel naar het paneel. Omdat de 74HC14 omkeert, is D22 hoog als de knop ingedrukt is:
pinMode(22, INPUT), zonder interne pull-up.
C++: ontdenderen in software
Zonder extra onderdelen kan het ook: de knop rechtstreeks tussen D22 en GND, met de interne pull-up. Het programma onthoudt wanneer de pin het laatst veranderde, en aanvaardt een nieuwe toestand pas als ze 20 ms onveranderd bleef. Het gebruikt millis() en geen delay(): de lus blijft ondertussen de vlotter, de pomp en de sensoren bedienen (hoofdstuk 23 en 29). Alleen de flank 'net ingedrukt' wisselt het kasdak, anders zou een knop die je vasthoudt het dak voortdurend laten wisselen.
// knop_dak.ino - de knop 'kasdak' ontdenderen in software// Knop tussen D22 en GND, met de interne pull-up: los = HIGH, ingedrukt = LOW.// (Met het RC-filter en de 74HC14 van het bedieningspaneel: INPUT en INGEDRUKT = HIGH.)const int KNOP = 22;const int INGEDRUKT = LOW;const unsigned long DENDER_MS = 20; // zo lang moet het signaal stil blijven int vorigeLezing = HIGH; // wat de pin de vorige keer gafint stabiel = HIGH; // de aanvaarde toestandunsigned long laatsteWissel = 0; // wanneer de pin voor het laatst veranderdebool dakOpen = false;unsigned int keerGedrukt = 0; void setup() { pinMode(KNOP, INPUT_PULLUP); Serial.begin(9600);} void loop() { unsigned long nu = millis(); int lezing = digitalRead(KNOP); if (lezing != vorigeLezing) { // er verandert iets: echt of dender laatsteWissel = nu; // opnieuw beginnen met wachten vorigeLezing = lezing; } if (nu - laatsteWissel >= DENDER_MS && lezing != stabiel) { stabiel = lezing; // 20 ms rust: dit is de echte toestand if (stabiel == INGEDRUKT) { // alleen de flank 'net ingedrukt' telt keerGedrukt++; dakOpen = !dakOpen; // elke druk wisselt: open <-> dicht Serial.print("druk "); Serial.print(keerGedrukt); Serial.println(dakOpen ? ": kasdak openen" : ": kasdak sluiten"); } } // hier doet de lus ondertussen haar andere werk (pomp, vlotter, sensoren)}De grafiek toont wat het programma met de versleten knop doet: het reageert 20 ms na de laatste sprong, precies één keer. Bij het loslaten gebeurt hetzelfde, maar daar volgt geen actie. Een variant reageert meteen op de eerste flank en negeert daarna 20 ms alles: sneller, maar gevoeliger voor één enkele storingspiek. Met het RC-filter en de 74HC14 ervoor is de dender al weg; dan zet je INGEDRUKT op HIGH en de pin op INPUT.
Condensatoren overal in de klimaatmodule
Kijk naar de print van de klimaatmodule en je vindt condensatoren op plaatsen die je nu kan verklaren. Telkens gaat het om hetzelfde: lading die klaarstaat, en een tijd .
| waar | R | C | τ = R · C | wat de condensator doet |
|---|---|---|---|---|
| naast elke chip (Mega, sensoren) | 100 nF | levert de korte stroomstootjes van de chip zelf, zodat de 5 V-rail niet hapert (ontkoppelen) | ||
| batterijdeler op A3 (hoofdstuk 22) | 24,8 kΩ | 100 nF | 2,5 ms | levert de lading voor de ADC en dempt storingen |
| gate van de pomp-MOSFET (hoofdstuk 23) | 220 Ω | ±1,7 nF | 0,37 µs | de gate zelf is een condensator: zo snel schakelt de MOSFET |
| knop 'kasdak' (dit hoofdstuk) | 10 en 20 kΩ | 1 µF | 10 en 20 ms | ontdenderen |
| automatische reset van een Uno | 10 kΩ | 100 nF | 1 ms | maakt van een spanningsstap een korte resetpuls |
| bij de H-brug van de dakmotor (hoofdstuk 26) | bv. 470 µF | buffer: vangt de stroompieken van de motor op |
Ontkoppelen. Een chip trekt zijn stroom niet gelijkmatig, maar in stootjes van nanoseconden, telkens als zijn transistors schakelen. De draden naar de voeding hebben weerstand en gedragen zich een beetje als een spoel (hoofdstuk 26): de spanning aan de chip zou bij elke stoot even inzakken. Een condensator van 100 nF vlak naast de voedingspinnen levert die stootjes zelf, en wordt tussendoor rustig bijgeladen.
Filteren. Op de batterijdeler (hoofdstuk 22) laadt de ADC bij elke meting een eigen condensatortje van ongeveer 14 pF. De 100 nF op A3 levert die lading; de spanning zakt daarbij maar , ruim een honderdste van een procent. Tegelijk vormen de 24,8 kΩ van de deler en de 100 nF een filter met : storingspieken van de pomp, die maar microseconden duren, komen er nauwelijks door. Hoe zo'n filter frequenties scheidt, is het onderwerp van hoofdstuk E21.
Een puls maken. Open je de seriële monitor, dan herstart een Uno. Een lijn van de USB-chip (DTR) springt van 5 naar 0 V, en is via 100 nF met de RESET-pin verbonden, die een pull-up van 10 kΩ heeft. De spanning over een condensator kan niet springen: op dat moment was ze 0 V, dus springt RESET mee naar 0 V, en herstart de chip. Daarna laadt de condensator via 10 kΩ, en na enkele milliseconden () is RESET weer hoog. Zo maakt een condensator van een blijvende stap een korte puls.

Overzicht: condensatoren en RC
| symbool | betekenis | eenheid |
|---|---|---|
| lading op een plaat | C | |
| capaciteit | F | |
| spanning | V |
| symbool | betekenis | eenheid |
|---|---|---|
| na τ is 63 % van de verandering gebeurd | s | |
| weerstand | Ω |
| symbool | betekenis | eenheid |
|---|---|---|
| bronspanning | V | |
| tijd sinds het begin | s |
| symbool | betekenis | eenheid |
|---|---|---|
| stroom in de kring | A |
| symbool | betekenis | eenheid |
|---|---|---|
| drempelspanning | V |
| symbool | betekenis | eenheid |
|---|---|---|
| opgeslagen energie | J |
| symbool | betekenis | eenheid |
|---|---|---|
| 50 Hz (één diode) of 100 Hz (brug) | Hz |
| tijd | laden: al bereikt | ontladen: nog over |
|---|---|---|
| 0,69 τ | 50,0 % | 50,0 % |
| 1 τ | 63,2 % | 36,8 % |
| 2 τ | 86,5 % | 13,5 % |
| 3 τ | 95,0 % | 5,0 % |
| 4 τ | 98,2 % | 1,8 % |
| 5 τ | 99,3 % | 0,7 % |
| opdruk | betekenis | waarde |
|---|---|---|
| 101 | 10 · 10¹ pF | 100 pF |
| 472 | 47 · 10² pF | 4700 pF = 4,7 nF |
| 104 | 10 · 10⁴ pF | 100 000 pF = 100 nF |
| 105 | 10 · 10⁵ pF | 1 000 000 pF = 1 µF |
| J, K, M achteraan | tolerantie | ±5 %, ±10 %, ±20 % |
| ontdenderen | hoe | goed voor |
|---|---|---|
| RC-filter + Schmitt-trigger | bv. 10 kΩ + 10 kΩ + 1 µF, 74HC14 | lange kabels, storingen, interrupts |
| software | nieuwe toestand pas na 20 à 50 ms rust; millis(), geen delay() | korte draden, geen extra onderdelen |
Waar de condensator vandaan komt en waar hij heen gaat
Dit hoofdstuk koppelt de leerlijn elektronica aan de wiskunde van hoofdstuk 5: hetzelfde exponentiële verband dat bacteriën, afkoelende koffie en radioactieve kernen beschrijft, legt vast hoe snel een condensator laadt. Met heb je voor het eerst een onderdeel waarbij de tijd meespeelt: de kring van nu hangt af van wat er daarnet gebeurde.
Stroom als bewegende lading: een condensator is een plaats waar lading zich ophoopt.
Twee drempels tegen geklapper: dezelfde hysterese als de Schmitt-trigger.
Exponentieel verval, halveringstijd en ln: de wiskunde van laden en ontladen.
Lineariseren en de best passende rechte, om τ uit een meting te halen.
De 100 nF op de batterijdeler en de lading van de ADC.
De gelijkrichter die je hier afvlakt, en de gate van een MOSFET als condensator.
Een RC-filter maakt van een PWM-signaal een gelijkspanning.
De spoel, het broertje van de condensator; de knop 'kasdak' stuurt de dakmotor.
millis() in plaats van delay(): de software-ontdendering in een groter programma.
De RC-kring als dU/dt = (U₀ − U)/τ, opgelost en gesimuleerd.
Het elektrisch veld tussen de platen en C = εA/d.
RC-filters en de kantelfrequentie 1/(2πRC).
In het kort
- Een condensator is twee geleiders met een isolator ertussen. Hij slaat lading op: , met in farad (meestal µF, nF of pF).
- Door de isolator loopt geen stroom; in de kring wel, zolang de spanning verandert. Een geladen condensator laat geen gelijkstroom door.
- Laden via een weerstand gaat steeds trager: ; ontladen: , met .
- Na één τ is 63 % van de verandering gebeurd, na 5τ meer dan 99 %. De tijd tot een drempel volgt uit de logaritme.
- Energie: . Een condensator slaat weinig energie op, maar kan ze razendsnel afgeven: een buffer, geen batterij.
- Na een gelijkrichter vlakt een condensator de spanning af; de rimpel is ongeveer .
- Een drukknop dendert enkele milliseconden. Ontdender met een RC-filter en een Schmitt-trigger (twee drempels), of in software met millis().
Wat je nu kent
- condensator
- Onderdeel met twee geleiders (platen) en een isolator ertussen, dat lading en energie opslaat.
- capaciteit (van een condensator)
- Hoeveel lading een condensator opslaat per volt: , in farad (F).
- farad
- Eenheid van capaciteit: 1 F = 1 C/V. In de praktijk meestal µF, nF of pF.
- diëlektricum
- De isolator tussen de platen van een condensator; een goed diëlektricum vergroot de capaciteit.
- elco
- Elektrolytische condensator: veel capaciteit in een klein volume, maar gepolariseerd (plus en min).
- RC-tijd
- De tijdconstante van een condensator die via een weerstand laadt of ontlaadt: na τ is 63 % van de verandering gebeurd.
- rimpel
- Het kleine, periodieke op en neer van een afgevlakte gelijkspanning.
- dender
- Het snel openen en sluiten van een mechanisch contact vlak na het indrukken of loslaten.
- Schmitt-trigger
- Ingang met twee drempels (hysterese) die van een trage of rommelige spanning een zuiver digitaal signaal maakt.
- supercondensator
- Condensator met een enorme capaciteit (farads) bij een lage spanning, gebruikt als kleine energiebuffer.