Home > Technologie > Kondensatorprüfgerät / Kapazitätsmessgerät

Kondensatorprüfgerät / Kapazitätsmessgerät

0
Advertisement

Kondensatorprüfgerät / Kapazitätsmessgerät

Wenn Sie, wie ich, eine enorme Menge an unmarkierten elektronischen Komponenten haben, die wie Kondensatoren aussehen, ist es wahrscheinlich eine gute Idee, sie entweder wegzuwerfen oder mit einem Kapazitätsprüfgerät zu testen. Darüber hinaus gibt es keine Notwendigkeit zu gehen und kaufen eine teure proprietäre Meter wie die niedrige Arduino wird einen sehr guten Job nur durch Hinzufügen ein paar Widerstände und mit einigen clever Codierung zu tun.

Ich sage nicht, dass ich es war, der die cleveren Sachen gemacht hat und das meiste dieses Projekts aus dem Interweb von den folgenden Leuten entlehnt wurde:

Maximous unter: http: //www.instructables.com/id/Measure-Capacitanc ...

Gabriel Staples an: http://electricrcaircraftguy.blogspot.com/

Eigentlich ist dies ein wirklich einfaches Projekt und man kann sogar etwas über Kondensatoren und Mikrocontroller lernen. Nur für meine eigene Neugier, ich hatte einen Sprung auf die Verwendung von Autodesk Circuits Lab die Schaltpläne zu erstellen und sogar eine PCB - Design, das wird leider wohl nie tatsächlich hergestellt werden, aber was auch immer!

Testen Sie jeden Kondensator mit dieser Schaltung - sogar bis zu 1 pico Farad. Das Geheimnis hinter diesem Gadget ist es, den "Ladewiderstand" in das Reich der Mega-Ohm zu tauschen, um die Ladegeschwindigkeit kleiner Kondensatoren zu verlangsamen. Ich habe so sehr an diesen Widerstand gewartet, dass ich ihm sogar einen Namen gab - "Charlie".

Schritt 1: Wie es funktioniert

Kondensatorprüfgerät / Kapazitätsmessgerät

Die meisten Dinge im Leben erfordern Energie und laden einen Kondensator ist keine Ausnahme. Wir müssen eine Ladung von Elektronen in dieses Gadget mit einer bestimmten Menge an Spannung in einer ähnlichen Weise wie eine Batterie schieben, außer dass keine chemische Reaktion auftritt. In dem Kondensator werden Elektronen oder Ladungen in einem Material gespeichert, das als ein Dielektrikum bezeichnet wird, das zwischen zwei Elektroden eingeschlossen ist. Wie beim Laden einer Batterie, wenn wir einen Widerstand in den Ladeschaltkreis legen, kann der Ladevorgang verlangsamt werden, und wenn der Widerstand absolut enorm ist, dh Mega-Ohm, können wir die Ladung so schnell verlangsamen, dass sogar ein Arduino messen kann.

Der Arduino verfügt über analoge Schaltkreise, die den Wert einer beliebigen Spannung zwischen 0 und 5V lesen können, so dass, wenn der Kondensator selbst langsam von 0 bis 5V durch einen enormen Widerstand diese Spannungsänderung beobachtet werden kann und die Zeit bis zum Aufladen gemessen, wie lange Da es nicht zu schnell ist. Ein sehr kleiner Kondensator wie man mit einem Wert von 10 pico Farads wird normalerweise extrem schnell aufladen, da es fast nichts drin - zu schnell für ein Arduino - wo unser freundlicher Widerstand ins Spiel kommt.

Jedoch kann eine Sache, die wir gut vergessen können, dass der Kondensator nicht mit der gleichen Rate die ganze Zeit aufzuladen. Es beginnt zu laden ziemlich schnell und dann allmählich fällt off exponentiell, da es mehr und mehr gesättigt wird. Das bedeutet in Wirklichkeit, dass wir nicht warten sollten, bis der Kondensator voll geladen ist, sondern wählen Sie einen willkürlichen Cut-off-Punkt, wo wir sagen, 'OK, es ist jetzt genug geladen'. Wenn wir die Arduino-Code, den wir nicht wollen, um die Aufladung zu einem vollen 5v, aber etwa 3 Volt statt. Dadurch wird viel weniger Fehler führen.

Werbung

Schritt 2: Brot und Schema

Kondensatorprüfgerät / Kapazitätsmessgerät

Kondensatorprüfgerät / Kapazitätsmessgerät

Kondensatorprüfgerät / Kapazitätsmessgerät

Der Kondensator, in diesem Fall ein 1uF-Elektrolyt, wird von Pin 13 durch Charlie, den Widerstand geladen. Die Spannung über dem Kondensator wird durch den Analogstift A0 erfaßt, der den Ladestopp bis zum Erreichen eines bestimmten Pegels zuläßt. Hinsichtlich des Codes ist dies möglich, indem das analoge Lesen in einer while-Schleife gehalten wird:

  Während (analogRead (analogPin) <648) <br> {// Hat nichts, bis der Kondensator 63,2% der Gesamtspannung erreicht)

Es wird dann durch einen Widerstand von 200 Ohm zum Pin 11 entladen.

In meiner Version wird der Prozess wiederholt 10-mal (i) um mehr Genauigkeit zu bekommen und ich habe eine Bibliothek von Gabriel Staples gebaut, um bessere Timer-Funktionalität aus dem Arduino bekommen.

Um große Kondensatoren zu testen, müsste Charlie für eine kleinere ausgetauscht werden, zB 10.000 Ohm oder die Prüfung wird zu lange dauern.

In meinem Setup habe ich einen Arduino Nano und ein Standard 4 x 20 LCD-Display.

Schritt 3: Code

Kondensatorprüfgerät / Kapazitätsmessgerät

  #include <LiquidCrystal.h> LiquidCrystal lcd (2, 3, 4, 5, 6, 7);  / * Timer2_Counter_measure_time_interval.ino Timer2 Counter Basic Beispiel - Zeigt die Verwendung meiner Timer2_Counter, die eine Timer-Funktion mit 0.5us Präzision, anstatt 4us Präzision wie die eingebaute Arduino micros () -Funktion hat.  Von Gabriel Staples Besuchen Sie meinen Blog unter http://electricrcaircraftguy.blogspot.com/ -Meine Kontaktinfo ist verfügbar, indem Sie auf die "Contact Me" -Reiter am oberen Rand meines Blogs.  -Bitte unterstützen meine Arbeit und Beiträge durch den Kauf etwas hier: https://sites.google.com/site/ercaguystore1/ Meine ursprüngliche Post mit diesem Code finden Sie hier: http://electricrcaircraftguy.blogspot.com/2014/02 /Timer2Counter-more-precise-Arduino-micros-function.html Geschrieben: 8 Feb. 2014 Aktualisiert: 30 Mai.  2014 Geschichte (neueste am Anfang): 20140517 - Timer2_Counter ist jetzt eine echte Bibliothek!  Dies ist das erste Beispiel, das Timer2_Counter als eine tatsächliche installierte Bibliothek verwendet.  Das war eine riesige Herausforderung für mich, denn dies ist nur meine 2. Bibliothek, die ich je geschrieben habe, und es ist die erste Bibliothek, die ich mit einer ISR () geschrieben habe, was eine besondere Herausforderung war.  20140208 - Anfangsbeispiel;  Benötigt eine spezielle Datei "Timer2_Counter.ino" mit allen Setup & Funktionen, die sich im gleichen Verzeichnis wie diese Beispieldatei befinden mussten.  * / // CODE BESCHREIBUNG: // Dieser Code zeigt die Verwendung meiner Timer2, die einen präziseren Timer als micros () bereitstellt.  // micros () hat eine Genauigkeit von nur 4us.  Timer2 verfolgt jedoch die Zeit bis zu einer Genauigkeit von 0.5us.  // Dies ist besonders wichtig in meinem Code, der ein RC-Receiver PWM-Signal, das von 900 ~ 2100us variiert liest.  // Obwohl dieser Code zeigt die Verwendung der Timer_2-Funktionen, die ich geschrieben habe, es nicht adäquat demonstrieren die // reale Dienstprogramm des Codes, so werde ich Folgendes angeben: // Durch die Verwendung meiner Timer2 Timer, um die PWM-High-Zeit zu messen Intervall an einem RC-Empfänger anstelle der Verwendung von micros (), kann ich wiederholt werden // Impulsbreite liest mit einer Fluktuation von ~ 1us, anstatt dass ein Einlesebereich von so viel wie +/- 4 ~ 8 us fluktuiert Wenn ich micros () verwende.  // Dies ist eine Erhöhung der Genauigkeit von ~ 8x.  // include die Bibliothek #include <eRCaGuy_Timer2_Counter.h> // Hinweis: ein Objekt dieser Klasse wurde bereits in der .cpp-Datei dieser Bibliothek vorinstanziert, so dass Sie einfach auf seine Methoden (Funktionen) // direkt jetzt zugreifen können Den Objektnamen "timer2" // eRCaGuy_Timer2_Counter timer2;  // Dies ist, was die Vorinstanzierungszeile aus der .cpp-Datei aussieht // Initialize Pins int analogPin = 0;  Int chargePin = 13;  Int EntladungPin = 11;  // beschleunigt Entladungsprozess, nicht nötig // Initialisieren Resistor int resistorValue = 10000;  // Initialisieren Timer unsigned long startTime;  Unsigned long elapsedTime;  Int i = 0;  Int j = 0;  // Initialisieren von Kapazitätsvariablen float microFarads;  Schwimmen nanoFaraden;  Unsigned long t_elapsed1 = 0;  Unsigned long t_elapsed2_ul = 0;  Float t_elapsed2_fl = 0;  Float t_elapsed3 = 0;  Float Ergebnis = 0;  Void setup () {lcd.begin (20, 4);  PinMode (chargePin, OUTPUT);  DigitalWrite (chargePin, LOW);  // Timer2 konfigurieren timer2.setup ();  // dieses MUSS getan werden, bevor die anderen Timer2_Counter-Funktionen funktionieren;  Hinweis: Da diese vermasselt PWM-Ausgänge auf den Pins 3 & 11 sowie // mit dem Ton () Bibliothek stört (http://arduino.cc/en/reference/tone), können Sie immer zurückkehren Timer2 wieder normal Durch Aufruf von //timer2.unsetup () // Serial Serial.begin (115200) vorbereiten;  // Ausgabe eines Headers von info: Serial.println (F ("Notes:"));  Serial.println (F ("micros () hat eine Genauigkeit von 4us"));  Serial.println (F ("get_count () mit unsigned lange endgültige Datentyp hat eine endgültige Genauigkeit von 1us, und ist schnell"));  Serial.println (F ("get_count () mit float endgültigen Datentyp hat eine endgültige Genauigkeit von 0.5us, und ist nicht ganz so schnell"));  Serial.println (F ( "get_micros () hat eine Genauigkeit von 0.5us und langsamer ist als die obigen zwei Methoden, um eine der oben genannten Verfahren 2 wird bevorzugt"));  Serial.println (F ( "=========================================== === "));  } Void Schleife () {i = 10;  J = i;  While (i> 0) {// Grab Startzeiten unsigned long t_start1 = micros ();  //uns;  Erhalten Sie die aktuelle Uhrzeit mit der eingebauten Arduino-Funktion micros (), mit einer Genauigkeit von 4us unsigned long t_start2 = timer2.get_count ();  // Zähleinheiten von jeweils 0,5;  Bekomme meine Timer2-Zahl, wobei jede Zahl 0.5us darstellt;  BEVORZUGTE METHODE float t_start3 = timer2.get_micros ();  //uns;  Erhalten Sie die aktuelle Zeit mit meinem Timer2;  Hinweis: Die Methode wird eine Zeile über diesem Verfahren, das oben VORZUGS // da schwimmt mit ein klein wenig langsamer als die Verwendung von unsigned sehnt digital (chargePin, HIGH);  // Beginnt das Laden des Kondensators startTime = millis ();  ////////////////////////////////////////////////// /////////////////////////////////////////////// //Warte ab Ein Bit während (analogRead (analogPin) <648) {// Tut nichts, bis der Kondensator 63,2% der Gesamtspannung erreicht; // delayMicroseconds (10);  // Grab-Endzeiten unsigned long t_end1 = micros ();  //uns;  Mit eingebauter Arduino-Funktion mit einer Genauigkeit von 4us unsigned long t_end2 = timer2.get_count ();  // Zähleinheiten von jeweils 0,5;  Mit meinem Timer2 count, wobei jeder Zählwert 0.5us Float t_end3 = timer2.get_micros ();  //uns;  mit meinem Timer2 Mikros, die eine Genauigkeit von 0.5us // berechne hat verstrichenen Zeiten t_elapsed1 = t_end1 - t_start1 + t_elapsed1;  //uns;  Verwenden von micros () t_elapsed2_ul = (t_end2 - t_start2) / 2 + t_elapsed2_ul;  //uns;  mit einer Genauigkeit von 1 us, aufgrund unsigned long-Datentyp Abschneiden, mit Timer2 Zahl t_elapsed2_fl = (t_end2 - t_start2) mit /2.00 + t_elapsed2_fl;  //uns;  Auf eine Genauigkeit von 0,5 us wegen der Verwendung des Float-Datentyps für die Endzeitdifferenz calc;  Beachten Sie, dass ich durch 2.0 dividieren, NICHT 2 t_elapsed3 = t_end3 - t_start3 + t_elapsed3;  //uns;  Auf eine Genauigkeit von 0.5us elapsedTime = millis () - startTime;  // Bestimmt, wie viel Zeit zum Laden des Kondensators benötigt wurde microFarads = ((float) verstrichenTime / ResistorValue) * 1000;  DigitalWrite (chargePin, LOW);  // Stoppt den Ladekondensator pinMode (EntladePin, OUTPUT);  DigitalWrite (Entladungspin, LOW);  // Kondensator entladen, während (analogRead (analogPin)> 0) {// nichts tun, bis der Kondensator entladen ist} pinMode (Entladungspin, INPUT);  // Verhindert, dass der Kondensator lcd.setCursor entlädt (0,3);  Lcd.print ("i:");  Lcd.setCursor (2,3);  Lcd.print ( "");  Lcd.setCursor (2,3);  Lcd.print (i);  ich--;  Verzögerung (100);  } // während i <10 t_elapsed1 = t_elapsed1 / j;  T_elapsed2_ul = t_elapsed2_ul / j;  T_elapsed2_fl = t_elapsed2_fl / j;  T_elapsed3 = t_elapsed3 / j;  Ergebnisse();  // Vor dem Wiederholen eine Sekunde warten} void results () {// Zeigt die Ergebnisse an // Serial.println ("");  // Leerzeichen einfügen // Serial.print (F ("verstrichene Zeit mit micros () ="));  // Serial.print (t_elapsed1);  // Serial.println (F ("us"));  Serial.print (F ("verstrichene Zeit mit get_count () mit unsigned long final Datentyp ="));  Serial.print (t_elapsed2_ul);  Serial.println (F ("us"));  Ergebnis = t_elapsed2_ul / 100000.000;  Lcd.setCursor (0,0);  Lcd.print ("Zeit zum Laden der Cap:");  Lcd.setCursor (0,1);  Lcd.print ( "");  Lcd.setCursor (0,1);  Lcd.print (t_elapsed2_ul);  Lcd.setCursor (10,1);  Lcd.print ("us");  Lcd.setCursor (0,2);  Lcd.print ("Cap-Wert:");  Lcd.setCursor (12,2);  Lcd.print ( "");  Lcd.setCursor (12,2);  Lcd.print (Ergebnis, 4);  Lcd.setCursor (18,2);  Lcd.print ("uF");  // Serial.print (F ("verstrichene Zeit mit get_count () mit float final Datentyp ="));  // Serial.print (t_elapsed2_fl);  // Serial.println (F ("us"));  // Serial.print (F ("verstrichene Zeit mit get_micros () ="));  // Serial.print (t_elapsed3);  // Serial.println (F ("us"));  // Serial.print ("elapseTime millis:");  // Serial.print (elapsedTime);  // Serial.print ("mS");  // Serial.println ( "");  aufrechtzuerhalten.

Schritt 4: Leiterplatte

Kondensatorprüfgerät / Kapazitätsmessgerät

Kondensatorprüfgerät / Kapazitätsmessgerät

Nur für Spaß, entwarf ich eine Platine mit dem Autodesk Schaltungen Software. Im zweiten Bild scheint die Leiterplatte mit einem blauen Dunst bedeckt zu sein, aber dies ist der Kupferguss und wird erzeugt, indem man auf irgendeine der Kupferspuren, die mit Erde verbunden sind, und Ziehen einer Kiste um die Schaltung herum erzeugt.

Ich werde diese Platine nicht bauen, freue mich aber auf den Tag, an dem wir unsere eigenen Komponenten erstellen können, die dann die Nützlichkeit dieser Software über alle anderen erhöhen würden.

Sorry, aber keine Gerber-Dateien sind noch verfügbar, da die Software nicht zulassen, dass sie zu diesem Zeitpunkt exportiert werden.

Schritt 5: Endgültig

Kondensatorprüfgerät / Kapazitätsmessgerät

Wie ich schon sagte, dieses Projekt ist unglaublich einfach - warum sollten wir nicht unsere eigenen Kondensator Tester machen?

Vielleicht auch bauen Sie Ihren eigenen Kondensator oder eine Kapazität Sonde?

Das Foto oben zeigt Charlie, mein treuer 1 Mega Ohm Widerstand und ein 1uF Kondensator getestet.

Bitte Kondensatorprüfgerät / Kapazitätsmessgerät

In den Wettbewerben - rechts oben - Danke!
Related Reading