- Απαιτούμενα στοιχεία
- Υπολογισμός συχνότητας και επαγωγής
- Διάγραμμα κυκλώματος και επεξήγηση
- Επεξήγηση προγραμματισμού
Όλοι οι ενσωματωμένοι λάτρεις είναι εξοικειωμένοι με το πολύμετρο το οποίο είναι ένα εξαιρετικό εργαλείο για τη μέτρηση της τάσης, του ρεύματος, της αντίστασης κ.λπ. Ένα πολύμετρο μπορεί να τα μετρήσει εύκολα. Αλλά μερικές φορές πρέπει να μετρήσουμε την αυτεπαγωγή και την χωρητικότητα που δεν είναι δυνατόν με ένα κανονικό πολύμετρο. Υπάρχουν μερικά ειδικά πολύμετρα που μπορούν να μετρήσουν την αυτεπαγωγή και την χωρητικότητα αλλά είναι δαπανηρά. Έχουμε ήδη κατασκευάσει μετρητή συχνότητας, μετρητή χωρητικότητας και μετρητή αντίστασης χρησιμοποιώντας το Arduino. Σήμερα λοιπόν πρόκειται να φτιάξουμε ένα Inductance LC Meter χρησιμοποιώντας το Arduino. Σε αυτό το έργο, θα δείξουμε τις τιμές αυτεπαγωγής και χωρητικότητας μαζί με τη συχνότητα πάνω από την οθόνη LCD 16x2. Δίνεται ένα κουμπί στο κύκλωμα, για εναλλαγή μεταξύ της χωρητικότητας και της ένδειξης επαγωγής.
Απαιτούμενα στοιχεία
- Arduino Uno
- 741 opamp IC
- 3v μπαταρία
- Αντίσταση 100 ohm
- Πυκνωτές
- Επαγωγείς
- 1n4007 δίοδος
- 10k αντίσταση
- 10k ποτ
- Παροχή ηλεκτρικού ρεύματος
- Πιέστε το κουμπί
- Breadboard ή PCB
- Σύνδεση καλωδίων
Υπολογισμός συχνότητας και επαγωγής
Σε αυτό το έργο θα μετρήσουμε την αυτεπαγωγή και την χωρητικότητα χρησιμοποιώντας παράλληλα ένα κύκλωμα LC. Αυτό το κύκλωμα είναι σαν δαχτυλίδι ή κουδούνι που αρχίζουν να αντηχούν σε συγκεκριμένη συχνότητα. Όποτε εφαρμόζουμε έναν παλμό, αυτό το κύκλωμα LC θα αρχίζει να αντηχεί και αυτή η συχνότητα συντονισμού έχει τη μορφή αναλογικού (ημιτονοειδούς κύματος), οπότε πρέπει να τον μετατρέψουμε σε κυματοειδές κύμα. Για να το κάνουμε αυτό, εφαρμόζουμε αυτήν την αναλογική συχνότητα συντονισμού στο opamp (741 στην περίπτωσή μας) που θα το μετατρέψει σε κυματοειδές κύμα (συχνότητα) στο 50% του κύκλου λειτουργίας. Τώρα μετράμε τη συχνότητα χρησιμοποιώντας το Arduino και χρησιμοποιώντας κάποιο μαθηματικό υπολογισμό μπορούμε να βρούμε την αυτεπαγωγή ή την χωρητικότητα. Χρησιμοποιήσαμε τον δεδομένο τύπο απόκρισης συχνότητας κυκλώματος LC.
f = 1 / (2 * χρόνος)
όπου ο χρόνος είναι έξοδος του pulseIn () συνάρτηση
τώρα έχουμε συχνότητα κυκλώματος LC:
f = 1/2 * Pi * τετραγωνική ρίζα του (LC)
μπορούμε να το λύσουμε για να πάρουμε αυτεπαγωγή:
f 2 = 1 / (4Pi 2 LC) L = 1 / (4Pi 2 f 2 C) L = 1 / (4 * Pi * Pi * f * f * C)
Όπως ήδη αναφέραμε ότι το κύμα μας είναι ημιτονοειδές κύμα, έτσι έχει την ίδια χρονική περίοδο τόσο σε θετικό όσο και σε αρνητικό πλάτος. Αυτό σημαίνει ότι ο συγκριτής θα το μετατρέψει σε τετράγωνο κύμα με κύκλο λειτουργίας 50% Για να το μετρήσουμε χρησιμοποιώντας τη λειτουργία pulseIn () του Arduino. Αυτή η συνάρτηση θα μας δώσει μια χρονική περίοδο που μπορεί εύκολα να μετατραπεί σε συχνότητα αναστρέφοντας τη χρονική περίοδο. Ως λειτουργία pulseIn μετρά μόνο έναν παλμό, οπότε τώρα για να λάβουμε τη σωστή συχνότητα πρέπει να τον πολλαπλασιάσουμε με το 2. Τώρα έχουμε μια συχνότητα που μπορεί να μετατραπεί σε επαγωγή χρησιμοποιώντας τον παραπάνω τύπο.
Σημείωση: κατά τη μέτρηση της επαγωγής (L1), η τιμή του πυκνωτή (C1) πρέπει να είναι 0,1uF και κατά τη μέτρηση της χωρητικότητας (C1), η τιμή του επαγωγέα (L1) πρέπει να είναι 10 mH.
Διάγραμμα κυκλώματος και επεξήγηση
Σε αυτό το διάγραμμα κυκλώματος μετρητή LC, χρησιμοποιήσαμε το Arduino για τον έλεγχο της λειτουργίας του έργου. Σε αυτό, έχουμε χρησιμοποιήσει ένα κύκλωμα LC. Αυτό το κύκλωμα LC αποτελείται από έναν επαγωγέα και έναν πυκνωτή. Για να μετατρέψουμε τη συχνότητα ημιτονοειδούς συντονισμού σε ψηφιακό ή τετραγωνικό κύμα, χρησιμοποιήσαμε λειτουργικό ενισχυτή, δηλαδή 741. Εδώ πρέπει να εφαρμόσουμε αρνητική τροφοδοσία στο op-amp για να έχουμε ακριβή συχνότητα εξόδου. Έχουμε, λοιπόν, χρησιμοποιήσει μια μπαταρία 3v συνδεδεμένη με αντίστροφη πολικότητα, σημαίνει ότι ο αρνητικός ακροδέκτης 741 είναι συνδεδεμένος με τον αρνητικό ακροδέκτη της μπαταρίας και ο θετικός πείρος της μπαταρίας είναι συνδεδεμένος στη γείωση του υπόλοιπου κυκλώματος. Για περισσότερες διευκρινίσεις δείτε το διάγραμμα κυκλώματος παρακάτω.
Εδώ έχουμε ένα κουμπί για να αλλάξουμε τον τρόπο λειτουργίας είτε μετράμε την αυτεπαγωγή ή την χωρητικότητα. Μια οθόνη LCD 16x2 χρησιμοποιείται για να δείξει αυτεπαγωγή ή χωρητικότητα με τη συχνότητα του κυκλώματος LC. Χρησιμοποιείται δοχείο 10k για τον έλεγχο της φωτεινότητας της οθόνης LCD. Το κύκλωμα τροφοδοτείται με τη βοήθεια της τροφοδοσίας Arduino 5v και μπορούμε να τροφοδοτήσουμε το Arduino με 5v χρησιμοποιώντας προσαρμογέα USB ή 12v.
Επεξήγηση προγραμματισμού
Το μέρος προγραμματισμού αυτού του έργου LC Meter είναι πολύ εύκολο. Ο πλήρης κωδικός Arduino δίνεται στο τέλος αυτού του άρθρου.
Πρώτα πρέπει να συμπεριλάβουμε βιβλιοθήκη για LCD και να δηλώσουμε μερικές καρφίτσες και μακροεντολές.
#περιλαμβάνω
Μετά από αυτό, στη λειτουργία ρύθμισης έχουμε αρχικοποιήσει την επικοινωνία LCD και σειριακής για να δείξουμε τις μετρημένες τιμές μέσω της οθόνης LCD και της σειριακής οθόνης.
άκυρη ρύθμιση () { #ifdef serial Serial.begin (9600); #endif lcd.begin (16, 2)? pinMode (freqIn, INPUT); pinMode (φόρτιση, ΕΞΟΔΟΣ); pinMode (λειτουργία, INPUT_PULLUP); lcd.print ("Χρήση μετρητή LC"); lcd.setCursor (0, 1); lcd.print ("Arduino"); καθυστέρηση (2000); lcd.clear (); lcd.print ("Circuit Digest"); καθυστέρηση (2000); }
Στη συνέχεια, σε λειτουργία βρόχου , εφαρμόστε έναν παλμό σταθερής χρονικής περιόδου στο κύκλωμα LC που θα φορτίσει το κύκλωμα LC. Μετά την αφαίρεση του παλμού το κύκλωμα LC αρχίζει να αντηχεί. Στη συνέχεια, διαβάζουμε τη μετατροπή τετραγωνικού κύματος, προερχόμενη από op-amp, χρησιμοποιώντας τη λειτουργία pulseIn () και τη μετατρέπουμε πολλαπλασιάζοντας με το 2. Εδώ έχουμε πάρει και μερικά δείγματα αυτού. Έτσι υπολογίζεται η συχνότητα:
void loop () { για (int i = 0; i
Αφού αποκτήσαμε την τιμή συχνότητας, τα έχουμε μετατρέψει σε επαγωγικότητα χρησιμοποιώντας ένα δεδομένο κομμάτι κώδικα
χωρητικότητα = 0.1E-6; επαγωγή = (1 / (χωρητικότητα * συχνότητα * συχνότητα * 4. * 3.14159 * 3.14159)) * 1.E6; #ifdef serial Serial.print ("Ind:"); if ( inductance > = 1000) { Serial.print (inductance / 1000); Serial.println ("mH"); } αλλιώς { Serial.print (inductance); Serial.println ("uH"); } #Endif lcd.setCursor (0, 1)? lcd.print ("Ind:"); if ( inductance > = 1000) { lcd.print (inductance / 1000); lcd.print ("mH"); } αλλιώς { lcd.print (inductance); lcd.print ("uH"); } }
Και χρησιμοποιώντας δεδομένο κώδικα υπολογίσαμε την χωρητικότητα.
εάν (Bit.flag) { inductance = 1.E-3; χωρητικότητα = ((1 / (αυτεπαγωγή * συχνότητα * συχνότητα * 4. * 3.14159 * 3.14159)) * 1.E9); εάν ((int) χωρητικότητα <0) χωρητικότητα = 0; #ifdef serial Serial.print ("Χωρητικότητα:"); Serial.print (χωρητικότητα, 6); Serial.println ("uF"); #endif lcd.setCursor (0, 1)? lcd.print ("Cap:"); εάν (χωρητικότητα> 47) { lcd.print ((χωρητικότητα / 1000)); lcd.print ("uF"); } αλλιώς { lcd.print (χωρητικότητα); lcd.print ("nF"); } }
Έτσι υπολογίσαμε τη συχνότητα, την χωρητικότητα και την επαγωγικότητα χρησιμοποιώντας το Arduino και την εμφανίσαμε σε οθόνη LCD 16x2.