Πίνακας περιεχομένων:
- Βήμα 1: Ενότητες
- Βήμα 2: STM32 NUCLEO-L432KC
- Βήμα 3: Επίδειξη
- Βήμα 4: Συναρμολόγηση
- Βήμα 5: Πρόγραμμα
- Βήμα 6: Βιβλιοθήκες
- Βήμα 7: Πηγαίος κώδικας
- Βήμα 8: Αρχεία
Βίντεο: Μετρητής στροφών με STM32: 8 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Αν και είναι κάπως ενοχλητικό να αγοράζετε (επειδή δεν είναι διαθέσιμο σε πολλά καταστήματα στο Διαδίκτυο), θεωρώ απαραίτητο να συζητήσω το STM32 L432KC. Αυτό το τσιπ αξίζει ιδιαίτερη αγάπη, καθώς είναι ULTRA LOW POWER. Ωστόσο, για όσους δεν κατέχουν το STM32, μπορεί να αντικατασταθεί σε αυτό το έργο από το Arduino Uno. Για να το κάνετε αυτό, απλώς αλλάξτε τον πείρο της εισόδου διακοπής.
Ας δημιουργήσουμε στη συνέχεια έναν μετρητή στροφών ανά λεπτό χρησιμοποιώντας το STM32 L432KC και έναν υπέρυθρο αισθητήρα. Αυτό το ίδιο πρόγραμμα μπορεί επίσης να χρησιμοποιηθεί για τη μέτρηση της ταχύτητας του ανέμου. Η λειτουργία χαμηλής ισχύος αυτού του μικροελεγκτή είναι ιδανική για IOT.
Βήμα 1: Ενότητες
Για το έργο μας σήμερα, χρησιμοποιούμε το 8ψήφιο MAX7219CWG, καθώς και τη μονάδα υπερύθρων.
Βήμα 2: STM32 NUCLEO-L432KC
Βήμα 3: Επίδειξη
Στη συναρμολόγησή μας, έχουμε το STM32, την οκταψήφια οθόνη και την είσοδο παλμού. Η υπέρυθρη κάρτα διαθέτει φωτοτρανζίστορ και LED που πιάνει το φως αναπηδώντας από μια λευκή κορδέλα. Αυτή η ταινία είναι προσαρτημένη σε έναν τροχό και, σε κάθε στροφή, θα παράγει έναν παλμό, ο οποίος θα συλληφθεί από τη διακοπή STM32.
Έχουμε μια δίοδο και έναν πυκνωτή στη διάταξη που χρησιμοποιήθηκαν για να αποτρέψουν το θόρυβο του σήματος ανάγνωσης ταινίας να φτάσει στο STM32, κάτι που θα το έκανε να ερμηνεύσει το on και off.
Η επίδειξη δείχνει το έργο μας, καθώς και τον μετρητή Minipa (και οι δύο σε λειτουργία).
Βήμα 4: Συναρμολόγηση
Βήμα 5: Πρόγραμμα
Θα κάνουμε ένα πρόγραμμα στο οποίο η μονάδα υπερύθρων θα ενεργοποιεί μια διακοπή στο STM32 L432KC κάθε "στροφή" και θα κάνουμε τους υπολογισμούς για να εμφανίσουμε το RPM στην οθόνη.
Βήμα 6: Βιβλιοθήκες
Προσθέστε την ακόλουθη βιβλιοθήκη "DigitLedDisplay".
Απλώς αποκτήστε πρόσβαση στο "Sketch >> Include Libraries >> Manage Libraries …"
Βήμα 7: Πηγαίος κώδικας
Βιβλιοθήκες και μεταβλητές
Ας ξεκινήσουμε τον πηγαίο κώδικα, συμπεριλαμβανομένης της βιβλιοθήκης DigitLedDisplay. Θα δείξουμε το αντικείμενο εμφάνισης. Ρυθμίζω τον πείρο διακοπής, ο οποίος θα είναι 12. Επίσης, εισάγω έναν πτητικό τελεστή τόσο για τον μετρητή RPM όσο και για τον χρόνο, προκειμένου να αποφευχθούν τυχόν προβλήματα σύγκρουσης.
/ * Συμπεριλάβετε τη βιβλιοθήκη DigitLedDisplay */#περιλαμβάνουν "DigitLedDisplay.h"/ * Arduino Pin to Display Pin 7 to DIN, 6 to CS, 5 to CLK */// DigitLedDisplay ld = DigitLedDisplay (7, 6, 5); // arduino DigitLedDisplay ld = DigitLedDisplay (4, 2, 3); // STM32 L432KC int pin = 12; // pino de interrupção (módulo IR) πτητικό ανυπόγραφο int rpm; // contador de rpm πτητικό ανυπόγραφο για μεγάλο χρονικό διάστημα. //ρυθμός
Ρύθμιση
Στο πρόγραμμα Εγκατάστασης (Setup), ρυθμίζουμε τη λειτουργία εμφάνισης, καθώς και τη διακοπή ως Αύξηση.
void setup () {Serial.begin (115200); / * Ρυθμίστε τη φωτεινότητα min: 1, max: 15 */ ld.setBright (10); / * Ορίστε τον αριθμό ψηφίων */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); rpm = 0; timeold = millis (); }
Βρόχος
Τέλος, καθορίζουμε το διάστημα 1 σε 1 λεπτό για την ενημέρωση της οθόνης. Αφού καθαρίσουμε την οθόνη, εκτυπώνουμε το RPM. Εκτελούμε τη συνάρτηση που θα καλέσει η διακοπή. Υπολογίζουμε το RPM και τον χρόνο ενημέρωσης.
void loop () {delay (1000); ld.clear (); ld.printDigit (σ.α.λ.) } void interruptPin () {rpm = 60*1000/(millis () - timeold); timeold = millis (); }
Βήμα 8: Αρχεία
Κατεβάστε τα αρχεία:
ΕΓΩ ΔΕΝ
Συνιστάται:
Τρόπος χρήσης μετατροπέα στροφών DC σε DC LM2596: 8 βήματα
Πώς να χρησιμοποιήσετε το μετατροπέα σφαλμάτων DC σε DC LM2596: Αυτό το σεμινάριο θα δείξει πώς να χρησιμοποιήσετε το μετατροπέα Buck LM2596 για να ενεργοποιήσετε συσκευές που απαιτούν διαφορετικές τάσεις. Θα δείξουμε ποιοι είναι οι καλύτεροι τύποι μπαταριών για χρήση με το μετατροπέα και πώς να λάβετε περισσότερες από μία εξόδους από τον μετατροπέα (indi
Απλός μετρητής πυκνωτή Autorange / μετρητής χωρητικότητας με Arduino και στο χέρι: 4 βήματα
Απλός μετρητής πυκνωτή Autorange / μετρητής χωρητικότητας με Arduino και στο χέρι: Γεια! Για αυτήν τη μονάδα φυσικής χρειάζεστε:* τροφοδοτικό με 0-12V* έναν ή περισσότερους πυκνωτές* μία ή περισσότερες αντιστάσεις φόρτισης* χρονόμετρο* πολύμετρο τάσης μέτρηση* arduino nano* οθόνη 16x2 I²C* αντιστάσεις 1 / 4W με 220, 10k, 4.7M και
Έλεγχος στροφών για Mini Motor Dc: 11 βήματα (με εικόνες)
Έλεγχος στροφών για Mini Motor Dc: Περιστροφή ανά λεπτό, συνοπτικά είναι μια ταχύτητα περιστροφής που εκφράζεται σε περιστροφές λεπτό. τα εργαλεία για τη μέτρηση των στροφών χρησιμοποιούν συνήθως στροφόμετρο. Πέρυσι βρήκα ένα ενδιαφέρον έργο κατασκευασμένο από το electro18, και είναι η έμπνευσή μου διδάσκουσα, ήταν τρελός
Ο τελικός οδηγός για τη δημιουργία φθηνών πλαισίων πολλαπλών στροφών: 7 βήματα
Ο απόλυτος οδηγός για τη δημιουργία φθηνών πλαισίων πολλαπλών στροφών: Γεια σας παιδιά! Πολύ καιρό δεν βλέπω. Να λοιπόν πώς πάει, ψώνιζα στο ebay για ανταλλακτικά όταν βλέπω όλα αυτά τα μάλλον αδύναμα και κουτσά τετράπλευρα τετράπλευρα hexa και octa, καθώς και y6 και y4 καρέ που πηγαίνουν οπουδήποτε από 800-6500 rs. Σκέφτηκα να χτίσω
Αυτόνομος έλεγχος στροφών στροφών κινητήρα χρησιμοποιώντας σύστημα ανατροφοδότησης από ταχύμετρο βασισμένο σε IR: 5 βήματα (με εικόνες)
Αυτόνομος έλεγχος στροφών κινητήρα χρησιμοποιώντας σύστημα ανατροφοδότησης από ταχύμετρο βασισμένο σε IR: Υπάρχει πάντα ανάγκη αυτοματοποίησης μιας διαδικασίας, είτε απλής/τερατώδους. Πήρα την ιδέα να κάνω αυτό το έργο από μια απλή πρόκληση που αντιμετώπισα ενώ βρήκα μέθοδοι ποτίσματος/άρδευσης του μικρού μας κομματιού γης. Το πρόβλημα της μη τρέχουσας γραμμής τροφοδοσίας