Πίνακας περιεχομένων:
- Βήμα 1: Τρέχοντες μετασχηματιστές
- Βήμα 2: Κλιματισμός σήματος
- Βήμα 3: Τροφοδοσία
- Βήμα 4: Αναλογικοί σε ψηφιακοί μετατροπείς
- Βήμα 5: Μικροελεγκτής
- Βήμα 6: Συναρμολόγηση
- Βήμα 7: Μεταφόρτωση κώδικα
- Βήμα 8: Βαθμονόμηση
- Βήμα 9: Τέλος
Βίντεο: AC Current Monitoring Data Logger: 9 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Γεια σε όλους, καλώς ήλθατε στο πρώτο μου εκπαιδευτικό! Τη μέρα είμαι μηχανικός δοκιμών για μια εταιρεία που προμηθεύει εξοπλισμό βιομηχανικής θέρμανσης, τη νύχτα είμαι ένας μανιώδης χομπίστης τεχνολογίας και DIY'er. Μέρος της εργασίας μου περιλαμβάνει τον έλεγχο της απόδοσης των θερμαντήρων, με την ευκαιρία αυτή ήθελα να μπορώ να παρακολουθώ την τρέχουσα κλήρωση RMS 8 συσκευών σε 1000 ώρες και να καταγράφω τα δεδομένα για να γράψω τα αποτελέσματα αργότερα. Έχω πρόσβαση σε έναν καταγραφέα δεδομένων, αλλά ήταν ήδη δεσμευμένος σε άλλο έργο και χρειαζόμουν κάτι χαμηλού κόστους, οπότε αποφάσισα να βάλω μαζί αυτό το βασικό καταγραφικό δεδομένων.
Το έργο χρησιμοποιεί ένα Arduino Uno για την ανάγνωση αναλογικών αισθητήρων μέσω αναλογικού σε ψηφιακό μετατροπέα (ADC) και καταγράφει τα δεδομένα με χρονική σήμανση σε κάρτα SD. Υπάρχει πολλή θεωρία και υπολογισμός που εμπλέκονται στο σχεδιασμό των κυκλωμάτων, οπότε αντί να εξηγήσω τα πάντα, θα σας δείξω πώς να το φτιάξετε. Εάν ενδιαφέρεστε να δείτε το πλήρες χτύπημα, ενημερώστε με στα σχόλια και θα σας εξηγήσω περαιτέρω.
ΣΗΜΕΙΩΣΗ:
Είχα πολλές ερωτήσεις σχετικά με τους υπολογισμούς True RMS. Αυτή η συσκευή χρησιμοποιεί ανορθωτή μισού κύματος για να συλλάβει την κορυφή του κύματος, η οποία στη συνέχεια μπορεί να πολλαπλασιαστεί με 0,707 για να δώσει RMS. Συνεπώς, θα δώσει ένα ακριβές αποτέλεσμα μόνο με γραμμικά φορτία (δηλαδή το ρεύμα που μετριέται είναι ένα καθαρό ημιτονοειδές κύμα). Οι μη γραμμικές παροχές ή τα φορτία που δίνουν τριγωνικές, ορθογώνιες ή άλλες κυματομορφές χωρίς κόλπο δεν θα δώσουν έναν πραγματικό υπολογισμό RMS. Αυτή η συσκευή μετρά το ρεύμα εναλλασσόμενου ρεύματος μόνο που δεν έχει σχεδιαστεί για τη μέτρηση της τάσης, συνεπώς δεν υπολογίζει ή μετρά τον συντελεστή ισχύος. Παρακαλούμε δείτε το άλλο μου οδηγό για το πώς να δημιουργήσετε έναν μετρητή συντελεστή ισχύος που μπορεί να χρησιμοποιηθεί για να γίνει αυτό. Πολλοί άνθρωποι έχουν επίσης πει ότι μια απευθείας σύζευξη εναλλασσόμενου ρεύματος με κεντρική γραμμή 2,5V είναι καλύτερη, ωστόσο αυτό δημιουργεί επιπλοκές καθώς περιλαμβάνει αρκετά γρήγορο ψηφιακό δείγμα δειγματοληψίας, ισχυρό μέσο όρο/εξομάλυνση δεδομένων κ.λπ. και η αβεβαιότητα που εισάγει είναι πολύ μεγαλύτερη από τη μέτρηση η ακατέργαστη αξία. Προσωπικά, προτιμώ λύσεις υλικού και απλούστερο κώδικα όπου είναι δυνατόν, οπότε δεν με ενδιαφέρει αυτή η μέθοδος. Από άποψη ακρίβειας πιστεύω ότι αυτό είναι πολύ καλύτερο από το τελευταίο και θα δείτε αργότερα στα αποτελέσματά μου ότι υπάρχει συντελεστής παλινδρόμησης κοντά στο 1.0 μετά τη βαθμονόμηση.
Βήμα 1: Τρέχοντες μετασχηματιστές
Αυτό το έργο χρησιμοποιεί μετασχηματιστή ρεύματος HMCT103C 5A/5MA. Έχει αναλογία 1: 1000 στροφών που σημαίνει για κάθε 5Α ρεύματος που ρέει μέσω του αγωγού, 5mA θα ρέει μέσω του CT. Μια αντίσταση πρέπει να συνδεθεί στους δύο ακροδέκτες του CT για να μετρηθεί μια τάση σε αυτό. Σε αυτήν την περίπτωση χρησιμοποίησα μια αντίσταση 220 Ohm, επομένως χρησιμοποιώντας τον νόμο του Ohm V = IR, η έξοδος του CT θα είναι 1,1 Volt AC, για κάθε 5mA ρεύματος CT (ή κάθε 5A μετρημένου ρεύματος). Τα CT συγκολλήθηκαν σε λωρίδες με την αντίσταση και λίγο σύρμα οργάνων για να φτιάξουν αγωγούς πτήσης. Τερμάτισα τα καλώδια με βύσματα ήχου 3,5 mm.
Εδώ είναι το φύλλο δεδομένων για τον μετασχηματιστή ρεύματος
Φύλλο δεδομένων
Βήμα 2: Κλιματισμός σήματος
Το σήμα από το CT θα είναι ασθενές, οπότε πρέπει να ενισχυθεί. Για αυτό, κόλλησα μαζί ένα απλό κύκλωμα ενισχυτή χρησιμοποιώντας έναν ενισχυτή διπλής σιδηροτροχιάς uA741. Σε αυτήν την περίπτωση, το κέρδος ορίζεται ως 150 χρησιμοποιώντας τον τύπο Rf / Rin (150k / 1k). Ωστόσο, το σήμα εξόδου από τον ενισχυτή είναι ακόμα AC, η δίοδος στην έξοδο του op-amp διακόπτει τον αρνητικό μισό κύκλο του AC και περνά τη θετική τάση σε έναν πυκνωτή 0.1uF για να εξομαλύνει το κύμα σε ένα κυματισμένο σήμα DC. Παρακάτω είναι τα μέρη που αποτελούν το κύκλωμα:
- V1-Αυτό είναι αυθαίρετο σε αυτό το διάγραμμα, απλώς αντιπροσωπεύει την τάση σήματος που τροφοδοτείται στη μη αναστρέψιμη είσοδο του op-amp.
- R1 - Αυτό είναι γνωστό ως αντίσταση ανάδρασης (Rf) και έχει οριστεί σε 150k
- R2 - Αυτό είναι γνωστό ως αντίσταση εισόδου (Rin) και έχει οριστεί σε 1k
- 741 - Αυτό είναι το ενσωματωμένο κύκλωμα uA741
- VCC - Θετική ράγα τροφοδοσίας +12V
- VEE - Αρνητική ράγα παροχής -12V
- D1 - Είναι η δίοδος σήματος διόρθωσης κύματος haf 1N4001
- C3 - Αυτός ο πυκνωτής διατηρεί το σήμα DC για καθορισμένο χρόνο
Στην εικόνα 2 μπορείτε να δείτε ότι συναρμολογήθηκε χρησιμοποιώντας Veroboard και κονσέρβα χάλκινο σύρμα. 4 οπές ανοίχτηκαν για στάση PCB ώστε να μπορούν να στοιβάζονται (επειδή υπάρχουν οκτώ κανάλια πρέπει να υπάρχουν οκτώ κυκλώματα ενισχυτή συνολικά.
Βήμα 3: Τροφοδοσία
Εάν δεν θέλετε να το φτιάξετε από την αρχή, μπορείτε να αγοράσετε τον πίνακα προσυναρμολογημένο από την Κίνα, όπως αυτός που απεικονίζεται παραπάνω, αλλά θα χρειαστείτε ακόμα τον μετασχηματιστή 3VA (κατεβάστε 240V έως 12V). Το εικονιζόμενο μου κόστισε περίπου 2,50 λίρες
Για να τροφοδοτήσω το έργο, αποφάσισα να φτιάξω το δικό μου τροφοδοτικό διπλής ράγας 12VDC. Αυτό ήταν βολικό καθώς οι ενισχυτές απαιτούν +12V, 0V, -12V και το Arduino Uno μπορεί να δεχθεί οποιαδήποτε τροφοδοσία έως 14 VDC. Παρακάτω είναι τα μέρη που αποτελούν το κύκλωμα:
- V1 - Αυτό αντιπροσωπεύει την τροφοδοσία από την πρίζα 240V 50Hz
- T1 - Αυτός είναι ένας μικρός μετασχηματιστής 3VA για τον οποίο είπα ψέματα. Είναι σημαντικό ο μετασχηματιστής να έχει μια κεντρική βρύση στο δευτερεύον που θα συνδεθεί με 0V, δηλαδή γείωση
- D1 έως D4 - Αυτός είναι ένας ανορθωτής γεφυρών πλήρους κύματος που χρησιμοποιεί διόδους 1N4007
- C1 & C2 - ηλεκτρολυτικοί πυκνωτές 35V 2200uF (πρέπει να είναι 35V καθώς το δυναμικό μεταξύ θετικού και αρνητικού θα φτάσει τα 30V)
- U2 - LM7812, είναι ένας ρυθμιστής θετικής τάσης 12V
- U3 - LM7912, είναι ένας ρυθμιστής αρνητικής τάσης 12V (προσέξτε να σημειώσετε τις διαφορές των ακίδων μεταξύ του IC 78xx και 79xx!)
- C3 & C4 - 100nF Εξομαλυντικοί πυκνωτές 25V ηλεκτρολυτικοί
- Πυκνωτές κεραμικών δίσκων C5 & C6 - 10uF
Συγκόλλησα τα εξαρτήματα σε λωρίδες και ένωσα τα κάθετα κομμάτια με γυμνό μονόπυρηνο κονσερβοποιημένο σύρμα χαλκού. Η εικόνα 3 παραπάνω δείχνει το τροφοδοτικό DIY, συγγνώμη που υπάρχουν πολλοί άλτες στη φωτογραφία!
Βήμα 4: Αναλογικοί σε ψηφιακοί μετατροπείς
Το Arduino Uno διαθέτει ήδη ενσωματωμένο ADC 10-bit, ωστόσο υπάρχουν μόνο 6 αναλογικές είσοδοι. Ως εκ τούτου, επέλεξα να χρησιμοποιήσω δύο ADC breakouts με το 16-bit ADS1115. Αυτό επιτρέπει στα 2^15 = 32767 bits να αντιπροσωπεύουν επίπεδα τάσης από 0-4.096V (4.096V είναι η τάση λειτουργίας του breakout), αυτό σημαίνει ότι κάθε bit αντιπροσωπεύει 0.000125V! Επίσης, επειδή χρησιμοποιεί το δίαυλο I2C σημαίνει ότι μπορούν να αντιμετωπιστούν έως και 4 ADC, επιτρέποντας έως και 16 κανάλια να παρακολουθούνται εάν είναι επιθυμητό.
Προσπάθησα να απεικονίσω τις συνδέσεις χρησιμοποιώντας το Fritzing, ωστόσο λόγω των περιορισμών δεν υπάρχουν προσαρμοσμένα μέρη για την απεικόνιση μιας Γεννήτριας Σήματος. Το μοβ σύρμα συνδέεται με την έξοδο του κυκλώματος ενισχυτή, το μαύρο σύρμα δίπλα του δείχνει ότι όλα τα κυκλώματα ενισχυτή πρέπει να έχουν κοινή βάση. Έτσι, χρησιμοποίησα ένα breadboard για να δείξω πώς έφτιαξα τα σημεία ισοπαλίας. Ωστόσο, το πραγματικό μου έργο έχει τα ξεμπλοκάρισμα να κάθεται σε γυναικείες κεφαλίδες, κολλημένα στο Veroboard και όλα τα σημεία ισοπαλίας είναι συγκολλημένα στο veroboard.
Βήμα 5: Μικροελεγκτής
Όπως αναφέρθηκε παραπάνω, ο ελεγκτής που επέλεξα ήταν ένα Arduino Uno, αυτή ήταν μια καλή επιλογή, καθώς έχει πολλά ενσωματωμένα και λειτουργικά χαρακτηριστικά που διαφορετικά θα χρειάζονταν να κατασκευαστούν χωριστά. Επιπλέον, είναι συμβατό με πολλές ειδικά κατασκευασμένες «ασπίδες». Σε αυτήν την περίπτωση, απαιτούσα ένα ρολόι πραγματικού χρόνου για τη χρονική σήμανση όλων των αποτελεσμάτων και έναν συντάκτη καρτών SD για την καταγραφή των αποτελεσμάτων σε ένα αρχείο.csv ή.txt. Ευτυχώς, η ασπίδα καταγραφής δεδομένων Arduino έχει και τα δύο σε μια ασπίδα που ωθεί την εφαρμογή στην αρχική πλακέτα Arduino χωρίς επιπλέον συγκόλληση. Η ασπίδα είναι συμβατή με τις βιβλιοθήκες RTClib και κάρτας SD, επομένως δεν απαιτείται ειδικός κώδικας.
Βήμα 6: Συναρμολόγηση
Χρησιμοποίησα PVC μεσαίας/χαμηλής πυκνότητας 5 χιλιοστών (μερικές φορές γνωστό ως αφρώδες υλικό) για να καταστρέψω τα περισσότερα εξαρτήματά μου και να το κόψω σε βολικό μέγεθος με ένα μαχαίρι χειροτεχνίας. Όλα τα εξαρτήματα κατασκευάστηκαν με σπονδυλωτό τρόπο για το πρωτότυπο καθώς επιτρέπει την αφαίρεση μεμονωμένων εξαρτημάτων εάν τα πράγματα πάνε στραβά, ωστόσο δεν είναι τόσο αποτελεσματικό ή τακτοποιημένο όσο ένα χαραγμένο PCB (περαιτέρω εργασία) αυτό σημαίνει επίσης πολλά καλώδια άλματος μεταξύ τα συστατικά.
Βήμα 7: Μεταφόρτωση κώδικα
Ανεβάστε τον κώδικα στο Arduino ή λάβετε τον κωδικό από το repo μου στο Github
github.com/smooth-jamie/datalogger.git
Βήμα 8: Βαθμονόμηση
Θεωρητικά το μετρημένο ρεύμα θα είναι αποτέλεσμα πολλών συνδυασμών:
Μετρούμενοι ενισχυτές = (((a *0.45)/150)/(1.1/5000))/1000 όπου 'a' είναι η τάση σήματος από τον ενισχυτή
0,45 είναι η τιμή rms του Vout του κυκλώματος ενισχυτή, 150 είναι το κέρδος op-amp (Rf / Rin = 150k / 1k), 1,1 είναι η έξοδος τάσης πλήρους κλίμακας του CT όταν οι μετρημένοι ενισχυτές είναι 5A, 5000 είναι απλά 5A σε mA, και 1000 είναι η ποσότητα στροφών στον μετασχηματιστή. Αυτό μπορεί να απλοποιηθεί σε:
Μετρημένοι ενισχυτές = (b * 9.216) / 5406555 όπου b είναι η αναφερόμενη τιμή ADC
Αυτός ο τύπος δοκιμάστηκε χρησιμοποιώντας το Arduino 10-bit ADC και μια διαφορά μεταξύ των τιμών του πολύμετρου και των τιμών που δημιουργήθηκαν από το Arduino παρατηρήθηκε κατά 11%, η οποία είναι μια απαράδεκτη απόκλιση. Η προτιμώμενη μέθοδος για τη βαθμονόμηση είναι η καταγραφή της τιμής ADC έναντι του ρεύματος σε ένα πολύμετρο σε ένα υπολογιστικό φύλλο και η σχεδίαση ενός πολυωνύμου τρίτης τάξης. Από αυτό ο κυβικός τύπος μπορεί να χρησιμοποιηθεί για να δώσει καλύτερα αποτελέσματα κατά τον υπολογισμό του μετρημένου ρεύματος:
(ax^3) + (bx^2) + (cx^1) + d
Οι συντελεστές a, b, c και d υπολογίζονται στο excel από έναν απλό πίνακα δεδομένων, x είναι η τιμή ADC που έχετε.
Για να λάβω τα δεδομένα, χρησιμοποίησα κεραμική μεταβλητή αντίσταση 1k (ρεοστάτη) και μετασχηματιστή 12v για να μειώσω την τάση εναλλασσόμενου ρεύματος από 240V, κάτι που θα μου δώσει τη δυνατότητα να δημιουργήσω μια μεταβλητή πηγή ρεύματος από 13mA έως 100mA. Όσο περισσότερα σημεία συλλέγονται τόσο το καλύτερο, ωστόσο θα πρότεινα τη συλλογή 10 σημείων δεδομένων για να αποκτήσετε μια ακριβή τάση. Το συνημμένο πρότυπο Excel θα υπολογίσει τους συντελεστές για εσάς, είναι απλά θέμα εισαγωγής τους στον κώδικα arduino
Στη γραμμή 69 του κώδικα θα δείτε πού να εισαγάγετε τους συντελεστές
float chn0 = ((7.30315 * pow (10, -13)) * pow (adc0, 3) + (-3.72889 * pow (10, -8) * pow (adc0, 2) + (0.003985811 * adc0) + (0.663064521)));
που είναι ίδιος με τον τύπο στο φύλλο 1 του αρχείου excel:
y = 7E-13x3-4E-08x2 + 0.004x + 0.663
Όπου x = adc0 οποιουδήποτε καναλιού κάνετε βαθμονόμηση
Βήμα 9: Τέλος
Τοποθετήστε το σε ένα περίβλημα έργου. Ολοκλήρωσα την τροφοδοσία με έναν διακόπτη εναλλαγής για να ενεργοποιήσετε/απενεργοποιήσετε ολόκληρο το τροφοδοτικό και μια υποδοχή IEC "σχήμα 8" για την είσοδο ρεύματος. Βιδώστε τα όλα μαζί και είστε έτοιμοι να το δοκιμάσετε.
Περισσότερη δουλεια
Το όλο εγχείρημα χλευάστηκε αρκετά γρήγορα, οπότε υπάρχουν πολλά περιθώρια βελτίωσης, χαραγμένο κύκλωμα, καλύτερα εξαρτήματα. Ιδανικά το όλο πράγμα θα ήταν χαραγμένο ή συγκολλημένο σε FR4 παρά σε φορτία άλτες. Όπως είπα νωρίτερα, υπάρχουν πολλά πράγματα που δεν έχω αναφέρει, αλλά αν υπάρχει κάτι συγκεκριμένο που θα θέλατε να μάθετε, ενημερώστε με στα σχόλια και θα ενημερώσω το instrucable!
Ενημέρωση 2016-12-18
Πρόσθεσα τώρα μια οθόνη LCD 16x2 χρησιμοποιώντας το "σακίδιο πλάτης" I2C για την παρακολούθηση των πρώτων τεσσάρων καναλιών, ενώ θα προσθέσω ένα άλλο για την παρακολούθηση των τεσσάρων τελευταίων όταν φτάσει μέσω της ανάρτησης.
Μονάδες
Αυτό το έργο έγινε δυνατό από όλους τους συγγραφείς των Βιβλιοθηκών που χρησιμοποιήθηκαν στο σκίτσο μου Arduino, συμπεριλαμβανομένης της βιβλιοθήκης DS3231, της βιβλιοθήκης Adafruit ADS1015 και της βιβλιοθήκης Arduino SD
Συνιστάται:
GPS Cap Data Logger: 7 βήματα (με εικόνες)
GPS Cap Data Logger: Εδώ είναι ένα υπέροχο πρόγραμμα για το Σαββατοκύριακο, εάν είστε σε πεζοπορία ή κάνετε μεγάλες βόλτες με ποδήλατο και χρειάζεστε έναν καταγραφέα δεδομένων GPS για να παρακολουθείτε όλα τα ταξίδια/βόλτες που κάνατε … Μόλις ολοκληρώσετε την κατασκευή και κατέβασε τα δεδομένα από τη μονάδα GPS του tr
DIY GPS Data Logger for You Next Drive/Hiking Trail: 11 βήματα (με εικόνες)
DIY GPS Data Logger for You Next Drive/Hiking Trail: Αυτό είναι ένα GPS Data Logger που μπορείτε να χρησιμοποιήσετε για πολλαπλούς σκοπούς, για παράδειγμα αν θέλετε να καταγράψετε τη μεγάλη διαδρομή που κάνατε το Σαββατοκύριακο για να δείτε τα χρώματα του φθινοπώρου. ή έχετε ένα αγαπημένο μονοπάτι που επισκέπτεστε το φθινόπωρο κάθε χρόνο και
The Ultimate High Altitude Weather Balloon Data Logger: 9 Βήματα (με εικόνες)
The Ultimate High Altitude Weather Balloon Data Logger: Καταγράψτε δεδομένα καιρού με υψηλό υψόμετρο με τον τελικό καταγραφέα δεδομένων καιρού με μπαλόνια καιρού. Ένα αερόστατο καιρού μεγάλου υψομέτρου, γνωστό και ως μπαλόνι μεγάλου υψομέτρου ή HAB, είναι ένα τεράστιο μπαλόνι γεμάτο ήλιο. Αυτά τα μπαλόνια είναι μια πλατφόρμα
Nest Thermostat History Logger Data: 6 βήματα (με εικόνες)
Nest Thermostat History Logger Data: Ο Nest θερμοστάτης παρακολουθεί τη θερμοκρασία, την υγρασία και τη χρήση του κλιβάνου/εναλλασσόμενου ρεύματος και οι χρήστες μπορούν να βλέπουν ιστορικά δεδομένα μόνο για 10 ημέρες. Wantedθελα να συλλέξω ιστορικά δεδομένα (> 10 ημέρες) και συνάντησα σενάριο google spreadsheets που φωλιάζει pings κάθε φορά
Cardio Data Logger: 7 βήματα (με εικόνες)
Cardio Data Logger: Αν και στις μέρες μας είναι διαθέσιμες πολλές φορητές συσκευές (έξυπνες ζώνες, smartwatches, smartphones, …) που μπορούν να ανιχνεύσουν τον καρδιακό ρυθμό (HR) και να πραγματοποιήσουν ανάλυση ιχνών, συστήματα που βασίζονται σε ιμάντες στήθους (όπως αυτό στο επάνω μέρος της εικόνας) είναι άγιος