![]() |
Με την βοήθεια των δύο 74HC595 shift register μπορούμε να επεκτείνουμε τις εξόδους του arduino κατά 13 εξόδους. Δηλαδή απασχολούμε 3 από τις διαθέσιμες ψηφιακές εξόδους του arduino και έχουμε 16 ψηφιακές εξόδους + τις υπόλοιπες 10 ψηφιακές εξόδους που απέμειναν.
Υπόψη ότι η διάταξη αυτή εισάγει καθυστέρηση στην εκτέλεση του προγράμματος. Η εμφάνιση των 16 ψηφίων στις 16 εξόδους θα χρειαστεί αντίστοιχους κύκλους ρολογιού. Ενώ λοιπόν θεωρητικά μπορούμε να επεκτείνουμε ακόμη περισσότερο τις εξόδους προσθέτοντας περισσότερα 74HC595 σε σειρά αυτό θα πρέπει να γίνεται με μέτρο. Αν η εφαρμογή μας δεν απαιτεί υψηλές ταχύτητες εκτέλεσης μπορούμε να προσθέσουμε περισσότερους shift registers.
Η πλακέτα έχει δοθεί παραγγελία για κατασκευή και είναι σε αναμονή. Μόλις έρθουν θα ανεβάσω περισσότερες φωτογραφίες.
Η πραγματική πλακέτα πριν απο το κόλλημα όπως ήρθε από το εργοστάσιο παραγωγής.
Πλακέτες υπάρχουν διαθέσιμες δείτε εδώ
Στην πράξη,
Χρήση των επιπλέον pin.
Κώδικα για δοκιμές μπορείτε να βρείτε στο επίσημο site του arduino----------------------------------------------------------
Μετά από έρευνα στο δίκτυο κατέληξα στο συμπέρασμα ότι η πιο χρηστική βιβλιοθήκη για την χρήση των επιπλέον pin είναι η παρακάτω Shift-Register-74HC595-Arduino-Library-master
Έχει δύο functions που επιτρέπουν να ορίσεις όλα τα pin με μια εντολή high ή low
HIGH sr.setAllHigh();
LOW sr.setAllLow();
Μπορεί να ορίσει οποιοδήποτε pin HIGH ή LOW
int pin = 0;
sr.set(pin, HIGH); // ισοδύναμο με το sr.set(pin, 1);
Μπορεί να ορίσει όλα pin ταυτόχρονα
// sets all pins at once (pin 0 low, pin 1 high, ...)
sr.set(pin, HIGH); // ισοδύναμο με το sr.set(pin, 1);
Μπορεί να ορίσει όλα pin ταυτόχρονα
// sets all pins at once (pin 0 low, pin 1 high, ...)
uint8_t pinValues[] = { B10101010 };
sr.setAll(pinValues);
Το ίδιο για περισσότερους από έναν shift register.
// set multiple pins at once when using two shift registers in series
sr.setAll(pinValues);
Το ίδιο για περισσότερους από έναν shift register.
// set multiple pins at once when using two shift registers in series
uint8_t pinValues[] = { B00011000, B10101010 };
sr.setAll(pinValues);
sr.setAll(pinValues);
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου