Η κατάσταση ενός μανδαλωτή, όπως τον παρουσιάσαμε σε προηγούμενο άρθρο, μεταβάλλεται με την συγκεκριμένη αλλαγή στις εισόδους του. Σε ένα μανδαλωτή τύπου D, όσο η είσοδος ελέγχου είναι ενεργοποιημένη, δηλαδή όταν οι παλμοί του ρολογιού βρίσκονται σε θετικό επίπεδο, τότε οποιοδήποτε αλλαγές στην είσοδο δεδομένων D, προκαλούν αλλαγές στην κατάσταση του μανδαλωτή και στην έξοδο […]
5. Διακοπτόμενα τροφοδοτικά
Στο προηγούμενο άρθρο παρουσιάσαμε το παραδοσιακό γραμμικό τροφοδοτικό το οποίο αποτελείται από τον μετασχηματιστή, τις διόδους ανόρθωσης, το φίλτρο και το κύκλωμα σταθεροποίησης. Το τελευταίο μπορεί να είναι μια δίοδος Zener μαζί με ένα τρανζίστορ και μια αντίσταση πόλωσης ή ένα γραμμικό κύκλωμα σταθεροποίησης τύπου ολοκληρωμένου κυκλώματος όπως με τη σειρά 78xx. Το χαρακτηριστικό αυτού […]
4. Σταθεροποιητές τάσης με ολοκληρωμένα κυκλώματα
Η διαθεσιμότητα σταθεροποιητών υπό μορφή ολοκληρωμένου κυκλώματος, οδήγησε στον απλοποιημένο σχεδιασμό των τροφοδοτικών. Τα ολοκληρωμένα κυκλώματα σταθεροποίησης τάσης είναι διαθέσιμα και παρέχουν μια ποικιλία τάσεων εξόδου και υλοποιημένα σε αντοχή για συγκεκριμένη κατανάλωση ισχύος. Σήμερα είναι σχεδόν σπάνιο να βρούμε τροφοδοτικά κατασκευασμένα με διακριτά στοιχεία, όπως περιγράφηκαν σε προηγούμενη ενότητα. Ο δημοφιλής τύπος σταθεροποιητή 78Xxx […]
3. Κυκλώματα σταθεροποίησης τάσης
Για να εξαλείψουμε την κυμάτωση και για να έχουμε περισσότερη σταθεροποίηση της τάσης εξόδου στο τροφοδοτικό που παρουσιάσαμε στη προηγούμενη ενότητα, πρέπει να προσθέσουμε στην έξοδο του ένα κύκλωμα σταθεροποίησης. Κύκλωμα σταθεροποίησης με δίοδο Zener Ένα απλό και φθηνό κύκλωμα σταθεροποίησης είναι με τη χρήση μιας διόδου Zener όπως φαίνεται στο σχήμα. Αυτό είναι κατάλληλο […]
Αναπτυξιακή πλακέτα Arduino Nano
Εισαγωγή Για να διευκολυνθούμε στην ανάπτυξη έργων με την πλατφόρμα Arduino, δημιουργήσαμε μια αναπτυξιακή πλακέτα βασισμένη σε ένα συγκεκριμένο μέλος της οικογένειας Arduino, στο Arduino Nano, όπως την παρουσιάζουμε στη συνέχεια. Παρουσίαση της κατασκευής Καρδιά της πλακέτας είναι το module Arduino Nano όπου πάνω του υπάρχει ένας μικροελεγκτής AVR και συγκεκριμένα ο ATmega328Ρ που μαζί […]
Ανίχνευση ατμών αλκόολ με τον αισθητήρα MQ3
Ο αισθητήρας MQ3 είναι μια δημοφιλής και οικονομική λύση για δημιουργία projects με το Arduino που τους δίνει την δυνατότητα να «μυρίζουν» αλκοόλ στον αέρα. Όμως χρειάζεται σωστή προθέρμανση και βαθμονόμηση για να δώσει αξιοποιήσιμες μετρήσεις. Έτσι με αυτό τον αισθητήρα μπορούμε να έχουμε τόσο την ένδειξη παρουσίας αλκόολ στο χώρο όσο και μια εκτίμηση […]
Επικοινωνία με τις TX-RX 433MHz RF μονάδες
Σε αυτό το άρθρο, παρουσιάζουμε μια εργασία πάνω στην πλατφόρμα Arduino, η οποία επιδεικνύει την ασύρματη ψηφιακή μετάδοση δεδομένων, χρησιμοποιώντας απλές τυποποιημένες μονάδες πομπού και δέκτη RF στα 433MHz. Αυτές οι μονάδες διατίθενται στο διαδίκτυο, με κόστος λιγότερο από δυο δολάρια, καθιστώντας τες μια από τις πιο οικονομικές επιλογές για ασύρματη μετάδοση δεδομένων. Επίσης διαθέτουν […]
Μέτρηση περιβαλλοντικών μεγεθών με τον αισθητήρα BME680
Παρουσίαση της κατασκευής Με τη βοήθεια του αισθητήρα ΒΜΕ680 μπορούμε να έχουμε μια ένδειξη για την ποιότητα αέρα μέσα στο σπίτι, στις αίθουσες σχολείων, στους χώρους εργασίας κ.ά. Επίσης με τον ίδιο αισθητήρα, μπορούμε να μετρήσουμε την θερμοκρασία, την ατμοσφαιρική πίεση, την υγρασία και όλα αυτά με την διασύνδεση αυτού του αισθητήρα με την πλατφόρμα […]
16. Προγραμματίζοντας τις διακοπές στη γλώσσα C
Μέχρι στιγμής όλα τα προγράμματα που αφορούν τις διακοπές, γράφτηκαν σε γλώσσα Assembly. Σε αυτή την ενότητα θα δείξουμε πώς να προγραμματίζουμε τις διακοπές του AVR στη γλώσσα C. Στη C δεν υπάρχει εντολή που να διαχειρίζεται τις διακοπές. Στο Atmel Studio, τα επόμενα έχουν προστεθεί για τη διαχείριση των διακοπών.1) Interrupt include file: θα […]
15. Διακοπές με αλλαγή κατάστασης πιν – προτεραιότητα
Στον ATmega328 σε κάθε πόρτα υπάρχει μια διακοπή αλλαγής κατάστασης των πινς. Όταν η διακοπή αλλαγής κατάστασης της πόρτας είναι ενεργοποιημένη, κάθε αλλαγή στις καταστάσεις των πινς οδηγούν στη δημιουργία μιας διακοπής. Δες την ακόλουθη εικόνα. Ο καταχωρητής PCICR περιέχει τα bits ενεργοποίησης για τις πόρτες. Για κάθε PCINT πιν της κάθε πόρτας ορίζεται και […]
14. Προγραμματίζοντας με τις εξωτερικές διακοπές
Ο αριθμός των εξωτερικών διακοπών μεταβάλλεται από τον ένα στον άλλο τύπο AVR. Ο ATmega328 έχει δυο εξωτερικές διακοπές: πιν PD2 (PORTD.2) και πιν PD3 (PORTD.3) που ονομάζονται σαν ΙΝΤ0 και ΙΝΤ1 αντίστοιχα. Όταν συμβεί μια διακοπή σε αυτά τα πινς ο AVR διακόπτεται ότι κι αν κάνει και μεταβαίνει στο vector table για να […]
13. Σημαία σύγκρισης OCF και διακοπές
Μερικές φορές χρειάζεται να εκτελεστεί μια εργασία περιοδικά, όπως στα παραδείγματα των προηγούμενων ενοτήτων. Αυτά τα προγράμματα μπορούν να γραφούν χρησιμοποιώντας CTC mode και με τη χρήση της αντίστοιχης διακοπής. Για να το κάνουμε, θα πρέπει να φορτώσουμε τον καταχωρητή OCF με την κατάλληλη τιμή και να διαμορφώνουμε τον timer στην CTC mode. Έτσι όταν […]
12. Προγραμματίζοντας με τις διακοπές των timers
Στην προηγούμενη ενότητα μάθαμε πώς να χρησιμοποιούμε τους Timers 0, 1 και 2 με την μέθοδο της δειγματοληψίας. Σε αυτή την ενότητα θα χρησιμοποιήσουμε τις διακοπές για να προγραμματίσουμε τους AVR timers. Σημαία υπερχείλισης και διακοπές Στην προηγούμενη ενότητα μάθαμε ότι η σημαία υπερχείλισης τίθεται σε 1 όταν ο Timer μεταβαίνει από την μέγιστη τιμή […]
11. Η έννοια της διακοπής στους AVR
Σε αυτή την ενότητα, πρώτα θα εξετάσουμε την διαφορά μεταξύ δειγματοληψιών και διακοπών και στη συνέχεια θα εξετάσουμε τις διακοπές του AVR. Διακοπές έναντι δειγματοληψιών Ένας μικροελεγκτής μπορεί να εξυπηρετήσει πολλαπλές συσκευές. Υπάρχουν δυο τρόποι που μπορεί να γίνει αυτό: με διακοπές και με δειγματοληψίες. Στη μέθοδο των διακοπών, όποτε μια συσκευή χρειάζεται εξυπηρέτηση, η […]
17. Σύνολα
Μια άλλη δομή δεδομένων είναι τα σύνολα, όπου τα στοιχεία του συνόλου χωρίζονται με κόμμα και περικλείονται μέσα σε άγκιστρα. Ένα σύνολο περιέχει μοναδικά στοιχεία, τα οποία δεν είναι διατεταγμένα, δηλαδή δεν μπορούμε να τα καθορίσουμε με δείκτη. Τα σύνολα στην Python χρησιμοποιούνται για την εκτέλεση μαθηματικών πράξεων μεταξύ συνόλων, όπως είναι η τομή, η […]
16. Λεξικά
Με τις δομές δεδομένων αποθηκεύουμε δεδομένα που είναι «σχετικά» μεταξύ τους, όπως είναι οι λίστες και οι πλειάδες. Σε αυτή την ενότητα θα δούμε τις υπόλοιπες δομές δεδομένων, τα λεξικά και τα σύνολα. Το λεξικό είναι μια δομή δεδομένων που αποτελείται από ζεύγη της μορφής κλειδί (keys) – τιμή (values). Τα κλειδιά είναι μοναδικά και […]
10. Προγραμματίζοντας τους timers σε C
Όπως έχουμε δει, οι γενικού σκοπού καταχωρητές του AVR είναι στον έλεγχο του C compiler και δεν έχουμε άμεση πρόσβασή σε αυτούς με τις εντολές της C. Μπορούμε όμως, να έχουμε πρόσβαση σε όλους τους SFRs (Special Function Registers) άμεσα χρησιμοποιώντας τις εντολές της C. Στη γλώσσα C μπορούμε να έχουμε πρόσβαση στους καταχωρητές του […]
9. Counter programming
Στην προηγούμενη ενότητα χρησιμοποιήσαμε τους timers του AVR για να παράγουμε χρονικές καθυστερήσεις. Ο AVR timer μπορεί να χρησιμοποιηθεί για να μετρήσει, να αναγνωρίσει και να απαριθμήσει τα γεγονότα που δημιουργούνται εξωτερικά του AVR. Η χρήση του timer σαν απαριθμητή γεγονότων παρουσιάζεται σε αυτή την ενότητα. Όταν ο timer χρησιμοποιείται σαν timer ο ταλαντωτής του […]
8. Πρόσβαση στους 16bit καταχωρητές
Ο AVR είναι ένας 8bit μικροελεγκτής που σημαίνει ότι μπορεί να χειρίζεται δεδομένα μεγέθους 8bit κάθε φορά. Όμως μερικοί καταχωρητές του Timer1 όπως οι TCNT1, OCR1A, ICR1 κ.τ.λ. είναι μεγέθους 16bit. Σε αυτή την περίπτωση οι καταχωρητές διαχωρίζονται σε δυο 8bit καταχωρητές και κάθε ένας προσπελαύνεται ανεξάρτητα. Αυτό είναι εντάξει στις περισσότερες περιπτώσεις. Για παράδειγμα […]
7. Προγραμματίζοντας τον Timer1
O Timer1 είναι ένας 16-bit χρονιστής ο οποίος έχει πολλές δυνατότητες. Επειδή ο Timer1 είναι 16bit o καταχωρητής TCNT1 μεγέθους 16bit αποτελείται από δυο bytes. Αυτά αναφέρονται σαν TCNT1L (Timer low byte) και TCNT1H (Timer high byte). Ο Timer1 έχει τρεις καταχωρητές ελέγχου που ονομάζονται TCCR1A (Timer/counter 1 control register), TCCR1B και TCCR1C. Η σημαία […]