11
Γειας σας, κλεισμένοι στο σπίτι όλοι και είπα να πιαστώ με κάτι που το σκεφτόμουνα καιρό...
Στο σαλόνι έχω τα Ζ5500 συνδεδεμένα με οπτική στην τηλεόραση με αποτέλεσμα να χρειάζομαι ξεχωριστό τηλεκοντρόλ για την ήχο.
Η λύση ήταν να πάρω ένα κινεζοarduino και να διαβάζω με έναν δέκτη υπερύθρων τους κωδικούς volume+ και volume- της samsung και και πετάω σε ένα ir led τους ανάλογους κωδικούς που θέλουν τα logitech,
επίσης από καιρό είχε καεί το backlight από την lcd (πράγμα που τελικά βόλευε γιατί είχε ενοχλητικό έντονο μπλε φως) οπότε έβαλα δυο άσπρα led δεξιά και αριστερά από την lcd να ανάβουν για 2 sec από την στιγμή που θα
λάβει κάποιο σήμα της έντασης του ήχου, ο arduino μπήκε σε τέτοιο σημείο που μπορεί να πατηθεί το reset και είναι εμφανής η usb θύρα του αν θέλω να αλλάξω κάτι αργότερα... από θέμα hardware δεν έχει τίποτα ιδιαίτερο.
Pin 3 --> Ir led - αντίσταση 300Ω - gnd
Pin 5 --> Ir reciever output (HS0038A2) μαζί με την τροφοδοσία του και κάτι αντιπαρασιτικά πυκνωτάκια που είχε μαζί του όπως τα πήρα από άλλη πλακέτα (κλιματιστικό)
Pin 10 --> Lcd leds - αντίσταση - gnd
Η τροφοδοσία του nano έγινε από κάποια τάση 8V που έρχονται στο χειριστήριο (βρήκα 5V στην πλακέτα αλλά δεν ήθελα να πάρω από εκεί)
και από το AMS1117-5V του arduino έγινε η τροφοδοσία των περιφερειακών του arduino...
φωτογραφίες ξέχασα να βγάλω αλλά δεν ήταν και τίποτα σπουδαίο λίγο θερμοσιλικόνη και 10 καλώδια είναι όλα και όλα...
ο κώδικας είναι μαζέματα από παραδείγματα... στη αρχή έχω γράψει όλους τους κωδικούς των logitech
βίντεο με την λειτουργία του, προσέξετε το backlight δεν ανάβει όταν ρυθμίζω με το χέριΚώδικας:/* kwdikoi ir * * logietch Z5500 * 0x10EF08F7 on0ff * 0x10EF58A7 volume+ * 0x10EF708F Volume- * 0x10EF6897 mute * 0x10EF807F sub - * 0x10EFC03F sub + * 0x10EF609F center - * 0x10EF40BF center + * 0x10EF20DF surround - * 0x10EF00FF surround + * 0x10EFB847 effect * 0x10EFF807 settings * 0x10EF50AF direct * 0x10EFD02F optical * 0x10EF30CF coax * 0x10EFA05F test * 0x10EF08F7 power * tv samsung * 0xE0E0D02F volume - * 0xE0E0E01F volume + * */ #include <IRremote.h> IRrecv irrecv(5); decode_results results; IRsend irsend; unsigned long lastTime = 0; unsigned long currentTime = millis(); void setup() { pinMode(10, OUTPUT); Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver digitalWrite(10, HIGH); } void loop() { currentTime = millis(); if ( currentTime - lastTime >= 2000 ) { digitalWrite(10, LOW); } if (irrecv.decode(&results)) { int value = results.value; Serial.println(value); delay(100); switch(value) { case -12241: irsend.sendNEC(0x10EF708F, 32); Serial.println("volume-"); digitalWrite(10, HIGH); lastTime = currentTime; delay(100); irrecv.enableIRIn(); // Start the receiver break; case -8161: irsend.sendNEC(0x10EF58A7, 32); Serial.println("volume+"); digitalWrite(10, HIGH); lastTime = currentTime; delay(100); irrecv.enableIRIn(); // Start the receiver break; } irrecv.resume(); // Receive the next value } }