Δυστυχώς δεν είμαι και πολύ οικείος με τα ολοκληρωμένα μέσω τρύπας, 2-3 που κοίταξα μεταξύ των οποίων και αυτό που πρότεινε το μέλος Peter52, δεν λειτουργούν
με ένα Sense που είναι το ζητούμενο.
Οπότε ότι σου προτείνω είναι με το γνωστό smd
74FST3257 multiplexer που φορά και το μάμπο σου.
Εάν βρεις τρύπας που λειτουργεί με ένα sense, ΟΚ μπορείς να το αντικαταστήσεις.
Σου περιγράφω τη λογική και τι πρέπει να κάνεις.
- Τα spdif1/2 θα αλλάζουν με το πρώτο 74FSTΧΧ το οποίο θα αλλάζει είσοδο μέσω του S (Sense) του, με προγραμματισμό του digital I9
- To usb θα αλλάζει μέσω του δεύτερου 74FSTΧΧ που έχει επάνω του το μάμπο και πάλι μέσω του S (Sense) του, με προγραμματισμό του digital I10.
Θεωρούμε ότι:
Πλήκτρο 1 στο τηλεχειριστήριο σου = SOURCE1_CODE (spdif1)
Πλήκτρο 2 στο τηλεχειριστήριο σου = SOURCE2_CODE (spdif2)
Πλήκτρο 3 στο τηλεχειριστήριο σου = SOURCE3_CODE (usb)
Στον κώδικα αυτά θα περιγράφονται όπως παρακάτω:
#define POWER_CODE 0xB288313B // Code for power on/off
#define SOURCE1_CODE 0xD3D0795A // Code for spdif 1
#define SOURCE2_CODE 0xDBEB8A52 // Code for spdif 2
#define SOURCE3_CODE 0xA10C940B // Code for usb
Εννοείται ότι την τιμή κάθε CODE, θα πρέπει να τη βρεις σύμφωνα με το δικό σου τηλεχειριστήριο και να τη βάλεις μετά το 0x
Φτιάχνεις μια πλακέτα που θα ακολουθεί τη λογική του παρακάτω σχεδίου (στην αρχή θα το δοκιμάσεις σε veroboard πλακέτα).
Εάν χρησιμοποιήσεις τις εισόδους 1 και 2 τότε, στο
1Β1 θα φέρεις το θετικό του spdif1 και στο
1Β2 θα φέρεις το θετικό του spdif2. H έξοδος του θετικού που θα πηγαίνει στο θετικό της spdif εισόδου του μάμπο θα είναι η
1Α.
Ακολούθως θα ακολουθήσεις τα ίδια για το ground του κάθε σήματος, spdif1 στο
2Β1, spdif2 στο
2Β2 και έξοδος στο
2Α προς το μάμπο.
Οι λοιπές είσοδοι-έξοδοι που δεν θα χρησιμοποιηθούν θα πάνε στο gnd.
- Όταν στο S του πολυπλέκτη της πλακέτας δεν θα πηγαίνει τάση από το digital pinI9 θα επιλέγεται η spdif1, εάν θα πηγαίνει τάση θα επιλέγεται η spdif2.
- Ακολούθως όταν στο S του πολυπλέκτη του μάμπο θα πηγαίνει τάση από το digital pinI10 θα επιλέγεται η usb, εάν όχι θα επιλέγεται η τρέχουσα spdif.
Ο κώδικας που πρέπει να μπει και θα αντικαταστήσει τα
else if ((results.value == SOURCE1_CODE) && (poweron == true)) { // What to do if the Source 1 button is pressed
//Serial.write("Input 1\n");
digitalWrite(I9, LOW);
digitalWrite(I10, LOW);
source = 0;
}
else if ((results.value == SOURCE2_CODE) && (poweron == true)) { // What to do if the Source 2 button is pressed
//Serial.write("Input 2\n");
digitalWrite(I9, HIGH);
digitalWrite(I10, HIGH);
source = 1;
}
Θα πρέπει να είναι ο παρακάτω:
// What to do if the Button 1 is pressed
else if ((results.value == SOURCE1_CODE) && (poweron == true)) { // What to do if the Source 1 button is pressed
//Serial.write("SPDIF 1");
digitalWrite(I9, LOW);
digitalWrite(I10, LOW);
source = 1;
}
// What to do if the Button 2 is pressed
else if ((results.value == SOURCE2_CODE) && (poweron == true)) { // What to do if the Source 2 button is pressed
//Serial.write("SPDIF 2");
digitalWrite(I9, HIGH);
digitalWrite(I10, LOW);
source = 2;
}
// What to do if the Button 3 is pressed
else if ((results.value == SOURCE3_CODE) && (poweron == true)) { // What to do if the Source 2 button is pressed
//Serial.write("USB");
digitalWrite(I10, HIGH);
source = 3;
}
Θα τραβήξεις ένα καλώδιο από το πιν του I9 και θα το πας στον πρώτο πολυπλέκτη της πλακέτας που θα φτιάξεις.
Θα τραβήξεις άλλον ένα καλώδιο από το πιν του I10 και θα το φέρεις στο μεσαίο pin που έχει το μάμπο με την τριπλέτα στη σειρά.
Στο multiplexer της πλακέτας που θα φτιάξεις θα δώσεις τροφοδοσία από τα 5V του μάμπο, το ρεύμα επαρκεί γιατί τραβάνε ελάχιστο ρεύμα.