Σε αυτό το σεμινάριο πρόκειται να συνδέσουμε έναν περιστροφικό κωδικοποιητή με τον μικροελεγκτή ATmega8. Το ATmega8 είναι η σειρά μικροελεγκτών της atmel σχεδιασμένη για ενσωματωμένες εφαρμογές. Ο περιστροφικός κωδικοποιητής χρησιμοποιείται για να γνωρίζει τη θέση κίνησης και τη γωνιακή κίνηση ενός κινητήρα ή άξονα. Είναι μια συσκευή τριών τερματικών συνήθως, με μετρητές ισχύος και πείρων γείωσης έως πέντε. Μια περιστροφική μονάδα κωδικοποιητή φαίνεται παρακάτω.
Οι ακίδες ενός περιστροφικού κωδικοποιητή είναι:
- Εδαφος.
- Θετικό συνδεδεμένο με + 5V
- Σήμα εξόδου Ένας πείρος
- Σήμα εξόδου Β ακίδων
- Ρολόι ή κοινή καρφίτσα.
Το ENCODER παρέχει παλμούς που αντιπροσωπεύουν την αλλαγή στη θέση του άξονα για να κατανοήσουν τα συστήματα. Σκεφτείτε ότι ένας ROTATORY ENCODER είναι ενεργοποιημένος και ο άξονας κινείται.
Όπως φαίνεται στον παραπάνω πίνακα, θεωρήστε ότι ο άξονας κινείται με το ρολόι. Με αυτό θα υπάρχει Falling Edge στον τερματικό σταθμό Α και στον τερματικό σταθμό Β.
Θεωρήστε ότι ο άξονας κινείται κατά το ρολόι. Με αυτό θα υπάρξει Falling Edge στον τερματικό σταθμό Β και στον τερματικό σταθμό Α.
Αυτό το άκρο θα εμφανιστεί μία φορά για 360/20 = 18 μοίρες (Αυτό ισχύει για έναν κωδικοποιητή με 20 θέση, αυτό αλλάζει από τύπο σε τύπο, όσο μεγαλύτερη είναι η μέτρηση τόσο μεγαλύτερη είναι η ακρίβεια).
Και με τις δύο παραπάνω συνθήκες, μπορούμε να πάρουμε κατεύθυνση και βαθμό περιστροφής. Έτσι παίρνουμε τις απαιτούμενες παραμέτρους για να πάρουμε τη θέση ενός άξονα.
Συστατικά
Υλικό: ATMEGA8, ακίδες σύνδεσης, AVR-ISP PROGRAMMER, 220Ω αντίσταση, LED (οκτώ τεμάχια), 1KΩ αντίσταση, 220Ω αντίσταση (2 τεμάχια), 100nF πυκνωτής (2 τεμάχια), ψωμί.
Λογισμικό: Atmel studio 6.1, progisp ή flash magic.
Διάγραμμα κυκλώματος και εξήγηση εργασίας
Οι πυκνωτές εδώ είναι για την εξουδετέρωση του εφέ αναπήδησης της επαφής στο ENCODER. Χωρίς αυτούς τους πυκνωτές θα υπάρξουν κάποια σοβαρά προβλήματα στην ανάγνωση θέσης.
Όταν μετακινείται ο άξονας θα υπάρχει διαφορά χρόνου μεταξύ της εξόδου δύο ακίδων εξόδου. Το ATMEGA8 θα αναγνωρίσει αυτήν τη διαφορά ώρας για δεξιόστροφη περιστροφή κατά του ρολογιού.
Εάν η περιστροφή είναι δεξιόστροφα, η δυαδική μέτρηση αυξάνεται κατά μία, και αυτή η μέτρηση εμφανίζεται στη θύρα LED όπως φαίνεται στο σχήμα.
Εάν η περιστροφή είναι αντίστροφα, η δυαδική μέτρηση μειώνεται κατά μία και η δυαδική μέτρηση εμφανίζεται σε LED byte.
Θυμηθείτε εδώ ότι δεν ρυθμίζουμε bit fuse του atmega8, οπότε ο ελεγκτής θα δουλεύει σε προεπιλεγμένο εσωτερικό κρύσταλλο 1Mhz.
Η εργασία διασύνδεσης περιστροφικού κωδικοποιητή με μικροελεγκτή ATmega8 εξηγείται στον παρακάτω κώδικα.