Πίνακας περιεχομένων:
- Βήμα 1: Επιλέξτε ένα Sigal Wire
- Βήμα 2: Επεκτείνετε το Wire στο Arduino Board
- Βήμα 3: Ανάλυση σήματος
- Βήμα 4: Κωδικοποιήστε την ανάλυση σήματος
- Βήμα 5: Προσδιορίστε ένα φίλτρο
- Βήμα 6: Φιλτράρισμα: Μέρος 1
- Βήμα 7: Φιλτράρισμα: Μέρος 2
- Βήμα 8: Φιλτράρισμα: Μέρος 3
- Βήμα 9: Φιλτράρισμα: Μέρος 4
Βίντεο: Χρησιμοποιήστε το Arduino για να εμφανίσετε RPM μηχανής: 10 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Αυτός ο οδηγός θα περιγράψει τον τρόπο με τον οποίο χρησιμοποίησα ένα Arduino UNO R3, μια οθόνη LCD 16x2 με I2C και μια λωρίδα LED που θα χρησιμοποιηθεί ως μετρητής στροφών κινητήρα και μετατόπιση φωτός στο μονοπάτι Acura Integra. Γράφεται με όρους κάποιου με κάποια εμπειρία ή έκθεση στο λογισμικό Arduino ή την κωδικοποίηση γενικά, το μαθηματικό λογισμικό MATLAB και τη δημιουργία ή την τροποποίηση ηλεκτρικών κυκλωμάτων. Στο μέλλον αυτό μπορεί να αναθεωρηθεί για να είναι πιο εύκολο να κατανοηθεί για κάποιον με μικρή έως καθόλου εμπειρία με αυτά τα θέματα.
Βήμα 1: Επιλέξτε ένα Sigal Wire
Θα χρειαστεί να λάβετε ένα σήμα που συσχετίζεται με τις στροφές του κινητήρα. Είναι δυνατόν να προστεθεί ένα σύστημα που μετρά τις στροφές του κινητήρα, αλλά είναι πολύ πιο πρακτικό να πατήσετε σε ένα υπάρχον καλώδιο που μεταφέρει πληροφορίες για τις στροφές του κινητήρα. Ένα μόνο αυτοκίνητο μπορεί να έχει πολλαπλές πηγές για αυτό και μπορεί να διαφέρει πολύ από έτος σε έτος σε ένα μοντέλο οχήματος. Για χάρη αυτού του σεμιναρίου θα χρησιμοποιήσω το παράδειγμα του αυτοκινήτου μου, ένα κομμάτι τροποποιημένο 2000 Acura Integra LS. Βρήκα στον κινητήρα μου (B18B1 με OBD2) υπάρχει μια αχρησιμοποίητη τάση που είναι 12V υψηλή και πέφτει στα 0V με την ολοκλήρωση μιας πλήρους περιστροφής.
Πράγματα που θα σας βοηθήσουν να εντοπίσετε ένα πιθανό σήμα στροφών κινητήρα:
- Διάγραμμα καλωδίωσης για το αυτοκίνητό σας
- Αναζήτηση φόρουμ για το όχημά σας που περιλαμβάνει σήματα κινητήρα/ECU
- Ένας φιλικός μηχανικός ή λάτρης του αυτοκινήτου
Βήμα 2: Επεκτείνετε το Wire στο Arduino Board
Μόλις επιλέξετε ένα κατάλληλο σήμα, θα χρειαστεί να το επεκτείνετε σε όποιο μέρος και αν τοποθετήσετε τον πίνακα Arduino. Αποφάσισα να τοποθετήσω το δικό μου μέσα στο όχημα εκεί που ήταν το ραδιόφωνο, έτσι έβγαλα το νέο καλώδιο από τον κινητήρα, μέσα από μια λαστιχένια σχάρα στον τοίχο της φωτιάς, και ακριβώς στην περιοχή του ραδιοφώνου. Δεδομένου ότι υπάρχει ήδη άφθονος αριθμός οδηγιών για την απογύμνωση, τη συγκόλληση και την προστασία της καλωδίωσης, δεν θα εξηγήσω αυτήν τη διαδικασία.
Βήμα 3: Ανάλυση σήματος
Εδώ μπορεί να περιπλέκονται τα πράγματα. Η γενική κατανόηση της ανάλυσης και των ελέγχων σήματος θα σας βοηθήσει πολύ, αλλά είναι εφικτό με λίγες γνώσεις.
Το καλώδιο σήματος που επιλέγεται πιθανότατα δεν θα φτύσει την ακριβή τιμή των στροφών του κινητήρα. Θα πρέπει να διαμορφωθεί και να τροποποιηθεί ώστε να δίνει τον ακριβή αριθμό στροφών ανά λεπτό του κινητήρα που θέλετε. Λόγω του γεγονότος ότι κάθε διαφορετικό καλώδιο αυτοκινήτου και σήματος που επιλέξατε μπορεί να είναι διαφορετικό, από αυτό το σημείο και μετά θα εξηγήσω πώς χρησιμοποίησα το σήμα θέσης από τον διανομέα στο Integra μου.
Το σήμα μου είναι κανονικά 12V και πέφτει στα 0V όταν ολοκληρώνω μία πλήρη περιστροφή. Εάν γνωρίζετε το χρόνο για να ολοκληρώσετε μια πλήρη περιστροφή ή έναν πλήρη κύκλο, αυτό μπορεί εύκολα να μεταφραστεί σε περιστροφές/λεπτό χρησιμοποιώντας ορισμένες βασικές έννοιες.
1 / (δευτερόλεπτα ανά κύκλο) = κύκλοι ανά δευτερόλεπτο ή Hz
Περιστροφές ανά λεπτό = Hz * 60
Βήμα 4: Κωδικοποιήστε την ανάλυση σήματος
Αυτή η μέθοδος απαιτεί τον χρόνο που απαιτείται για να ολοκληρωθεί το σήμα εισόδου για έναν πλήρη κύκλο. Ευτυχώς, το λογισμικό Arduino IDE έχει μια εντολή που κάνει ακριβώς αυτό, το PulseIn.
Αυτή η εντολή θα περιμένει ένα σήμα για να περάσει ένα όριο, θα αρχίσει να μετράει και θα σταματήσει να μετράει όταν το κατώφλι ξαναπεραστεί. Υπάρχουν μερικές λεπτομέρειες που πρέπει να σημειωθούν κατά τη χρήση της εντολής, οπότε θα συμπεριλάβω έναν σύνδεσμο προς πληροφορίες του PulseIn εδώ:
Το PulseIn θα επιστρέψει μια τιμή σε μικροδευτερόλεπτα και για να κρατήσει τα μαθηματικά απλά αυτό θα πρέπει να μετατραπεί αμέσως σε κανονικά δευτερόλεπτα. Μετά τα μαθηματικά στο προηγούμενο βήμα, αυτή η χρονική διάρκεια μπορεί να εξομοιωθεί απευθείας σε RPM.
Σημείωση: μετά από δοκιμή και λάθος ανακάλυψα ότι ο διανομέας ολοκληρώνει δύο περιστροφές για κάθε περιστροφή του στροφαλοφόρου άξονα του κινητήρα, οπότε απλώς διαιρούσα την απάντησή μου με 2 για να το εξηγήσω.
Βήμα 5: Προσδιορίστε ένα φίλτρο
Εάν είστε τυχεροί, το σήμα σας δεν θα έχει «θόρυβο» (διακυμάνσεις) και οι στροφές του κινητήρα σας θα είναι ακριβείς. Στην περίπτωσή μου, υπήρχε πολύς θόρυβος από τον διανομέα που συχνά έδινε τάσεις μακριά από αυτό που αναμενόταν. Αυτό μετατρέπεται σε πολύ ψευδείς μετρήσεις της πραγματικής ταχύτητας του κινητήρα. Αυτός ο θόρυβος θα πρέπει να φιλτραριστεί.
Μετά από κάποια ανάλυση σήματος, σχεδόν όλος ο θόρυβος ήρθε σε συχνότητες (Hz) πολύ υψηλότερες από αυτές που έβγαζε ο ίδιος ο κινητήρας (κάτι που ισχύει για τα περισσότερα πραγματικά δυναμικά συστήματα). Αυτό σημαίνει ότι ένα φίλτρο χαμηλής διέλευσης είναι ο ιδανικός υποψήφιος για να το φροντίσει αυτό.
Ένα φίλτρο χαμηλής διέλευσης επιτρέπει τη διέλευση χαμηλών συχνοτήτων (επιθυμητό) και εξασθενεί τις υψηλές συχνότητες (ανεπιθύμητες).
Βήμα 6: Φιλτράρισμα: Μέρος 1
Ο σχεδιασμός του φίλτρου μπορεί να γίνει με το χέρι, ωστόσο η χρήση του MATLAB θα το επιταχύνει σημαντικά εάν έχετε πρόσβαση στο λογισμικό.
Ένα φίλτρο χαμηλής διέλευσης μπορεί να εξομοιωθεί με μια συνάρτηση μεταφοράς (ή κλάσμα) στον τομέα Laplace (τομέας συχνοτήτων). Η συχνότητα εισόδου θα πολλαπλασιαστεί με αυτό το κλάσμα και η έξοδος είναι ένα φιλτραρισμένο σήμα που έχει μόνο τις πληροφορίες που θέλετε να χρησιμοποιήσετε.
Η μόνη μεταβλητή στη συνάρτηση είναι το tau. Το Tau είναι ίσο με 1 / Ωμέγα, όπου το Ωμέγα είναι η συχνότητα διακοπής που θέλετε (πρέπει να είναι σε ακτίνια ανά δευτερόλεπτο). Η συχνότητα διακοπής είναι το όριο όπου οι συχνότητες υψηλότερες από αυτές θα αφαιρεθούν και οι συχνότητες χαμηλότερες από αυτές θα διατηρηθούν.
Ρυθμίζω τη συχνότητα διακοπής ίση με RPM που ο κινητήρας μου δεν θα φτάσει ποτέ (990 RPM ή 165 Hz). Τα γραφήματα FFT δείχνουν περίπου ποιες συχνότητες έφερε το ακατέργαστο σήμα μου και τις συχνότητες που βγήκαν από το φίλτρο.
Βήμα 7: Φιλτράρισμα: Μέρος 2
Εδώ το MATLAB χρησιμοποιήθηκε ξανά για χάρη του χρόνου. Ορίζεται η συχνότητα διακοπής και από αυτό εμφανίζεται η συνάρτηση μεταφοράς που προκύπτει. Λάβετε υπόψη ότι αυτό το κλάσμα ισχύει μόνο για τον τομέα Laplace και δεν μπορεί να χρησιμοποιηθεί απευθείας σε μικροελεγκτή με βάση το χρόνο, όπως το Arduino UNO R3.
Βήμα 8: Φιλτράρισμα: Μέρος 3
Το MATLAB έχει μια εντολή που μετατρέπει μια συνεχή συνάρτηση (πεδίο συχνότητας) σε μια διακριτή συνάρτηση (χρονικός τομέας). Η έξοδος αυτής της εντολής παρέχει μια εξίσωση που μπορεί εύκολα να ενσωματωθεί στον κώδικα Arduino IDE.
Βήμα 9: Φιλτράρισμα: Μέρος 4
Στο σκίτσο του Arduino, συμπεριλάβετε τις μεταβλητές u και y πριν από τη ρύθμιση. Η εντολή float ορίζει απλώς τον τρόπο με τον οποίο η μεταβλητή θα αποθηκεύει δεδομένα (πράγματα όπως η μέγιστη τιμή, δεκαδικοί αριθμοί, κλπ …) και ένας σύνδεσμος για περισσότερες πληροφορίες θα παρέχεται εδώ: https://www.arduino.cc/reference/en/language /varia…
Στο βρόχο όπου λαμβάνει χώρα η μετατροπή από το ακατέργαστο σήμα στις στροφές του κινητήρα, συμπεριλάβετε τη μεταβλητή u και την πολλαπλή εξίσωση y. Υπάρχουν πολλοί τρόποι για να το χρησιμοποιήσετε, αλλά η μεταβλητή u πρέπει να οριστεί ίση με το ακατέργαστο σήμα εισόδου που μετριέται και η μεταβλητή y θα είναι η φιλτραρισμένη τιμή.
Συνιστάται:
Επαναχρησιμοποίηση της επιφάνειας αφής του παλιού φορητού υπολογιστή για τον έλεγχο μιας βηματικής μηχανής: 11 βήματα (με εικόνες)
Επαναχρησιμοποιήστε το Touchpad του Old Laptop για τον έλεγχο ενός Stepper Motor: Έφτιαξα αυτό το έργο πριν από μερικούς μήνες. Λίγες μέρες πριν, δημοσίευσα ένα βίντεο του έργου στο r/Arduino στο Reddit. Βλέποντας τους ανθρώπους να ενδιαφέρονται για το έργο, αποφάσισα να κάνω αυτό το Instructable όπου έχω κάνει κάποιες αλλαγές στον κώδικα Arduino
Χρησιμοποιήστε έναν κινητήρα DC Treadmill DC και έναν ελεγκτή ταχύτητας PWM για ηλεκτρικά εργαλεία: 13 βήματα (με εικόνες)
Χρησιμοποιήστε έναν κινητήρα DC Treadmill DC και έναν ελεγκτή ταχύτητας PWM για ηλεκτρικά εργαλεία: Τα ηλεκτρικά εργαλεία όπως οι μεταλλικοί μύλοι και οι τόρνοι, οι πρέσες τρυπανιών, τα πριόνια, τα τριβεία και άλλα μπορεί να απαιτούν. Κινητήρες 5HP έως 2HP με δυνατότητα ρύθμισης της ταχύτητας διατηρώντας παράλληλα τη ροπή .Συμπτωματικά οι περισσότεροι διάδρομοι χρησιμοποιούν κινητήρα VDC 80-260 με
Χρησιμοποιήστε την Cortana και το Arduino για να ελέγξετε LGB Reds ή Ledstrips με τη φωνή σας!: 4 βήματα (με εικόνες)
Χρησιμοποιήστε το Cortana και το Arduino για τον έλεγχο των RGB Leds ή των Ledstrips με τη φωνή σας! Αυτό γίνεται από την εφαρμογή CoRGB, η οποία διατίθεται δωρεάν στο κατάστημα εφαρμογών των Windows. Αυτή η εφαρμογή είναι μέρος του έργου μου CortanaRoom. Όταν τελειώσεις με το μυαλό
Χρησιμοποιήστε 1 αναλογική είσοδο για 6 κουμπιά για Arduino: 6 βήματα
Χρησιμοποιήστε 1 αναλογική είσοδο για 6 κουμπιά για Arduino: Έχω αναρωτηθεί συχνά πώς θα μπορούσα να λάβω περισσότερες ψηφιακές εισόδους για το Arduino μου. Πρόσφατα μου ήρθε στο μυαλό ότι θα έπρεπε να μπορώ να χρησιμοποιήσω μία από τις Αναλογικές Εισόδους για την εισαγωγή πολλαπλών ψηφιακών εισόδων. Έκανα μια γρήγορη αναζήτηση και βρήκα πού ήταν οι άνθρωποι
Χρησιμοποιήστε SSH και XMing για να εμφανίσετε προγράμματα X από υπολογιστή Linux σε υπολογιστή Windows: 6 βήματα
Χρησιμοποιήστε SSH και XMing για να εμφανίσετε προγράμματα X από υπολογιστή Linux σε υπολογιστή Windows: Εάν χρησιμοποιείτε Linux στην εργασία και Windows στο σπίτι ή αντίστροφα, ενδέχεται μερικές φορές να χρειαστεί να συνδεθείτε στον υπολογιστή στην άλλη τοποθεσία σας και εκτέλεση προγραμμάτων. Λοιπόν, μπορείτε να εγκαταστήσετε έναν διακομιστή X και να ενεργοποιήσετε τη σήραγγα SSH με τον πελάτη SSH και έναν