Όπως φαίνεται στο ακόλουθο σχήμα ο Timer2 είναι ένας 8-bit timer. Επομένως δουλεύει όπως ο Timer0. Υπάρχουν τρεις διαφορές μεταξύ των Timer0 και Timer2: 1] O Timer2 μπορεί να χρησιμοποιηθεί σαν απαριθμητής πραγματικού χρόνου. Για να γίνει αυτό θα πρέπει να συνδέσουμε ένα κρύσταλλο συχνότητας 32,768kHz στους ακροδέκτες TOSC1 και TOSC2 του μικροελεγκτή AVR και […]
5. Compare match CTC mode programming
Σε αυτή την ενότητα θα μάθουμε για τον καταχωρητή OCR0A, ο οποίος συνοδεύει τον Timer0. Ο OCR0A καταχωρητής χρησιμοποιείται στην κατάσταση λειτουργίας CTC. Όπως στην κατάσταση λειτουργίας Normal έτσι και στην κατάσταση CTC o timer αυξάνει με τους κύκλους ρολογιού. Στη λειτουργία CTC ο timer απαριθμεί προς τα πάνω μέχρι η τιμή του TCNT0 να […]
4. Δημιουργώντας μεγάλες χρονικές καθυστερήσεις
Όπως έχουμε δει στα παραδείγματα των προηγούμενων ενοτήτων, το μέγεθος της χρονικής καθυστέρησης που παράγεται, εξαρτάται από δυο παράγοντες: την συχνότητα του εσωτερικού κρυσταλλικού ταλαντωτή και την τιμή του 8bit TCNT0 καταχωρητή. Μέγιστη χρονική καθυστέρηση έχουμε όταν ο καταχωρητής TCNT0 έχει τιμή μηδέν. Τι γίνεται όμως εάν αυτό δεν είναι αρκετό; Μπορούμε να κάνουμε την […]
3. Δημιουργία χρονικών καθυστερήσεων με timer
Μπορούμε να αναπτύξουμε μια μέθοδο για την δημιουργία και υπολογισμό χρονικών καθυστερήσεων με χρήση timer στην κατάσταση λειτουργίας Normal και χρησιμοποιώντας τον εσωτερικό κρυσταλλικό ταλαντωτή με συχνότητα XTAL=16MHz Σύμφωνα με τη μέθοδο φορτώνουμε τον TCNT0 με αρχική τιμή την (0xFF – XX + 1) στο δεκαεξαδικό, έτσι ώστε να είναι (0xFF – XX + 1) […]
2. Προγραμματισμός του χρονιστή Timer0
Ο Timer0 είναι ένας 8-bit χρονιστής στον ATmega328, επομένως και ο καταχωρητής TCNT0 είναι 8-bit όπως φαίνεται στο ακόλουθο σχήμα: TCCR0A και TCCR0B (Timer / Counter Control Register) Οι TCCR0A και TCCR0B είναι 8bit καταχωρητές που χρησιμοποιούνται για τον έλεγχο του Timer0. Τα bits για τους TCCR0A και TCCR0B φαίνονται στα ακόλουθα σχήματα. CS02:CS00 (Timer0 […]
1. Προγραμματίζοντας τους Timers των AVRs
Σε πολλές εφαρμογές θέλουμε να απαριθμούμε γεγονότα ή να παράγουμε χρονικές καθυστερήσεις. Ένας τρόπος που μπορούμε να το κάνουμε είναι με τη χρήση μικροελεγκτών. Όταν θέλουμε να απαριθμούμε παλμούς (γεγονότα), συνδέουμε την εξωτερική πηγή παλμών στον ακροδέκτη ρολογιού του counter καταχωρητή που υπάρχει μέσα στον μικροελεγκτή. Έτσι με κάθε παλμό αυξάνονται τα περιεχόμενα του counter […]
4. Κυκλώματα διαφόρισης και ολοκλήρωσης
Διαφοριστής με τελεστικό ενισχυτή Ο διαφοριστής είναι ένα κύκλωμα που δίνει στην έξοδο του μια τάση που είναι ανάλογη του ρυθμού μεταβολής της τάσης στην είσοδο του. Διαφορετικά μπορούμε να πούμε ότι η έξοδος του διαφοριστή είναι ανάλογη της παραγώγου της τάσης εισόδου. Το βασικό κύκλωμα φαίνεται στο παρακάτω σχήμα. Επειδή η αντίσταση εισόδου του […]
15. Πλειάδες
Οι πλειάδες (tuples) είναι μια δομή δεδομένων σε μορφή όπως οι λίστες, αλλά με το χαρακτηριστικό ότι μένουν αμετάβλητες κατά την εκτέλεση κώδικα Python. Αν κατά την εκτέλεση κώδικα προσπαθήσουμε να τροποποιήσουμε μια πλειάδα, θα πάρουμε ένα μήνυμα σφάλματος. Μια πλειάδα μπορεί να οριστεί σαν μια ακολουθία τιμών χωρισμένων με κόμμα, οι οποίες περικλείονται σε […]
14. Λίστες
Η λίστα είναι μια διατεταγμένη συλλογή αντικειμένων, τα οποία μπορούμε να τα αριθμούμε με δείκτες. Τα στοιχεία μιας λίστας αποθηκεύονται σε συνεχόμενες θέσεις στο χώρο της μνήμης στις οποίες μπορούμε να προσπελαύνουμε κάτω από το ίδιο όνομα, αλλά με την μεταξύ τους διάκριση με χρήση δείκτη. Τα στοιχεία μιας λίστας μπορεί να είναι διαφορετικού τύπου, […]
3. Αθροιστής τάσεων και ενισχυτής διαφοράς
Όταν θέλουμε να αθροίσουμε τις τάσεις V1, V2, … ,Vn σε μια ολική τάση V, χρησιμοποιούμε τη αναστρέφουσα συνδεσμολογία τελεστικού ενισχυτή, όπως φαίνεται στο παρακάτω σχήμα: Κάθε μία τάση Vk εισάγεται στην αναστρέφουσα είσοδο του τελεστικού ενισχυτή δια μέσου της αντίστασης Rk. Επειδή η αναστρέφουσα είσοδος είναι φαινομενικά βραχυκυκλωμένη με τη γη, το ρεύμα που τη διαρρέει την […]
2. Τελεστικοί σε συνδεσμολογία ενισχυτή
Δυο από τα βασικότερα κυκλώματα τελεστικών ενισχυτών είναι η αναστρέφουσα και η μη αναστρέφουσα συνδεσμολογία. Και τα δυο αυτά κυκλώματα έχουν ένα κοινό χαρακτηριστικό: μια εξωτερική αντίσταση ανάδρασης συνδεδεμένη ανάμεσα στην έξοδο και την αναστρέφουσα είσοδο (-). Το κοινό τους αυτό χαρακτηριστικό κατατάσσει και τις δυο συνδεσμολογίες στα κυκλώματα αρνητικής ανάδρασης. Τα πλεονεκτήματα της αρνητικής […]
1. Εισαγωγή στους τελεστικούς ενισχυτές
Ο τελεστικός ενισχυτής αποτελεί βασικό ηλεκτρονικό εξάρτημα, υπό μορφή ολοκληρωμένου κυκλώματος, των αναλογικών συστημάτων. Οι ακροδέκτες του τελεστικού ενισχυτή αποτελούνται από δύο εισόδους, την μη αναστρέψιμη είσοδο που συμβολίζεται με (+), την αναστρέψιμη είσοδο που συμβολίζεται με (-), και την έξοδο που παρέχει το ενισχυμένο σήμα της διαφοράς των δυο εισόδων, με πολύ μεγάλη ενίσχυση, […]
Διατάξεις σταθεροποίησης
Για να αποφύγουμε την κύματωση αλλά και να μπορέσουμε να ρυθμίσουμε την τάση εξόδου στο φορτίο, χρησιμοποιούμε διατάξεις σταθεροποίησης με ενεργά εξαρτήματα. Οι διατάξεις σταθεροποίησης χωρίζονται σε δυο κατηγορίες. Στις διατάξεις σταθεροποίησης τάσης, που συμπεριφέρονται σαν πηγές σταθερής τάσης και στις διατάξεις σταθεροποίησης ρεύματος, που συμπεριφέρονται σαν πηγές σταθερού ρεύματος. Στην ιδανική τους μορφή έχουν, […]
2. Φίλτρα αφαίρεσης κυμάτωσης
Ένα τυπικό φίλτρο μπορεί εύκολα να κατανοηθεί αν το κυκλωματικό διάγραμμα του το χωρίσουμε σε δυο μέρη. Τον πυκνωτή εξομάλυνσης και το χαμηλοπερατό φίλτρο. Καθένα από αυτά τα μέρη συμβάλει με τον δικό του τρόπο στην αφαίρεση της κυμάτωσης της DC ανορθωμένης τάσης. Πυκνωτές εξομάλυνσης Το σχήμα δείχνει ένα ηλεκτρολυτικό πυκνωτή συνδεμένο στο κύκλωμα ανόρθωσης, […]
1. Αρχή λειτουργίας τροφοδοτικών
Βασικά στοιχεία για τα τροφοδοτικά Τα τροφοδοτικά είναι ηλεκτρονικές διατάξεις που μετασχηματίζουν την εναλλασσόμενη τάση του δικτύου ηλεκτρισμού σε συνεχή τάση DC γενικά μικρότερης τιμής η οποία είναι αναγκαία για την λειτουργία των ηλεκτρονικών συσκευών. Ένα τυπικό τροφοδοτικό παρέχει τάση DC η οποία είναι ανεξάρτητη από την τάση του εναλλασσόμενου στην είσοδο του. Η τάση […]
13. Εξαιρέσεις
Όλοι οι προγραμματιστές κατά την ανάπτυξη κώδικα, όσο προσεκτικοί κι αν είναι, έχουν να κάνουν με την εμφάνιση λαθών. Τα λάθη μπορεί να είναι απλά, όπως προβλήματα στοίχισης η και κρίσιμα που να οδηγούν στην κατάρρευση του συστήματος. Κατά την ανάπτυξη ενός προγράμματος είναι αδύνατο στο να μην συμβούν λάθη και ειδικά στις μεγάλες εφαρμογές, […]
12. Μέθοδοι πάνω σε συμβολοσειρές
Στην Python υπάρχει μια πληθώρα μεθόδων με τις οποίες μπορούμε να επεξεργαστούμε τα δεδομένα συμβολοσειρών. Εδώ μια μέθοδος είναι μια συνάρτηση που δρα σε ένα αντικείμενο συμβολοσειράς, ενώ μπορεί να δεχτεί τιμές στις παραμέτρους της. Η σύνταξη της μεθόδου είναι η ακόλουθη: object.method_name([parameter]) Όπου object η προς επεξεργασία συμβολοσειρά και method_name το όνομα της μεθόδου, […]
11. Συμβολοσειρές στην Python
Οι συμβολοσειρές είναι ένας τύπος δεδομένων της Python που ονομάζεται str. Οι υπόλοιποι είναι ο ακέραιος τύπος int, ο τύπος αριθμών κινητής υποδιαστολής float και ο λογικός τύπος bool. Οι συμβολοσειρές είναι ακολουθίες χαρακτήρων που αποτελούνται από αριθμούς, ψηφία, γράμματα και σύμβολα τα οποία περικλείονται σε μονά (‘ ‘) ή διπλά (“ “) εισαγωγικά. Τα […]
10. Βιβλιοθήκες (Modules)
Η Python μας επιτρέπει την ομαδοποίηση συναρτήσεων με κριτήριο των κοινών τους χαρακτηριστικών. Με αυτό τον τρόπο έχουμε την σωστή οργάνωσή των συναρτήσεων και την ευχρηστία κατά την συγγραφή κώδικα Python. Παράδειγμα βιβλιοθήκης είναι η math, η οποία περιέχει όλες τις συναρτήσεις για μαθηματικούς υπολογισμούς. Για να μπορέσουμε να χρησιμοποιήσουμε τις συναρτήσεις μιας βιβλιοθήκης, θα […]
19. H macro directive
Υπάρχουν εφαρμογές στον προγραμματισμό σε γλώσσα Assembly στις οποίες μια ομάδα εντολών εκτελεί μια εργασία η οποία επαναλαμβάνεται στο ίδιο πρόγραμμα. Είναι βαρετό να γράφουμε ξανά και ξανά αυτήν την ομάδα εντολών όποτε χρειάζεται. Επομένως για να μειώσουμε το χρόνο εγγραφής του κώδικα και να μειώσουμε την πιθανότητα λαθών χρησιμοποιούμε την έννοια των macros. Τα […]