Πίνακας περιεχομένων:

Μέτρηση ταχύτητας κινητήρα χρησιμοποιώντας Arduino: 6 βήματα
Μέτρηση ταχύτητας κινητήρα χρησιμοποιώντας Arduino: 6 βήματα

Βίντεο: Μέτρηση ταχύτητας κινητήρα χρησιμοποιώντας Arduino: 6 βήματα

Βίντεο: Μέτρηση ταχύτητας κινητήρα χρησιμοποιώντας Arduino: 6 βήματα
Βίντεο: Πώς να ελέγξετε τον ενεργοποιητή χρησιμοποιώντας το Arduino - Robojax 2024, Ιούλιος
Anonim
Μέτρηση ταχύτητας κινητήρα χρησιμοποιώντας Arduino
Μέτρηση ταχύτητας κινητήρα χρησιμοποιώντας Arduino
Μέτρηση ταχύτητας κινητήρα χρησιμοποιώντας Arduino
Μέτρηση ταχύτητας κινητήρα χρησιμοποιώντας Arduino
Μέτρηση ταχύτητας κινητήρα χρησιμοποιώντας Arduino
Μέτρηση ταχύτητας κινητήρα χρησιμοποιώντας Arduino

Είναι δύσκολο να μετρήσω τις στροφές του κινητήρα;; Δεν νομίζω. Εδώ είναι μια απλή λύση.

Μόνο ένας αισθητήρας IR και το Arduino στο κιτ σας μπορούν να το κάνουν.

Σε αυτήν την ανάρτηση θα δώσω ένα απλό σεμινάριο που εξηγεί τον τρόπο μέτρησης των στροφών κάθε κινητήρα χρησιμοποιώντας αισθητήρα IR και Arduino UNO/nano

Προμήθειες:

1. Arduion uno (Amazon) / Arduion nano (Amazon)

2. Αισθητήρας IR (Amazon)

3. DC μοτέρ οποιοδήποτε (Amazon)

4. LCD 16*2 (Amazon)

Εργαλεία που χρησιμοποιούνται

1. Συγκολλητικό σίδερο (Amazon)

2. Wire Stripper (Amazon)

Βήμα 1: Βήμα: 1 Εξασφαλίστε την κατάσταση λειτουργίας των αισθητήρων και των συσκευών

Τι είναι ένας αισθητήρας IR; Ο αισθητήρας IR είναι μια ηλεκτρονική συσκευή, η οποία εκπέμπει το φως για να αντιληφθεί κάποιο αντικείμενο του περιβάλλοντος χώρου. Ένας αισθητήρας IR μπορεί να μετρήσει τη θερμότητα ενός αντικειμένου καθώς και να ανιχνεύσει την κίνηση. Συνήθως, στο υπέρυθρο φάσμα, όλα τα αντικείμενα ακτινοβολούν κάποια μορφή θερμικής ακτινοβολίας. Αυτοί οι τύποι ακτινοβολιών είναι αόρατοι στα μάτια μας, αλλά ο αισθητήρας υπερύθρων μπορεί να ανιχνεύσει αυτές τις ακτινοβολίες.

Τι είναι ένας κινητήρας DC; Ένας κινητήρας συνεχούς ρεύματος (DC) είναι ένας τύπος ηλεκτρικής μηχανής που μετατρέπει την ηλεκτρική ενέργεια σε μηχανική ενέργεια. Οι κινητήρες συνεχούς ρεύματος λαμβάνουν ηλεκτρική ισχύ μέσω συνεχούς ρεύματος και μετατρέπουν αυτήν την ενέργεια σε μηχανική περιστροφή.

Οι κινητήρες συνεχούς ρεύματος χρησιμοποιούν μαγνητικά πεδία που προκύπτουν από τα ηλεκτρικά ρεύματα που δημιουργούνται, τα οποία ενεργοποιούν την κίνηση ενός ρότορα που είναι στερεωμένος μέσα στον άξονα εξόδου. Η ροπή και η ταχύτητα εξόδου εξαρτώνται τόσο από την ηλεκτρική είσοδο όσο και από τον σχεδιασμό του κινητήρα.

Τι είναι το Arduino;

Το Arduino είναι μια ηλεκτρονική πλατφόρμα ανοιχτού κώδικα που βασίζεται σε εύχρηστο υλικό και λογισμικό. Οι πίνακες Arduino είναι σε θέση να διαβάζουν εισόδους - φως σε έναν αισθητήρα, ένα δάχτυλο σε ένα κουμπί ή ένα μήνυμα Twitter - και να το μετατρέπουν σε έξοδο - ενεργοποιώντας έναν κινητήρα, ενεργοποιώντας ένα LED, δημοσιεύοντας κάτι στο διαδίκτυο. Μπορείτε να πείτε στον πίνακα τι να κάνει στέλνοντας ένα σύνολο οδηγιών στον μικροελεγκτή στον πίνακα. Για να το κάνετε αυτό, χρησιμοποιήστε τη γλώσσα προγραμματισμού Arduino (με βάση την καλωδίωση) και το λογισμικό Arduino (IDE), με βάση την επεξεργασία.

Κατεβάστε το ARDUINO IDE

Βήμα 2: Πώς λειτουργεί;

Ποια είναι λοιπόν η λογική πίσω από αυτό;;

Λειτουργεί πολύ παρόμοια με τον κωδικοποιητή. Οι κωδικοποιητές είναι δύσκολο να κατανοηθούν για αρχάριους. Το μόνο που πρέπει να γνωρίζετε είναι ότι ο αισθητήρας IR παράγει παλμό και ανακαλύπτουμε το χρονικό διάστημα μεταξύ κάθε παλμού.

Σε αυτήν την περίπτωση, ο αισθητήρας IR θα στείλει έναν παλμό στο Arduino όταν η δέσμη IR του αναχαιτιστεί με προπέλες κινητήρων. Κανονικά χρησιμοποιούμε έλικες με δύο λεπίδες, αλλά έχω χρησιμοποιήσει έλικα με τρεις λεπίδες όπως φαίνεται στο σχήμα. ανάλογα με τον αριθμό των λεπίδων έλικας πρέπει να τροποποιήσουμε ορισμένες τιμές κατά τον υπολογισμό των RPM.

ας σκεφτούμε ότι έχουμε μια προπέλα που έχει δύο λεπίδες. Για κάθε κινητήρα περιστροφής, η λεπίδα θα αναχαιτίσει την ακτίνα IR δύο φορές. Έτσι, ο αισθητήρας IR θα παράγει παλμούς κάθε φορά που αναχαιτίζονται.

Τώρα πρέπει να γράψουμε ένα πρόγραμμα που θα μπορούσε να μετρήσει τους αριθμητικούς παλμούς που παράγονται από τον αισθητήρα IR σε ένα συγκεκριμένο χρονικό διάστημα.

Υπάρχουν περισσότεροι από ένας τρόποι επίλυσης ενός προβλήματος, αλλά πρέπει να διαλέξουμε ποιος είναι ο καλύτερος σε αυτούς τους κωδικούς έχω μετρήσει τη διάρκεια μεταξύ των διακοπών (αισθητήρας IR) χρησιμοποίησα συναρτήσεις micros () για να μετρήσω τη διάρκεια των παλμών σε μικρο δευτερόλεπτα.

μπορείτε να χρησιμοποιήσετε αυτόν τον τύπο για να μετρήσετε το RPMRPM = ((1/διάρκεια)*1000*1000*60)/λεπίδες

όπου, διάρκεια - χρονικό διάστημα μεταξύ των παλμών.

60 - δευτερόλεπτα έως λεπτά

1000 - μύλος σε δευτερόλεπτο

1000 - μικρό σε μύλο

λεπίδες - δεν υπάρχουν φτερά στην προπέλα.

Οθόνη LCD - Το Arduino ενημερώνει τους καταχωρητές εντολών και δεδομένων της οθόνης LCD. Που εμφανίζει τους χαρακτήρες ASCII στην οθόνη LCD.

Βήμα 3: Προγραμματίστε το Arduino σας χρησιμοποιώντας το Arduino IDE

#περιλαμβάνω

LiquidCrystal LCD (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // Αισθητήρας IR ΕΙΣΟΔΟΣ ανυπόγραφο μακρύ prevmicros; // Για αποθήκευση χρόνου χωρίς υπογραφή μεγάλης διάρκειας. // Για να αποθηκεύσετε τη διαφορά ώρας χωρίς υπογραφή μακροχρόνια lcdrefresh. // Για αποθήκευση χρόνου για την ανανέωση της έντασης rpm για την οθόνη LCD. // τιμή RPM boolean currentstate; // Τρέχουσα κατάσταση σάρωσης εισόδου IR boolean prevstate. // Κατάσταση αισθητήρα IR σε προηγούμενη ρύθμιση κενών σάρωσης () {pinMode (IR_IN, INPUT); lcd. αρχή (16, 2); prevmicros = 0; prevstate = LOW; } void loop () {///////////////////////////////////////// ///////////////////////////////////// RPM Μέτρηση currentstate = digitalRead (IR_IN); // Διαβάστε την κατάσταση αισθητήρα IR αν (prevstate! = Currentstate) // Εάν υπάρχει αλλαγή στην είσοδο {if (currentstate == LOW) // Εάν η είσοδος αλλάζει μόνο από HIGH σε LOW {διάρκεια = (micros () - prevmicros); // Διαφορά ώρας μεταξύ περιστροφής σε μικροδευτερόλεπτα rpm = ((60000000/διάρκεια)/3); // rpm = (1/ time millis)*1000*1000*60; prevmicros = micros (); // αποθηκεύστε χρόνο για υπολογισμό περιστροφής νέκτ}} prevstate = currentstate; // αποθηκεύστε αυτά τα δεδομένα σάρωσης (προηγούμενη σάρωση) για επόμενη σάρωση /////////////////////////////////// //////////////////////////////////////////////// Οθόνη LCD εάν ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Ταχύτητα κινητήρα"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (σ.α.λ.) lcdrefresh = millis (); }}

Βήμα 4: Προσομοίωση με χρήση του Proteus

Προσομοίωση με χρήση του Proteus
Προσομοίωση με χρήση του Proteus

Αυτό το έργο λειτούργησε τέλεια όταν προσπάθησα να το προσομοιώσω με τη βοήθεια του πρωτείου.

Αντί για χρήση αισθητήρα IR, χρησιμοποίησα γεννήτρια παλμών DC, η οποία προσομοιώνει τον παλμό IR παρόμοιο με αυτόν που δημιουργείται όταν οι ακτίνες IR χτυπούν τις λεπίδες των προπέλων.

πρέπει να κάνετε αλλαγές στο πρόγραμμά σας ανάλογα με τον αισθητήρα που χρησιμοποιείτε

Ο αισθητήρας IR με LM358 πρέπει να χρησιμοποιεί αυτήν την εντολή.

if (currentstate == HIGH) // Εάν η είσοδος αλλάζει μόνο από LOW σε HIGH

Ο αισθητήρας IR με LM359 πρέπει να χρησιμοποιεί αυτήν την εντολή.

if (currentstate == LOW) // Εάν η είσοδος αλλάζει μόνο από HIGH σε LOW

Βήμα 5: Εκτέλεση υλικού

Εκτέλεση υλικού
Εκτέλεση υλικού
Εκτέλεση υλικού
Εκτέλεση υλικού
Εκτέλεση υλικού
Εκτέλεση υλικού

Για σχηματική χρήση, χρησιμοποιήστε τις εικόνες προσομοίωσης ή ανατρέξτε στους κωδικούς του προγράμματος και κάντε τις συνδέσεις ανάλογα. Ανεβάστε τον κωδικό προγράμματος στο Arduino και μετρήστε το RPM κάθε κινητήρα. Μείνετε συντονισμένοι για την επόμενη ανάρτησή μου και δείτε το κανάλι μου στο YouTube.

Συνιστάται: