| Home Pic in Greek Παραδείγματα χρήσης Pic Οδήγηση βηματικού κινητήρα Ανάλυση προγράμματος |
Οδήγηση βηματικού κινητήρα - Ανάλυση προγράμματος
Ορισμός ονομάτων (Ετικετών)
    ;****************  Label Definition  ********************
            cblock  h'0c'
Με την χρήση της ψευδοεντολής CBLOCK ενημερώνεται ο μεταγλωττιστής ότι από την διεύθυνση 0ch και μέχρι την ψευδοεντολή ENDC θα υπάρξει ορισμός καταχωρητών. Ο σκοπός των καταχωρητών αυτών αναλύεται παρακάτω.
Ετικέτα |  | Λειτουργία
mode | : | Σ αυτόν τον καταχωρητή αποθηκεύεται η κατάσταση του κινητήρα. 0=Σταματημένος, 1=Δεξιόστροφη περιστροφή, 2=Αριστερόστροφη περιστροφή
count1 | : | Μετρά πέντε (5) μιλισεκόντ (millisecond). Μετρά το χρόνο του ενός μιλισεκόντ πέντε φορές.
count2 | : | Μετρά (1) μιλισεκόντ (millisecond).
Έναρξη προγράμματος
    ;****************  Program Start  ***********************
Μετά το Power on ο μικροεπεξεργαστής αρχίζει να εκτελεί τις εντολές που έχει αποθηκευμένες στην μνήμη του από την διεύθυνση μηδέν ‘Address 0’. Σε περίπτωση που χρησιμοποιούμε Interrupts η εκτέλεση των εντολών αρχίζει από την διεύθυνση τέσσερα. Λειτουργία αρχικοποίησης
    ;****************  Initial Process  *********************
Οι παρακάτω λειτουργίες γίνονται μετά την εφαρμογή τάσης και το μηδενισμό του μικροεπεξεργαστή.
Ορισμός κατάστασης για τα ποδαράκια της PORTA.
| Όλα τα ποδαράκια της RA ορίζονται σαν έξοδοι
Ορισμός κατάστασης για τα ποδαράκια της PORTB
| Τα ποδαράκια RB0,1,2 και 5 ορίζονται σαν είσοδοι, ενώ το RB7 ορίζεται σαν έξοδος.
Απενεργοποιείται η λειτουργία pull-up της PORTB (RPBU=1).
| Επειδή το ποδαράκι RB5 χρησιμοποιείται σαν είσοδος υψηλής σύνθετης αντίστασης, οι εσωτερικές Pull-up αντιστάσεις της PORTB δεν χρησιμοποιούνται.
Ορισμός κατάστασης κινητήρα : Σταματημένος
| Αμέσως μετά την εφαρμογή τάσης στο κύκλωμα ορίζεται η κατάσταση του κινητήρα σε σταματημένο. Λογικά η τιμή του καταχωρητή Mode θα είναι μηδενισμένη (mode 0= stop), αλλά για μεγαλύτερη ασφάλεια μηδενίζεται και από το πρόγραμμα.
Ορισμός αρχικών τιμών καταχωρητών count1 & count2
| Μετά από μηδενισμό (Reset) του Pic όλοι οι καταχωρητές της μνήμης Ram μηδενίζονται αυτόματα, όμως για λόγους ασφάλειας και πάλι ορίζεται σαν αρχική τιμή το μηδέν
Αρχικοποίηση της Port A
| ορίζεται η λογική κατάσταση 0101 στα ποδαράκια της port A. Προσέξτε πως επειδή τα ποδαράκια οδηγούν τις βάσεις των Darlington η λογική κατάσταση εφαρμόζεται αντίστροφα. =H =L =H =L. (H=High, L=Low)
Εκφόρτιση του πυκνωτή για την ρύθμιση της ταχύτητας
| Το ποδαράκι RB7 παίρνει λογική κατάσταση 1 (High), και αναγκάζει τον πυκνωτή να εκφορτιστεί μέσο του Darlington τρανζίστορ TR1. Το τέλος της εκφόρτισης ελέγχεται από το ποδαράκι RB5.
Λειτουργία επιλογής κατάστασης κινητήρα
    ;*************  Check switch condition  *****************
Γίνεται έλεγχος κατάστασης των διακοπτών SW1,2,3 από τα ποδαράκια RB0,1,2. Εάν κάποιος από τους διακόπτες Stop, RRC, ή RLC πατηθεί τότε γίνεται και η αντίστοιχη λειτουργία. Σε περίπτωση που πατηθούν μαζί περισσότεροι του ενός, τότε λαμβάνεται υπόψη ο πρώτος. Ο έλεγχος των διακοπτών γίνεται μετά από κάθε ένα βήμα κίνησης του βηματικού κινητήρα. Λειτουργία οδήγησης του κινητήρα
    ;********************  Motor drive  *********************
Πρώτα γίνεται έλεγχος εάν ο κινητήρας είναι σταματημένος. Σε περίπτωση που είναι σταματημένος, το πρόγραμμα πηγαίνει και ελέγχει εάν πατήθηκε κάποιος από τους διακόπτες Stop, RRC, ή RLC. Διαφορετικά ακολουθείται η παρακάτω διαδικασία.
Εκφόρτιση του πυκνωτή για την ρύθμιση της ταχύτητας
| Εκφορτίζεται ο πυκνωτής και προετοιμάζεται η μέτρηση χρόνου για την ρύθμιση της ταχύτητας.
Μέτρηση χρόνου 5 μιλισεκόντ (millisecond)
| Σε υψηλή ταχύτητα ο ρότορ δεν μπορεί να ακολουθήσει την αλλαγή του ηλεκτρομαγνητικού πεδίου που εφαρμόζουν τα πηνία του στάτορ και ο βηματικός κινητήρας δεν περιστρέφεται ομαλά. Για αυτό γίνεται η μέτρηση του χρόνου έτσι ώστε να προλαβαίνει ο ρότορ τις αλλαγές του μαγνητικού πεδίου και η κίνηση να είναι ομαλή. Για την περίπτωση του κινητήρα του παραδείγματος μας εάν ο χρόνος είναι μικρότερος των 5 μιλισεκόντ, η περιστροφή στην μέγιστη ταχύτητα δεν είναι ομαλή.
Φόρτιση του πυκνωτή για την ρύθμιση της ταχύτητας
| Η κατάσταση στο ποδαράκι RB7 γίνεται λογικό 0 (Low), και η φόρτιση του πυκνωτή ξεκινά. Το ποδαράκι RB5, καταλαβαίνει ότι ολοκληρώνεται η φόρτιση του πυκνωτή όταν πάρει λογικό 1 (High). Στην πραγματικότητα, επειδή ο πυκνωτής δεν φορτίζεται 100% το ποδαράκι RB5 πιστεύει ότι ολοκληρώθηκε η φάση φόρτισης όταν η τάση ξεπεράσει το ελάχιστο όριο για το λογικό 1.
Οδήγηση του κινητήρα
| Ο κινητήρας οδηγείται αφού γίνει η ανάγνωση των δεδομένων για την ρύθμιση της ταχύτητας, την φορά περιστροφής και την κατάσταση του (Περιστροφή - Παύση). Την οδήγηση των πηνίων και γενικότερα του κινητήρα ελέγχουν τα ποδαράκια της PORTA. Μετά την οδήγηση το πρόγραμμα επιστρέφει στην ρουτίνα ελέγχου των διακοπτών που κάνουν τα ποδαράκια RB0, RB1, RB2.