Σε αυτό το έργο πρόκειται να διασυνδέσουμε έναν ROTARY ENCODER με το ARDUINO. Το ARDUINO UNO είναι ένας πίνακας ανάπτυξης με βάση τον ελεγκτή ATMEGA σχεδιασμένος για ηλεκτρονικούς μηχανικούς και χόμπι. Στο ARDUINO έχουμε 20 καρφίτσες εισόδου / εξόδου, έτσι μπορούμε να προγραμματίσουμε 20 ακίδες UNO για χρήση είτε ως είσοδος ή έξοδος.
Ένας ROTARY ENCODER χρησιμοποιείται για να γνωρίζει τη θέση της κίνησης και της γωνιακής κίνησης ενός κινητήρα ή άξονα. Είναι μια συσκευή τριών τερματικών συνήθως, με πείρους τροφοδοσίας και γείωσης υπάρχουν συνολικά 5 ακροδέκτες. Μια ενότητα ROTARY ENCODER εμφανίζεται παρακάτω.
Οι ακίδες ενός περιστροφικού κωδικοποιητή είναι:
- Εδαφος
- Θετικό συνδεδεμένο με + 5V
- Σήμα εξόδου Ένας πείρος
- Σήμα εξόδου Β ακίδων
- Ρολόι ή κοινή καρφίτσα
Το ENCODER παρέχει παλμούς που αντιπροσωπεύουν την αλλαγή στη θέση του άξονα για να κατανοήσουν τα συστήματα. Σκεφτείτε ότι ένας ROTARY ENCODER είναι ενεργοποιημένος και ο άξονας κινείται.
Όπως φαίνεται στον παραπάνω πίνακα, θεωρήστε ότι ο άξονας κινείται με το ρολόι. Με αυτό θα υπάρχει Falling Edge στον τερματικό σταθμό Α και στον τερματικό σταθμό Β.
Θεωρήστε ότι ο άξονας κινείται κατά το ρολόι. Με αυτό θα υπάρξει Falling Edge στον τερματικό σταθμό Β και στον τερματικό σταθμό Α.
Αυτό το άκρο θα εμφανιστεί μία φορά για 360/20 = 18 μοίρες (Αυτό ισχύει για έναν κωδικοποιητή με 20 θέση, αυτό αλλάζει από τύπο σε τύπο, όσο μεγαλύτερη είναι η μέτρηση τόσο μεγαλύτερη είναι η ακρίβεια).
Και με τις δύο παραπάνω συνθήκες, μπορούμε να πάρουμε κατεύθυνση και βαθμό περιστροφής. Έτσι παίρνουμε τις απαιτούμενες παραμέτρους για να πάρουμε τη θέση ενός άξονα.
Απαιτούμενα στοιχεία
Υλικό: Arduino uno board, ακίδες σύνδεσης, αντίσταση 220Ω, LED (οκτώ τεμάχια), αντίσταση 1KΩ, αντίσταση 220Ω (2 τεμάχια), πυκνωτής 100nF (2 τεμάχια), πλακέτα ψωμιού.
Λογισμικό: Arduino κάθε βράδυ
Διάγραμμα κυκλώματος και εξήγηση εργασίας
Οι πυκνωτές εδώ είναι για την εξουδετέρωση του εφέ αναπήδησης της επαφής στο ENCODER. Χωρίς αυτούς τους πυκνωτές θα υπάρξουν κάποια σοβαρά προβλήματα στην ανάγνωση θέσης.
Όταν μετακινείται ο άξονας θα υπάρχει διαφορά χρόνου μεταξύ της εξόδου δύο ακίδων εξόδου. Το Arduino UNO θα αναγνωρίσει αυτήν τη διαφορά ώρας για δεξιόστροφη περιστροφή κατά του ρολογιού.
Εάν η περιστροφή είναι δεξιόστροφα, η δυαδική μέτρηση αυξάνεται κατά μία, και αυτή η μέτρηση εμφανίζεται στη θύρα LED όπως φαίνεται στο σχήμα.
Εάν η περιστροφή είναι αντίστροφα, η δυαδική μέτρηση μειώνεται κατά μία και η δυαδική μέτρηση εμφανίζεται σε LED byte.
Η εργασία του Arduino με τον Rotary Encoder εξηγείται βήμα προς βήμα στον κώδικα C που δίνεται παρακάτω.