- Απαιτούμενα υλικά
- Διάγραμμα κυκλώματος
- Μονάδα μέτρησης
- Μονάδα υπολογισμού και οθόνης
- Προγραμματισμός του Arduino
- Πώς να μετρήσετε με μεγαλύτερη ακρίβεια;
- Εργασία και δοκιμές
Ως μηχανικοί ηλεκτρονικών, εξαρτώνται πάντα από μετρητές / όργανα για τη μέτρηση και την ανάλυση της λειτουργίας ενός κυκλώματος. Ξεκινώντας με ένα απλό πολύμετρο σε έναν πολύπλοκο αναλυτή ποιότητας ισχύος ή DSO, όλα έχουν τις δικές τους μοναδικές εφαρμογές. Οι περισσότεροι από αυτούς τους μετρητές είναι άμεσα διαθέσιμοι και μπορούν να αγοραστούν με βάση τις παραμέτρους που πρέπει να μετρηθούν και την ακρίβειά τους. Αλλά μερικές φορές μπορεί να καταλήξουμε σε μια κατάσταση όπου πρέπει να χτίσουμε τους δικούς μας μετρητές. Ας πούμε για παράδειγμα ότι εργάζεστε σε ένα ηλιακό φωτοβολταϊκό έργο και θέλετε να υπολογίσετε την κατανάλωση ισχύος του φορτίου σας, σε τέτοια σενάρια μπορούμε να φτιάξουμε το δικό μας Wattmeter χρησιμοποιώντας μια απλή πλατφόρμα μικροελεγκτή όπως το Arduino.
Η κατασκευή των μετρητών σας όχι μόνο μειώνει το κόστος των δοκιμών, αλλά μας δίνει επίσης χώρο για να διευκολύνουμε τη διαδικασία των δοκιμών. Όπως, ένα wattmeter που κατασκευάστηκε χρησιμοποιώντας το Arduino μπορεί εύκολα να τροποποιηθεί για την παρακολούθηση των αποτελεσμάτων στο Serial monitor και να σχεδιάσει ένα γράφημα στο Serial plotter ή να προσθέσει μια κάρτα SD για αυτόματη καταγραφή των τιμών τάσης, ρεύματος και ισχύος σε προκαθορισμένα διαστήματα. Ακούγεται ενδιαφέρον, σωστά;; Ας ξεκινήσουμε λοιπόν…
Απαιτούμενα υλικά
- Arduino Nano
- LM358 Op-Amp
- 7805 Ρυθμιστής τάσης
- Οθόνη LCD 16 * 2
- 0,22 ohm 2Watt αντίσταση διακλάδωσης
- 10k δοχείο κοπής
- Αντίσταση 10k, 20k, 2.2k, 1k
- Πυκνωτές 0.1uF
- Φορτίο δοκιμής
- Perf board ή breadboard
- Κιτ συγκόλλησης (προαιρετικό)
Διάγραμμα κυκλώματος
Το πλήρες διάγραμμα κυκλώματος του έργου arduino wattmeter δίνεται παρακάτω.
Για ευκολία στην κατανόηση, το κύκλωμα wattmeter arduino χωρίζεται σε δύο μονάδες. Το πάνω μέρος του κυκλώματος είναι η μονάδα μέτρησης και το κάτω μέρος του κυκλώματος είναι η μονάδα υπολογισμού και οθόνης. Για άτομα που είναι νέοι σε αυτόν τον τύπο κυκλωμάτων ακολούθησαν τις ετικέτες. Το παράδειγμα + 5V είναι ετικέτα που σημαίνει ότι όλες οι καρφίτσες με τις οποίες είναι συνδεδεμένη η ετικέτα πρέπει να ληφθούν υπόψη καθώς είναι συνδεδεμένες μεταξύ τους. Οι ετικέτες χρησιμοποιούνται συνήθως για να κάνουν το διάγραμμα κυκλώματος να φαίνεται καθαρό.
Το κύκλωμα έχει σχεδιαστεί για να ταιριάζει σε συστήματα που λειτουργούν μεταξύ 0-24V με ρεύμα 0-1A λαμβάνοντας υπόψη τις προδιαγραφές ενός ηλιακού PV. Αλλά μπορείτε εύκολα να επεκτείνετε το εύρος μόλις καταλάβετε τη λειτουργία του κυκλώματος. Η βασική αρχή πίσω από το κύκλωμα είναι η μέτρηση της τάσης στο φορτίο και το ρεύμα μέσω αυτού για τον υπολογισμό της ισχύος που καταναλώνει. Όλες οι μετρημένες τιμές θα εμφανίζονται σε μια αλφαριθμητική οθόνη LCD 16 * 2.
Στη συνέχεια ας χωρίσουμε το κύκλωμα σε μικρά τμήματα, έτσι ώστε να έχουμε μια σαφή εικόνα για το πώς λειτουργεί το κύκλωμα με εσοχή.
Μονάδα μέτρησης
Η μονάδα μέτρησης αποτελείται από έναν πιθανό διαχωριστή για να μας βοηθήσει να μετρήσουμε την τάση και μια αντίσταση κλεισίματος με μη αντιστρεπτική Op-amp χρησιμοποιείται για να μας βοηθήσει να μετρήσουμε το ρεύμα μέσω του κυκλώματος. Το δυνητικό τμήμα διαχωριστή από το παραπάνω κύκλωμα φαίνεται παρακάτω
Εδώ η τάση εισόδου αντιπροσωπεύεται από Vcc, όπως ειπώθηκε προηγουμένως σχεδιάζουμε το κύκλωμα για εύρος τάσης από 0V έως 24V. Αλλά ένας μικροελεγκτής όπως το Arduino δεν μπορεί να μετρήσει τόσο υψηλές τιμές τάσης. μπορεί να μετρήσει μόνο την τάση από 0-5V. Πρέπει λοιπόν να χαρτογραφήσουμε (να μετατρέψουμε) το εύρος τάσης από 0-24V σε 0-5V. Αυτό μπορεί να γίνει εύκολα χρησιμοποιώντας ένα πιθανό κύκλωμα διαχωριστή όπως φαίνεται παρακάτω. Η αντίσταση 10k και 2.2k μαζί σχηματίζει το πιθανό κύκλωμα διαχωριστή. Η τάση εξόδου ενός δυνητικού διαχωριστή μπορεί να υπολογιστεί χρησιμοποιώντας τους παρακάτω τύπους. Το ίδιο χρησιμοποιείται για να αποφασίσετε την τιμή των αντιστάσεων σας, μπορείτε να χρησιμοποιήσετε την ηλεκτρονική μας αριθμομηχανή για να υπολογίσετε την τιμή της αντίστασης εάν σχεδιάζετε εκ νέου το κύκλωμα.
Vout = (Vin × R2) / (R1 + R2)
Το χαρτογραφημένο 0-5V μπορεί να ληφθεί από το μεσαίο τμήμα που φέρει την ένδειξη Τάση. Αυτή η χαρτογραφημένη τάση μπορεί στη συνέχεια να τροφοδοτηθεί στον Arduino Analog pin αργότερα.
Στη συνέχεια πρέπει να μετρήσουμε το ρεύμα μέσω του LOAD. Όπως γνωρίζουμε οι μικροελεγκτές μπορούν να διαβάζουν μόνο την αναλογική τάση, οπότε πρέπει να μετατρέψουμε κάπως την τιμή του ρεύματος σε τάση. Αυτό μπορεί να γίνει με την απλή προσθήκη μιας αντίστασης (αντίσταση διακλάδωσης) στο μονοπάτι που σύμφωνα με το νόμο του Ohm θα ρίξει μια τιμή τάσης σε αυτήν που είναι ανάλογη με το ρεύμα που ρέει μέσα από αυτό. Η τιμή αυτής της πτώσης τάσης θα είναι πολύ μικρότερη, επομένως χρησιμοποιούμε ένα op-amp για να την ενισχύσουμε. Το κύκλωμα για το ίδιο φαίνεται παρακάτω
Εδώ η τιμή της αντίστασης διακλάδωσης (SR1) είναι 0,22 Ohms. Όπως είπαμε νωρίτερα, σχεδιάζουμε το κύκλωμα για 0-1A, έτσι βάσει του νόμου Ohms μπορούμε να υπολογίσουμε την πτώση τάσης σε αυτήν την αντίσταση η οποία θα είναι περίπου 0,2V όταν ένα μέγιστο ρεύμα 1Α διέρχεται από το φορτίο. Αυτή η τάση είναι πολύ μικρή για να διαβάσει ένας μικροελεγκτής, χρησιμοποιούμε ένα Op-Amp στη λειτουργία Non-Inverting Amplifier για να αυξήσουμε την τάση από 0,2V σε υψηλότερο επίπεδο για να διαβάζει το Arduino.
Το Op-Amp σε λειτουργία μη αναστροφής φαίνεται παραπάνω. Ο ενισχυτής έχει σχεδιαστεί για να έχει κέρδος 21, έτσι ώστε 0,2 * 21 = 4,2V. Οι τύποι για τον υπολογισμό του κέρδους του Op-amp δίνονται παρακάτω, μπορείτε επίσης να χρησιμοποιήσετε αυτήν την ηλεκτρονική αριθμομηχανή κέρδους για να λάβετε την τιμή της αντίστασης σας εάν σχεδιάζετε εκ νέου το κύκλωμα.
Κέρδος = Vout / Vin = 1 + (Rf / Rin)
Εδώ στην περίπτωσή μας η τιμή του Rf είναι 20k και η τιμή του Rin είναι 1k που μας δίνει μια τιμή gian 21. Η ενισχυμένη τάση από το Op-amp δίνεται στη συνέχεια σε ένα φίλτρο RC με αντίσταση 1k και έναν πυκνωτή 0.1uF έως φιλτράρετε τυχόν θόρυβο που είναι συνδεδεμένος. Τέλος, η τάση τροφοδοτείται στη συνέχεια στον αναλογικό πείρο Arduino.
Το τελευταίο μέρος που μένει στη μονάδα μέτρησης είναι το τμήμα ρυθμιστή τάσης. Δεδομένου ότι θα δώσουμε μια μεταβλητή τάση εισόδου, χρειαζόμαστε ένα ρυθμιζόμενο + 5V volt για να λειτουργούν το Arduino και το Op-amp Αυτή η ρυθμιζόμενη τάση θα παρέχεται από τον ρυθμιστή τάσης 7805. Ένας πυκνωτής προστίθεται στην έξοδο για να φιλτράρει τον θόρυβο.
Μονάδα υπολογισμού και οθόνης
Στη μονάδα μέτρησης έχουμε σχεδιάσει το κύκλωμα για να μετατρέψουμε τις παραμέτρους τάσης και ρεύματος σε 0-5V που μπορούν να τροφοδοτηθούν στις αναλογικές ακίδες Arduino. Τώρα σε αυτό το μέρος του κυκλώματος θα συνδέσουμε αυτά τα σήματα τάσης στο Arduino και θα συνδέσουμε επίσης μια αλφαριθμητική οθόνη 16 × 2 με το Arduino έτσι ώστε να μπορούμε να δούμε τα αποτελέσματα. Το κύκλωμα για το ίδιο φαίνεται παρακάτω
Όπως μπορείτε να δείτε, ο πείρος τάσης είναι συνδεδεμένος στον αναλογικό πείρο A3 και ο τρέχων πείρος συνδέεται με τον αναλογικό πείρο A4. Η LCD τροφοδοτείται από το + 5V από το 7805 και συνδέεται με τις ψηφιακές ακίδες του Arduino για να λειτουργεί σε λειτουργία 4-bit. Έχουμε επίσης χρησιμοποιήσει ένα ποτενσιόμετρο (10k) συνδεδεμένο σε Con pin για να διαφοροποιήσουμε την αντίθεση της οθόνης LCD.
Προγραμματισμός του Arduino
Τώρα που έχουμε καλή κατανόηση του υλικού, ας ανοίξουμε το Arduino και να ξεκινήσουμε τον προγραμματισμό. Ο σκοπός του κώδικα είναι να διαβάσει την αναλογική τάση στους ακροδέκτες A3 και A4 και να υπολογίσει την τιμή τάσης, ρεύματος και ισχύος και τελικά να την εμφανίσει στην οθόνη LCD. Το πλήρες πρόγραμμα για να κάνετε το ίδιο δίνεται στο τέλος της σελίδας που μπορεί να χρησιμοποιηθεί ως έχει για το υλικό που συζητήθηκε παραπάνω. Περαιτέρω ο κωδικός χωρίζεται σε μικρά αποσπάσματα και εξηγείται.
Όπως όλα τα προγράμματα ξεκινάμε, ορίζοντας τις καρφίτσες που έχουμε χρησιμοποιήσει. Στο έργο έξω ο ακροδέκτης A3 και A4 χρησιμοποιείται για τη μέτρηση τάσης και ρεύματος αντίστοιχα και οι ψηφιακοί ακροδέκτες 3,4,8,9,10 και 11 χρησιμοποιούνται για τη διασύνδεση της οθόνης LCD με το Arduino
int Read_Voltage = A3; int Read_Current = A4; const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; // Αναφέρετε τον αριθμό pin για σύνδεση LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
Έχουμε επίσης συμπεριλάβει ένα αρχείο κεφαλίδας που ονομάζεται υγρό κρύσταλλο για διασύνδεση της οθόνης LCD με Arduino. Στη συνέχεια, μέσα στη λειτουργία ρύθμισης αρχικοποιούμε την οθόνη LCD και προβάλλουμε ένα εισαγωγικό κείμενο ως "Arduino Wattmeter" και περιμένουμε δύο δευτερόλεπτα πριν το διαγράψουμε. Ο κωδικός για το ίδιο φαίνεται παρακάτω.
άκυρη ρύθμιση () { lcd.begin (16, 2); // Αρχικοποιήστε την οθόνη LCD 16 * 2 lcd.print ("Arduino Wattmeter"); // Γραμμή εισαγωγής μηνύματος 1 lcd.setCursor (0, 1); lcd.print ("- Circuitdigest"); // Καθυστέρηση γραμμής εισαγωγής μηνύματος 2 (2000). lcd.clear (); }
Μέσα στη λειτουργία του κύριου βρόχου, χρησιμοποιούμε τη λειτουργία αναλογικής ανάγνωσης για να διαβάσουμε την τιμή τάσης από τους ακροδέκτες A3 και A4. Όπως γνωρίζουμε το Arduino ADC τιμή εξόδου από 0-1203 δεδομένου ότι έχει 10-bit ADC. Αυτή η τιμή πρέπει στη συνέχεια να μετατραπεί σε 0-5V που μπορεί να γίνει πολλαπλασιάζοντας με (5/1023). Και πάλι νωρίτερα στο υλικό έχουμε χαρτογραφήσει την πραγματική τιμή της τάσης από 0-24V έως 0-5V και την πραγματική τιμή της τρέχουσας φόρμας 0-1A έως 0-5V. Τώρα πρέπει να χρησιμοποιήσουμε έναν πολλαπλασιαστή για να επαναφέρουμε αυτές τις τιμές στην πραγματική τιμή. Αυτό μπορεί να γίνει πολλαπλασιάζοντάς το με μια τιμή πολλαπλασιαστή. Η τιμή του πολλαπλασιαστή μπορεί είτε να υπολογιστεί θεωρητικά χρησιμοποιώντας τους τύπους που παρέχονται στην ενότητα υλικού είτε εάν έχετε ένα γνωστό σύνολο τιμών τάσης και ρεύματος, μπορείτε να τον υπολογίσετε πρακτικά.Ακολούθησα την τελευταία επιλογή γιατί τείνει να είναι πιο ακριβής σε πραγματικό χρόνο. Εδώ λοιπόν η τιμή του πολλαπλασιαστή είναι 6,46 και 0,239. Εξ ου και ο κώδικας μοιάζει παρακάτω
float Voltage_Value = analogRead (Read_Voltage); float Current_Value = analogRead (Read_Current); Voltage_Value = Voltage_Value * (5.0 / 1023.0) * 6.46; Current_Value = Current_Value * (5.0 / 1023.0) * 0,239;
Πώς να μετρήσετε με μεγαλύτερη ακρίβεια;
Ο παραπάνω τρόπος υπολογισμού της τιμής της πραγματικής τάσης και του ρεύματος θα λειτουργήσει καλά. Αλλά υποφέρει από ένα μειονέκτημα, δηλαδή η σχέση μεταξύ της μετρούμενης τάσης ADC και της πραγματικής τάσης δεν θα είναι γραμμική, επομένως ένας πολλαπλασιαστής δεν θα δώσει πολύ ακριβή αποτελέσματα, το ίδιο ισχύει και για το ρεύμα.
Έτσι, για να βελτιώσουμε την ακρίβεια μπορούμε να σχεδιάσουμε το σύνολο των μετρημένων τιμών ADC με πραγματικές τιμές χρησιμοποιώντας ένα γνωστό σύνολο τιμών και στη συνέχεια να χρησιμοποιήσουμε αυτά τα δεδομένα για να σχεδιάσουμε ένα γράφημα και να αντλήσουμε την εξίσωση πολλαπλασιαστή χρησιμοποιώντας τη μέθοδο γραμμικής παλινδρόμησης. Μπορείτε να αναφέρετε τον μετρητή Arduino dB στον οποίο έχω χρησιμοποιήσει μια παρόμοια μέθοδο.
Τέλος, μόλις υπολογίσουμε την τιμή της πραγματικής τάσης και του πραγματικού ρεύματος μέσω του φορτίου, μπορούμε να υπολογίσουμε την ισχύ χρησιμοποιώντας τους τύπους (P = V * I). Στη συνέχεια, εμφανίζουμε και τις τρεις τιμές στην οθόνη LCD χρησιμοποιώντας τον παρακάτω κώδικα.
lcd.setCursor (0, 0); lcd.print ("V ="); lcd.print (Voltage_Value); lcd.print (""); lcd.print ("I ="); lcd.print (Current_Value); float Power_Value = Voltage_Value * Current_Value; lcd.setCursor (0, 1); lcd.print ("Ισχύς ="); lcd.print (Power_Value);
Εργασία και δοκιμές
Για χάρη του σεμιναρίου έχω χρησιμοποιήσει έναν πίνακα για να κολλήσω όλα τα εξαρτήματα όπως φαίνεται στο κύκλωμα. Έχω χρησιμοποιήσει ένα βιδωτό τερματικό Phoenix για να συνδέσω το φορτίο και το κανονικό βαρέλι DC Jack για να συνδέσω την πηγή τροφοδοσίας μου. Η πλακέτα Arduino Nano και η οθόνη LCD είναι τοποθετημένες σε ένα θηλυκό Bergstik έτσι ώστε να μπορούν να επαναχρησιμοποιηθούν εάν απαιτείται αργότερα.
Αφού ετοιμάσετε το υλικό, ανεβάστε τον κωδικό Arduino στον πίνακα Nano. Ρυθμίστε το δοχείο trimmer για να ελέγξετε το επίπεδο αντίθεσης της οθόνης LCD μέχρι να δείτε ένα καθαρό εισαγωγικό κείμενο. Για να ελέγξετε την πλακέτα, συνδέστε το φορτίο στον ακροδέκτη βίδας και την πηγή στην υποδοχή βαρελιών. Η τάση πηγής πρέπει να είναι μεγαλύτερη από 6V για να λειτουργήσει αυτό το έργο, καθώς το Arduino απαιτούσε + 5V για να λειτουργήσει. ΕΑΝ όλα λειτουργούν καλά, θα πρέπει να βλέπετε την τιμή της Τάσης σε όλο το φορτίο και το ρεύμα που διασχίζει στην πρώτη γραμμή της οθόνης LCD και την υπολογισμένη ισχύ που εμφανίζεται στη δεύτερη γραμμή της οθόνης LCD όπως φαίνεται παρακάτω.
Το διασκεδαστικό μέρος της οικοδόμησης κάτι έγκειται στη δοκιμή του για να ελέγξει πόσο μακριά θα λειτουργήσει σωστά. Για να το κάνω αυτό, έχω χρησιμοποιήσει 12V ένδειξη αυτοκινήτου ως φορτίο και το RPS ως πηγή. Δεδομένου ότι το ίδιο το RPS μπορεί να μετρήσει και να εμφανίσει την τιμή του ρεύματος και της τάσης, θα είναι εύκολο για εμάς να διασταυρώσουμε την ακρίβεια και την απόδοση του κυκλώματός μας. Και ναι, χρησιμοποίησα επίσης το RPS μου για τη βαθμονόμηση της πολλαπλασιαστικής μου τιμής, ώστε να πλησιάσω την ακριβή τιμή.
Η πλήρης εργασία βρίσκεται στο βίντεο που δίνεται στο τέλος αυτής της σελίδας. Ελπίζω να καταλάβετε το κύκλωμα και το πρόγραμμα και να μάθετε κάτι χρήσιμο. Εάν έχετε κάποιο πρόβλημα να το κάνετε αυτό, δημοσιεύστε το στην ενότητα σχολίων παρακάτω ή γράψτε στα φόρουμ μας για περισσότερη τεχνική βοήθεια.
Αυτό το έργο Wattmeter που βασίζεται στο Arduino έχει πολλές ακόμη αναβαθμίσεις που μπορούν να προστεθούν για να αυξήσουν την απόδοση στην αυτόματη καταγραφή δεδομένων, στο γράφημα γραφήματος, στην ειδοποίηση σχετικά με την τάση ή σε τρέχουσες καταστάσεις κ.λπ.