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

Αισθητήρας εφέ Arduino Hall με διακοπές: 4 βήματα
Αισθητήρας εφέ Arduino Hall με διακοπές: 4 βήματα

Βίντεο: Αισθητήρας εφέ Arduino Hall με διακοπές: 4 βήματα

Βίντεο: Αισθητήρας εφέ Arduino Hall με διακοπές: 4 βήματα
Βίντεο: 35 Scary Ghost Videos: Mega Compilation του 2023 [V1] 2024, Νοέμβριος
Anonim
Image
Image
Τι είναι ο αισθητήρας εφέ Hall
Τι είναι ο αισθητήρας εφέ Hall

Γεια σε όλους, Σήμερα θα σας δείξω πώς μπορείτε να συνδέσετε έναν αισθητήρα εφέ αίθουσας σε ένα Arduino και να τον χρησιμοποιήσετε με διακοπή.

Εργαλεία και υλικά που χρησιμοποιούνται στο βίντεο (Συνδέσεις συνεργατών): Arduino Uno:

Αισθητήρες εφέ Hall:

Ανάμικτες αντιστάσεις:

Βήμα 1: Τι είναι ένας αισθητήρας εφέ Hall;

Τι είναι ο αισθητήρας εφέ Hall
Τι είναι ο αισθητήρας εφέ Hall
Τι είναι ο αισθητήρας εφέ Hall
Τι είναι ο αισθητήρας εφέ Hall
Τι είναι ο αισθητήρας εφέ Hall
Τι είναι ο αισθητήρας εφέ Hall

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

Οι αισθητήρες φαινομένου Hall χρησιμοποιούνται για ανίχνευση εγγύτητας, τοποθέτηση, ανίχνευση ταχύτητας και τρέχουσες εφαρμογές ανίχνευσης.

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

Ο αισθητήρας έχει 3 ακίδες, VCC, γείωση και έξοδο. Μπορείτε να τα προσδιορίσετε με αυτήν τη σειρά εάν κρατήσετε τον αισθητήρα με τις ετικέτες προς το μέρος σας. Το VCC βρίσκεται στα αριστερά και η έξοδος στη δεξιά πλευρά. Για να αποφευχθεί οποιαδήποτε μετατόπιση τάσης, χρησιμοποιείται μια αντίσταση 10k μεταξύ του VCC και της εξόδου σε διαμόρφωση έλξης.

Βήμα 2: Τι είναι η διακοπή;

Τι είναι η διακοπή
Τι είναι η διακοπή
Τι είναι η διακοπή
Τι είναι η διακοπή

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

Αυτό που είναι φοβερό σε αυτό είναι ότι δομεί το σύστημά σας για να αντιδρά γρήγορα και αποτελεσματικά σε σημαντικά γεγονότα που δεν είναι εύκολο να προβλεφθούν στο λογισμικό. Το καλύτερο από όλα, απελευθερώνει τον επεξεργαστή σας για να κάνει άλλα πράγματα ενώ περιμένει να εμφανιστεί μια εκδήλωση.

Το Arduino Uno έχει δύο ακίδες που μπορούμε να χρησιμοποιήσουμε ως Διακοπές, ακροδέκτες 2 και 3. Η συνάρτηση που χρησιμοποιούμε για να καταχωρήσουμε τον ακροδέκτη ως διακοπή ονομάζεται attachInterrupt όπου ως πρώτη παράμετρος στέλνουμε στον πείρο προς χρήση, το όνομα της συνάρτησης που θέλουμε να καλέσουμε μόλις εντοπιστεί μια διακοπή και ως τρίτη παράμετρος στέλνουμε στη λειτουργία στην οποία θέλουμε να λειτουργεί η διακοπή. Υπάρχει ένας σύνδεσμος στην περιγραφή του βίντεο για την πλήρη αναφορά αυτής της λειτουργίας.

Βήμα 3: Συνδέσεις και κώδικας

Συνδέσεις και Κωδικός
Συνδέσεις και Κωδικός
Συνδέσεις και Κωδικός
Συνδέσεις και Κωδικός
Συνδέσεις και Κωδικός
Συνδέσεις και Κωδικός

Στο παράδειγμά μας, συνδέουμε τον αισθητήρα εφέ αίθουσας στην ακίδα 2 στο Arduino. Στην αρχή του σκίτσου, ορίζουμε τις μεταβλητές για τον αριθμό pin του ενσωματωμένου LED, τον ακροδέκτη διακοπής καθώς και μια μεταβλητή byte που θα χρησιμοποιήσουμε για να τροποποιήσουμε μέσω της διακοπής. Είναι ζωτικής σημασίας να επισημάνουμε αυτό ως πτητικό, ώστε ο μεταγλωττιστής να γνωρίζει ότι τροποποιείται εκτός της κύριας ροής προγράμματος μέσω της διακοπής.

Στη συνάρτηση ρύθμισης, καθορίζουμε πρώτα τις λειτουργίες των χρησιμοποιούμενων ακίδων και στη συνέχεια επισυνάπτουμε τη διακοπή όπως εξηγήθηκε προηγουμένως. Μια άλλη λειτουργία που χρησιμοποιούμε εδώ είναι το digitalPinToInterrupt, το οποίο όπως υποδηλώνει το όνομα, μεταφράζει τον αριθμό pin στον αριθμό διακοπής.

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

Όπου επισυνάψαμε τη διακοπή, ορίσαμε το αναβοσβήσιμο ως δεύτερη παράμετρο και αυτό είναι το όνομα της συνάρτησης που πρέπει να καλείται. Μέσα απλώς αντιστρέφουμε την τιμή κατάστασης.

Η τρίτη παράμετρος της συνάρτησης attachIntertupt είναι η λειτουργία στην οποία λειτουργεί. Όταν το έχουμε ως ΑΛΛΑΓΗ, η λειτουργία αναλαμπής θα εκτελείται κάθε φορά που αλλάζει η κατάσταση διακοπής, έτσι θα καλείται μόλις φτάσουμε τον μαγνήτη κοντά στον αισθητήρα και ενεργοποιηθεί ξανά μόλις τον αφαιρέσουμε. Με αυτόν τον τρόπο, η λυχνία LED είναι αναμμένη ενώ κρατάμε τον μαγνήτη κοντά στον αισθητήρα.

Εάν αλλάξουμε τώρα τη λειτουργία σε RISING, η λειτουργία αναλαμπής θα ενεργοποιηθεί μόνο όταν εμφανιστεί μια ανερχόμενη άκρη του σήματος στον πείρο διακοπής. Τώρα κάθε φορά που φέρνουμε τον μαγνήτη κοντά στον αισθητήρα, το LED είτε σβήνει είτε ανάβει, οπότε ουσιαστικά κάναμε έναν μαγνητικό διακόπτη.

Η τελική λειτουργία που θα δοκιμάσουμε είναι LOW. Με αυτό, όταν ο μαγνήτης είναι κοντά, η λειτουργία αναλαμπής θα ενεργοποιείται συνεχώς και η λυχνία LED θα αναβοσβήνει, έχοντας την κατάσταση της ανεστραμμένη συνεχώς. Όταν αφαιρούμε τον μαγνήτη, είναι πραγματικά απρόβλεπτο πώς θα καταλήξει η κατάσταση καθώς αυτό εξαρτάται από το χρονοδιάγραμμα. Ωστόσο, αυτή η λειτουργία είναι πραγματικά χρήσιμη εάν πρέπει να γνωρίζουμε για πόσο χρονικό διάστημα πατήθηκε ένα κουμπί, καθώς μπορούμε να χρησιμοποιήσουμε τις λειτουργίες χρονισμού για να το προσδιορίσουμε.

Βήμα 4: Περαιτέρω ενέργειες

Περαιτέρω Ενέργειες
Περαιτέρω Ενέργειες

Οι διακοπές είναι ένας απλός τρόπος για να κάνετε το σύστημά σας πιο ευαίσθητο σε εργασίες ευαίσθητες στο χρόνο. Έχουν επίσης το πρόσθετο όφελος από την απελευθέρωση του κύριου βρόχου () σας για να επικεντρωθείτε σε κάποια κύρια εργασία στο σύστημα. (Διαπιστώνω ότι αυτό τείνει να κάνει τον κώδικα μου λίγο πιο οργανωμένο όταν τους χρησιμοποιώ - είναι ευκολότερο να δούμε για τι έχει σχεδιαστεί το κύριο κομμάτι κώδικα, ενώ οι διακοπές χειρίζονται περιοδικά γεγονότα.) Το παράδειγμα που φαίνεται εδώ είναι σχεδόν το περισσότερο βασική περίπτωση χρήσης διακοπής - μπορείτε να τα χρησιμοποιήσετε για ανάγνωση συσκευής I2C, αποστολή ή λήψη ασύρματων δεδομένων ή ακόμη και εκκίνηση ή διακοπή κινητήρα.

Εάν χρησιμοποιείτε μια ενδιαφέρουσα διακοπή ή έναν αισθητήρα εφέ αίθουσας, φροντίστε να με ενημερώσετε στα σχόλια, να κάνετε like και να μοιραστείτε αυτό το Instructable και μην ξεχάσετε να εγγραφείτε στο κανάλι μου στο YouTube για πιο φοβερά σεμινάρια και έργα στο μελλοντικός.

Μπράβο και ευχαριστώ για την παρακολούθηση!

Συνιστάται: