Inhoudsopgave:

Arduino CAP-ESR-FREQ-meter - Ajarnpa
Arduino CAP-ESR-FREQ-meter - Ajarnpa

Video: Arduino CAP-ESR-FREQ-meter - Ajarnpa

Video: Arduino CAP-ESR-FREQ-meter - Ajarnpa
Video: autorange capacitor tester / capacitance meter with Arduino - Kapazitätsmesser mit Arduino 2024, November
Anonim
Arduino CAP-ESR-FREQ-meter
Arduino CAP-ESR-FREQ-meter
Arduino CAP-ESR-FREQ-meter
Arduino CAP-ESR-FREQ-meter
Arduino CAP-ESR-FREQ-meter
Arduino CAP-ESR-FREQ-meter
Arduino CAP-ESR-FREQ-meter
Arduino CAP-ESR-FREQ-meter

CAP-ESR-FREQ meter met een Arduino Duemilanove.

In deze instructable vindt u alle benodigde informatie over een meetinstrument op basis van een Arduino Duemilanove. Met dit instrument kun je drie dingen meten: condensatorwaarden in nanofarads en microfarads, de equivalente serieweerstand (ESR-waarde) van een condensator en last but not least frequenties tussen 1 Herz en 3 MegaHerz. Alle drie de ontwerpen zijn gebaseerd op beschrijvingen die ik vond op het Arduino-forum en op Hackerstore. Na het toevoegen van enkele updates heb ik ze gecombineerd tot één instrument, bestuurd met slechts één Arduino ino-programma. De verschillende meters worden geselecteerd via een keuzeschakelaar met drie standen S2, aangesloten op pennen A1, A2 en A3. ESR-nulstelling en reset van de meterselectie gebeurt via een enkele drukknop S3 op A4. Schakelaar S1 is de AAN/UIT-schakelaar die nodig is voor 9 V DC-batterijvoeding wanneer de meter niet via USB op een pc is aangesloten. Deze pinnen worden gebruikt voor invoer: A0: invoer van esr-waarde. A5: condensatorinvoer. D5: frequentie invoer.

De meter gebruikt een Liquid Crystal Display (LCD) op basis van de Hitachi HD44780 (of een compatibele) chipset, die te vinden is op de meeste op tekst gebaseerde LCD's. De bibliotheek werkt in 4-bits modus (d.w.z. met 4 datalijnen naast de rs-, enable- en rw-besturingslijnen). Ik ben dit project begonnen met een lcd met slechts 2 datalijnen (SDA en SCL I2C aansluitingen) maar dit botste helaas met de andere software die ik voor de meters gebruikte. Eerst zal ik de drie verschillende meters uitleggen en tot slot de montage-instructies. Bij elk type meter kun je ook het aparte Arduino ino-bestand downloaden, als je alleen dat specifieke type meter wilt installeren.

Stap 1: De condensatormeter

De condensatormeter
De condensatormeter
De condensatormeter
De condensatormeter

De digitale condensatormeter is gebaseerd op een ontwerp van Hackerstore. De waarde van een condensator meten:

Capaciteit is een maat voor het vermogen van een condensator om elektrische lading op te slaan. De Arduino-meter vertrouwt op dezelfde basiseigenschap van condensatoren: de tijdconstante. Deze tijdconstante wordt gedefinieerd als de tijd die de spanning over de condensator nodig heeft om 63,2% van zijn spanning te bereiken wanneer deze volledig is opgeladen. Een Arduino kan de capaciteit meten omdat de tijd die een condensator nodig heeft om op te laden direct gerelateerd is aan de capaciteit door de vergelijking TC = R x C. TC is de tijdconstante van de condensator (in seconden). R is de weerstand van het circuit (in Ohm). C is de capaciteit van de condensator (in Farads). De formule om de capaciteitswaarde in Farads te krijgen is C = TC/R.

In deze meter kan de R-waarde worden ingesteld voor kalibratie tussen 15kOhm en 25 kOhm via potmeter P1. De condensator wordt opgeladen via pin D12 en ontladen voor een volgende meting via pin D7. De laadspanningswaarde wordt gemeten via pin A5. De volledige analoge waarde op deze pin is 1023, dus 63,2% wordt weergegeven door een waarde van 647. Wanneer deze waarde is bereikt, berekent het programma de condensatorwaarde op basis van de bovengenoemde formule.

Stap 2: De ESR-meter

De ESR-meter
De ESR-meter

Zie voor de definitie van ESR

Zie voor het originele Arduino-forumonderwerp https://forum.arduino.cc/index.php?topic=80357.0 Met dank aan szmeu voor de start van dit onderwerp en mikanb voor zijn esr50_AutoRange-ontwerp. Ik heb dit ontwerp gebruikt, inclusief de meeste opmerkingen en verbeteringen voor mijn esr-meterontwerp.

UPDATE mei 2021: Mijn ESR-meter gedraagt zich soms vreemd. Ik heb veel tijd besteed aan het vinden van de reden(en), maar heb het niet gevonden. Het controleren van de originele Arduino-forumpagina's zoals hierboven vermeld, zou de oplossing kunnen zijn ….

Equivalent Series Resistance (ESR) is de interne weerstand die in serie verschijnt met de capaciteit van het apparaat. Het kan worden gebruikt om defecte condensatoren te vinden tijdens reparatiesessies. Geen enkele condensator is perfect en de ESR komt van de weerstand van de kabels, de aluminiumfolie en de elektrolyt. Het is vaak een belangrijke parameter in het ontwerp van de voeding, waarbij de ESR van een uitgangscondensator de stabiliteit van de regelaar kan beïnvloeden (dat wil zeggen, ervoor zorgen dat deze oscilleert of te sterk reageert op transiënten in de belasting). Het is een van de niet-ideale eigenschappen van een condensator die een verscheidenheid aan prestatieproblemen in elektronische circuits kan veroorzaken. Een hoge ESR-waarde verslechtert de prestaties als gevolg van vermogensverliezen, ruis en een grotere spanningsval.

Tijdens de test wordt gedurende een zeer korte tijd een bekende stroom door de condensator geleid, zodat de condensator niet volledig wordt opgeladen. De stroom veroorzaakt een spanning over de condensator. Deze spanning is het product van de stroom en de ESR van de condensator plus een verwaarloosbare spanning vanwege de kleine lading in de condensator. Omdat de stroom bekend is, wordt de ESR-waarde berekend door de gemeten spanning te delen door de stroom. De resultaten worden vervolgens weergegeven op het display van de meter. De teststromen worden gegenereerd via transistoren Q1 en Q2, hun waarden zijn 5mA (hoge bereikinstelling) en 50mA (lage bereikinstelling) via R4 en R6. Het ontladen gebeurt via transistor Q3. De condensatorspanning wordt gemeten via analoge ingang A0.

Stap 3: De frequentiemeter

De frequentiemeter
De frequentiemeter

Zie voor de originele gegevens het Arduino-forum:https://forum.arduino.cc/index.php?topic=324796.0#main_content_section. Dank aan arduinoaleman voor zijn geweldige ontwerp van de frequentiemeter.

De frequentieteller werkt als volgt: De 16bit Timer/Counter1 telt alle klokken op die binnenkomen vanaf pin D5. Timer/Counter2 genereert elke milliseconde een interrupt (1000 keer per seconde). Als er een overflow is in Timer/Teller1, wordt de overflow_counter met één verhoogd. Na 1000 interrupties (= precies één seconde) wordt het aantal overflows vermenigvuldigd met 65536 (dan loopt de teller over). In cyclus 1000 wordt de huidige waarde van de teller opgeteld, zodat u het totale aantal kloktikken krijgt dat de laatste seconde binnenkwam. En dit komt overeen met de frequentie die je wilde meten (frequentie = klokken per seconde). De procedure meting (1000) zal de tellers instellen en initialiseren. Daarna wacht een WHILE-lus totdat de interruptservive-routine meting_ready op TRUE zet. Dit is precies na 1 seconde (1000ms of 1000 interrupts). Voor hobbyisten werkt deze frequentieteller erg goed (afgezien van lagere frequenties kun je een nauwkeurigheid van 4 of 5 cijfers krijgen). Vooral bij hogere frequenties wordt de teller erg nauwkeurig. Ik heb besloten om slechts 4 cijfers weer te geven. U kunt dat echter aanpassen in het gedeelte LCD-uitvoer. U moet de D5-pin van de Arduino gebruiken als de frequentie-ingang. Dit is een vereiste voor het gebruik van de 16bit Timer/Counter1 van de ATmega-chip. (controleer de Arduino-pin voor andere borden). Voor het meten van analoge signalen of laagspanningssignalen wordt een voorversterker toegevoegd met een voorversterkertransistor BC547 en een blokpulsvormer (Schmitt-trigger) met een 74HC14N IC.

Stap 4: De componentenassemblage

De componentenassemblage
De componentenassemblage
De componentenassemblage
De componentenassemblage
De componentenassemblage
De componentenassemblage

De ESR- en CAP-circuits zijn gemonteerd op een stuk perfboard met gaten op een afstand van 0,1 inch. De FREQ schakeling is op een apart perfboard gemonteerd (deze schakeling is later toegevoegd). Voor de bedrade verbindingen worden mannelijke headers gebruikt. Het lcd-scherm wordt samen met de AAN/UIT-schakelaar in de bovenklep van de doos gemonteerd. (En één reserveschakelaar voor toekomstige updates). De lay-out is op papier gemaakt (veel gemakkelijker dan het gebruik van Fritzing of andere ontwerpprogramma's). Deze papieren lay-out werd later ook gebruikt om het echte circuit te controleren.

Stap 5: De doosmontage

De doosmontage
De doosmontage
De doosmontage
De doosmontage
De doosmontage
De doosmontage

Een zwarte kunststof doos (afmetingen BxDxH 120x120x60 mm) werd gebruikt om alle componenten en beide printplaten te monteren. De Arduino, de perfboard-circuits en de batterijhouder zijn gemonteerd op een 6 mm houten montageplaat voor eenvoudige montage en solderen. Op deze manier kan alles in elkaar worden gezet en als het klaar is, kan het in de doos worden geplaatst. Onder de printplaten en de Arduino werden nylon afstandhouders gebruikt om te voorkomen dat de borden doorbuigen.

Stap 6: De definitieve bedrading

De laatste bedrading
De laatste bedrading
De laatste bedrading
De laatste bedrading

Tot slot worden alle interne bedrade verbindingen gesoldeerd. Toen dit klaar was, heb ik de esr-schakeltransistoren getest, via de testaansluitingen T1, T2 en T3 in het bedradingsschema. Ik schreef een klein testprogramma om de aangesloten uitgangen D8, D9 en D10 elke seconde van HOOG naar LAAG te veranderen en controleerde dit op de verbindingen T1, T2 en T3 met een oscilloscoop. gemaakt met krokodillenklemverbindingen.

Voor frequentiemeting kunnen langere testdraden worden gebruikt.

Veel plezier met testen!

Aanbevolen: