Στο ARDUINO έχουμε 20 καρφίτσες εισόδου / εξόδου, έτσι μπορούμε να προγραμματίσουμε 20 ακίδες UNO για χρήση είτε ως είσοδος ή έξοδος. Αν και υπάρχουν περισσότερες καρφίτσες στον ελεγκτή ATMEGA328P από ό, τι στο UNO, αυτό συμβαίνει επειδή κατά το σχεδιασμό της πλακέτας ορισμένοι ακροδέκτες είναι προεπιλεγμένοι.
Τώρα για ορισμένες εφαρμογές χρειαζόμαστε περισσότερες από 30 ακίδες, ας πούμε αν θέλουμε να σχεδιάσουμε ένα LED CUBE 5x5x5, γι 'αυτό χρειαζόμαστε 5x5 + 5 = 30pins. Για τέτοιες περιπτώσεις χρησιμοποιούμε σειριακά σε παράλληλες μάρκες μετατροπέα ή shift register. Ένα chip register register παίρνει σειριακά δεδομένα από την πλακέτα UNO και δίνει έξοδο σε παράλληλη διαμόρφωση 8 bit.
Απαιτούμενα στοιχεία
Υλικό: Arduino uno board, συνδετήρες, 220Ω αντίσταση, LED (οκτώ τεμάχια), 74HC595 IC, ψωμί.
Λογισμικό: Arduino κάθε βράδυ
Διάγραμμα κυκλώματος και εξήγηση εργασίας
Εδώ πρόκειται να στείλουμε δεδομένα σε μέγεθος οκτώ bit μέσω ενός καναλιού για να μετατοπίσουμε το μητρώο. Ο καταχωρητής shift παίρνει τα δεδομένα σειριακά και αποθηκεύει αυτά τα δεδομένα στη μνήμη του. Μόλις τα δεδομένα αποστέλλονται από τον ελεγκτή, θα στείλουμε μια εντολή για να μετατοπίσουμε τον καταχωρητή για να δείξουμε τα δεδομένα στην έξοδο, με αυτήν την εντολή ο καταχωρητής μετατόπισης βάζει τα δεδομένα παράλληλα.
Αυτή η έξοδος εμφανίζεται από οκτώ LED συνδεδεμένα στην έξοδο.
Για να συνδέσουμε το shift register με το Arduino UNO πρέπει να κάνουμε δύο πράγματα:
|
Πρώτα πρέπει να ορίσουμε τις τρεις ακίδες του UNO ως έξοδο. Στη συνέχεια, πρέπει να συνδέσουμε τον ψηφιακό πείρο, τον πείρο ρολογιού και τον πείρο μανδάλωσης σε αυτές τις τρεις ακίδες εξόδου. Μετά από αυτό πρέπει να πούμε στο UNO ποιος πείρος τσιπ είναι συνδεδεμένος με καρφίτσες πλακέτας UNO. Αυτό γίνεται με απλή γραφή στην εντολή "
shiftOut(dataPin, clockPin, data);
". Τα δεδομένα εδώ μπορούν να είναι δυαδικά ή δεκαδικά ή δεκαεξαδικά. Οι οκτώ bit πληροφορίες που πρέπει να σταλούν γράφονται στη θέση των «δεδομένων».
Τα δεδομένα που αποστέλλονται γίνονται ως:
Απενεργοποιήστε το μάνδαλο, αυτό λέει στο τσιπ να μην εμφανίζει έξοδο προς το παρόν.
Για οκτώ φορές θα στέλνουμε δεδομένα με ρολόι σειριακά, έτσι ρολόι με υψηλή ροή δεδομένων χαμηλό και ούτω καθεξής.
Ενεργοποίηση μανδάλου, αυτό λέει στο chip να εμφανίζει δεδομένα οκτώ bit.
Η εργασία του ARDUINO με το SHIFT REGISTER εξηγείται βήμα προς βήμα στον κώδικα C που δίνεται παρακάτω: