Για τη μέτρηση και την έγκαιρη προσαρμογή στη μνήμη flash μεγάλων διεργασιών που εκφράζονται σε ρεύμα και τάση, όπως η εκφόρτιση των μπαταριών και των μπαταριών. Είναι δυνατή η ταυτόχρονη ρύθμιση της θερμοκρασίας.
Παράμετροι σήματος εισόδου:
τρέχον I = 25mka - 2a
τάση U = 0 - 5V
θερμοκρασία t = -30 - + 120gС
ο χρόνος ρυθμίζεται από το εσωτερικό ενσωματωμένο ρολόι χαλαζία
Διατροφή:
από την πηγή 12v / 0.3a
I κατανάλωση <70ma
Κατασκευή:
Ο μετρητής συναρμολογείται σε δύο μονάδες Arduino Το Nano είναι συνδεδεμένο μέσω πρωτοκόλλου ModBus, δείτε το διάγραμμα. Ένα Arduino είναι τοποθετημένο σε έναν ανυψωτήρα με τερματικά μπλοκ. Οι μονάδες συνδέονται μέσω συνδετήρων. Τα σύρματα και τα ίδια τα δομοστοιχεία είναι μονωμένα από θερμικά καμπυλωτά σφάλματα.
Τα σήματα εισόδου τροφοδοτούνται μέσω κοχλιωτών ακροδεκτών
Στον μπροστινό πίνακα υπάρχει ένας δείκτης υγρών κρυστάλλων των μετρημένων παραμέτρων και οι ενδεικτικές λυχνίες LED που δείχνουν την αλλαγή ενός εύρους ή εκτός περιοχής.
Ο μετρητής συναρμολογείται σε περίβλημα 145x85x40.
Ο αισθητήρας θερμοκρασίας εκτελείται μέσω του συνδετήρα. Η μετάδοση σήματος οργανώνεται σε γραμμή δύο συρμάτων. Αντίσταση τροφοδοσίας στο βύσμα.
Για ευκολία προγραμματισμού, οι υποδοχές USB Arduino είναι εξωτερικές.
Σχέδιο
Το πρόγραμμα μπορεί να μεταφορτωθεί από αρχείο Meter.rar
Δύο Arduino επιλέχθηκαν για δύο λόγους: το Arduino Nano ήταν διαθέσιμο και όχι αρκετό σε μια μνήμη, και σχεδιάζεται να προσθέσει τους αισθητήρες περαιτέρω. Επιπλέον, ήθελα να κατακτήσω την ένωση Arduino, γι 'αυτό επιλέχτηκε το πρωτόκολλο δικτύου ModBus. Το ModBus ορίζει έναν κύριο επεξεργαστή - Master και διάφορους σκλάβους - Slave. Σε αυτό το έργο, υπάρχει ένας Σκλάβος, πάνω του είναι μια μέτρηση της θερμοκρασίας, της τάσης και του ρεύματος. Στο Master - ένα ρολόι και μια εγγραφή σε ένα αρχείο. Η μνήμη σάρκας πρέπει να είναι μικρότερη από 4 GB και να διαμορφώνεται σε FAT.
Δεδομένου ότι σχεδιάστηκε η μέτρηση των ρευμάτων από μΑ σε Α, τα ρεύματα μετρούνται σε 4 κλίμακες (βλέπε πίνακα Ranges), ο Arduino Slave παρακολουθεί τη μετάβαση από τη μία περιοχή στην άλλη, σχηματίζοντας τον αντίστοιχο κωδικό διακλάδωσης για το τρέχον μετρημένο ρεύμα από το M1-2. Όταν πλησιάζετε το όριο της περιοχής, ενεργοποιείται το επόμενο εύρος, δηλαδή το τρέχον κλειδί είναι απενεργοποιημένο από το T1-1 --- T2-2 και το επόμενο είναι ενεργοποιημένο. Σε αυτή την περίπτωση, η μέγιστη διακλάδωση = 100ohm είναι συνεχώς ενεργοποιημένη. Εάν υπάρχει υπέρβαση της τιμής στην περιοχή, τα LED D8, D9 ανάβουν.
Μετρήστε τη μέτρηση ρεύματος σε εύρη τιμών
Uout_max = 5ν KusOU = 20 Δ = Ish / 1024
Το κέρδος του λειτουργικού ενισχυτή M1-2 τίθεται = 20 και στη συνέχεια δεν αλλάζει. (Στον μπροστινό πίνακα τοποθετείται εσφαλμένα).
Η τάση μετράται μέσω ενός ακόλουθου επί του OU M1-1.Τα κυκλώματα εισόδου του op-amp και του Arduino προστατεύονται από διόδους (οι διόδους zener βρίσκονται στο Arduino, αλλά δεν γνωρίζω τις παραμέτρους, επομένως είναι προτιμότερο να το παρακάνουμε).
Η οθόνη LCD1602 έχει επιλεγεί ως δείκτης. Συνδέεται με το Master Arduino. Επιπλέον, η ενδεικτική λυχνία μπορεί να συνδεθεί και με τους δύο Arduino απλά με την εναλλαγή των βυσμάτων Arduino. (Όταν η συσκευή είναι απενεργοποιημένη.) Η σύνδεση με το Arduino Slave εμφανίζεται με μια διακεκομμένη γραμμή (η οποία χρησιμοποιήθηκε κατά την εγγραφή προγραμμάτων). Με την κύρια σύνδεση (στο Master) της LCD1602, μπορείτε να εμφανίσετε 4 οθόνες, μεταβαίνοντας το ρυθμιστικό διακ πτη p1-p2.
Οθόνη1: από πάνω από τις πληροφορίες υπηρεσίας της ανταλλαγής μεταξύ Arduino: C είναι ο αριθμός των ανταλλαγών μεταξύ Arduino, E είναι ο αριθμός των σφαλμάτων κατά την ανταλλαγή Sh-Αρ. Της παράκαμψης?
κατώτερη μέρα - μήνα.
Οθόνη2: U1, I1, Αρ. Διακλάδωσης, (0.00 δεξιό αποθεματικό κάτω)
Οθόνη3: U2, θερμοκρασία, (αναμονή)
Οθόνη4: Ενεργοποίηση εγγραφής SD, χρόνος εγγραφής σε ώρες, αριθμός γραμμής σε αρχείο,
00- κατάσταση ρεύματος1 0-κανονική 1-εκτός εύρους, κατάσταση τάσης1, σταθερή ισχύς εξωτερικής πηγής
Όταν συνδέεστε σε οθόνες Slave - 2. Ο διακόπτης p3 επιτρέπει την εγγραφή στη μνήμη Micro Flesh.
Η παροχή ρεύματος επιλέγεται από 12v για να ληφθούν γραμμικά χαρακτηριστικά του op-amp (για να αποφευχθούν μπλοκαρίσματα στα άκρα της περιοχής). Για τον ίδιο λόγο, χρησιμοποιήθηκε αρνητική τάση από τον διαμορφωτή σε KR1006VI1. Η χρήση γεννήτριας Arduino παράγει μια λιγότερο σταθερή τάση. Για να δημιουργηθεί ισχύς 5V, χρησιμοποιήθηκε ένας μετατροπέας βηματισμού, αλλά μπορείτε να το κάνετε χωρίς την παροχή + 12V στις είσοδοι VIN Arduino Nano.
Ο κοινός προγραμματισμός Arduino έχει χαρακτηριστικά, αφού η επικοινωνία με τον υπολογιστή είναι απασχολημένη με το πρωτόκολλο ModBus. Για να φορτώσετε ένα σκίτσο σε ένα από τα Arduino, από την άλλη πρέπει να ενεργοποιήσετε το σήμα επαναφοράς RST. Για να το κάνετε αυτό, χρησιμοποιήστε τα jumper Block S, Block M. Ή πατήστε και κρατήστε πατημένα τα κουμπιά επαναφοράς των άρθρων Arduino μέχρι να ολοκληρωθεί η λήψη, κάτι που είναι λιγότερο βολικό και υπάρχει πιθανότητα να καταστραφεί η λήψη. Δεδομένου ότι σχεδιάζω να επεκτείνω τη συσκευή μου USB Arduino, έσυρα την υπόθεση έξω.
Το τρανζίστορ Τ5 (FR024N) υποτίθεται ότι χρησιμοποιείται για να ενεργοποιήσει / απενεργοποιήσει μια διαδικασία, για παράδειγμα, μια εκφόρτιση μιας μπαταρίας. Αν και δεν εμπλέκεται.
Λογισμικό.
Μέγιστη μάσηση είναι ότι οι αρχάριοι (και εγώ ο ίδιος) δεν θα βλάψουν και δεν μπορούν να χρησιμεύσουν ως υλικό αναφοράς, αλλά δεν ισχυρίζονται ότι είναι η βέλτιστη.
Οι βιβλιοθήκες και οι κώδικες προγραμμάτων βρίσκονται στο αρχείο Izmeritel PRO.rar.
Σκίτσο για το master ModBus_Master10_SD_T_10_2. Σκίτσο για slave ModBus-Slave10_T_UI_10_2. Η υπόλοιπη βιβλιοθήκη.
Προγραμματισμένο στο περιβάλλον του Arduino1.6.0. Περιέχει βιβλιοθήκες SD, LiquidCrystal, Wire δεν χρειάζεται να κατεβάσετε.
Η ώρα σε ώρες ρυθμίζεται στο πρόγραμμα Εγκατάστασης ως εξής. Ρυθμίστε το πραγματικό χρόνο και φορτώστε το σκίτσο. Στη συνέχεια, σχολιάστε τις γραμμές για να ορίσετε την ημερομηνία και την ώρα και να φορτώσετε ξανά το σκίτσο.
Το αποτέλεσμα του προγράμματος θα είναι η ένδειξη του χρόνου και της ημερομηνίας (ώρες), του ρεύματος, της τάσης, της θερμοκρασίας στην LCD1602 και της καταγραφής αυτών των παραμέτρων στο αρχείο IZMER1.TXT στη μνήμη Micro Flesh. Το αρχείο θα περιέχει έναν πίνακα αυτού του είδους:
0; 04/13/2019; 00:11:10? Zap (η) = 0,05. tc = 29.31. U1 = 1,71. I1 = 0,00; Ρ1 = 0,00; U2 = 0.14; DiaI norma; Πρότυπο DiaU. C = 762
1. 04/13/2019; 00:11:16? Zap (η) = 0,05. tc = 29.38. U1 = 1,79; I1 = 0,00; Ρ1 = 0,00; U2 = 0.19; DiaI norma; Πρότυπο DiaU. C = 788
2. 04/13/2019; 00:11:22? Zap (η) = 0,05. tc = 29.38. U1 = 1,54; I1 = 0,00; Ρ1 = 0,00; U2 = 0.16; DiaI norma; Πρότυπο DiaU. C = 813
3; 04/13/2019; 00:11:28? Zap (η) = 0,05. tc = 29.31. U1 = 1,30. I1 = 0,00; Ρ1 = 0,00; U2 = 0.17; DiaI norma; Πρότυπο DiaU. C = 839
4; 04/13/2019; 00:11:34? Zap (η) = 0,05. tc = 29.31. U1 = 1,90; I1 = 0,00; Ρ1 = 0,00; U2 = 0.17; DiaI norma; Πρότυπο DiaU. C = 864
5; 04/13/2019; 00:11:40? Zap (η) = 0,05. tc = 29.25; U1 = 1,53; I1 = 0,00; Ρ1 = 0,00; U2 = 0.16; DiaI norma; Πρότυπο DiaU. C = 890
6; 04/13/2019; 00:11:46? Zap (η) = 0,05. tc = 29.19. U1 = 2.03; I1 = 0,00; Ρ1 = 0,00; U2 = 0.18; DiaI norma; Πρότυπο DiaU. C = 915
7; 04/13/2019; 00:11:52? Zap (η) = 0,05. tc = 29,13; U1 = 1,81; I1 = 0,00; Ρ1 = 0,00; U2 = 0.18; DiaI norma; Πρότυπο DiaU. C = 941
8; 04/13/2019; 00:11:58? Zap (η) = 0,05. tc = 29.00; U1 = 1,30. I1 = 0,00; Ρ1 = 0,00; U2 = 0.16; DiaI norma; Πρότυπο DiaU. C = 966
9; 04/13/2019; 00:12:04? Zap (η) = 0,07. tc = 28.94. U1 = 1,25; I1 = 0,00; Ρ1 = 0,00; U2 = 0.17; DiaI norma; Πρότυπο DiaU. C = 992
10; 04/13/2019; 00:12:10? Zap (η) = 0,07. tc = 29.00; U1 = 1,85; I1 = 0,00; Ρ1 = 0,00; U2 = 0.16; DiaI norma; Πρότυπο DiaU. C = 1017
11; 04/13/2019; 00:12:16? Zap (η) = 0,07. tc = 29.00; U1 = 1,21. I1 = 0,00; Ρ1 = 0,00; U2 = 0.18; DiaI norma; Πρότυπο DiaU. C = 1043
12; 04/13/2019; 00:12:23? Zap (η) = 0,07. tc = 28.94. U1 = 1,55. I1 = 0,00; Ρ1 = 0,00; U2 = 0.18; DiaI norma; Πρότυπο DiaU. C = 1068
13; 04/13/2019; 00:12:29? Zap (η) = 0,07. tc = 28,88. U1 = 1,82. I1 = 0,00; Ρ1 = 0,00; U2 = 0.16; DiaI norma; Πρότυπο DiaU. C = 1094
14; 04/13/2019; 00:12:35? Zap (η) = 0,07. tc = 28,88. U1 = 1,30. I1 = 0,00; Ρ1 = 0,00; U2 = 0.18; DiaI norma; Πρότυπο DiaU. C = 1119
όπου βρίσκονται οι στήλες n / a. Ημερομηνία ώρα χρόνος εγγραφής σε ώρες. θερμοκρασία μετρημένη τάση U1. μετρημένο ρεύμα I1. τη δεύτερη μετρούμενη τάση U2. πληροφορίες σχετικά με την έξοδο / απουσία της περιοχής μέτρησης. πληροφορίες σχετικά με τον αριθμό των ανταλλαγών μεταξύ του Arduino.
Το διάστημα μέτρησης εγγραφής επιλέχθηκε για 6 δευτερόλεπτα, αλλά είναι εύκολο να το αλλάξετε αντικαθιστώντας την τιμή της #define CYCLE_TIME_F3000 σταθερά με την άλλη με τον τύπο Tsec = Constant (ms) * 2/1000 στο Master.
Επιπλέον, αυτός ο πίνακας μπορεί να παρουσιαστεί με τη μορφή ωραίων γραφημάτων.
Κατά τη σύνταξη προγραμμάτων χρησιμοποίησα υλικά. Εκφράζω την ευγνωμοσύνη μου στον συντάκτη.