DIY-Hardware
- Arduino UNO R3 (SMD Edition):
- Arduino/Raspberry IR remote + receiver set:
(Teach Logitech Harmony from IR-Remote control)
- Seeed RS232 Shield:
- Cable Sub-D9 to 3.5mm:
Code:
#include <SoftwareSerial.h>
#include <IRremote.h>
SoftwareSerial mySerial(2, 3); //Serial pins
const int RECV_PIN = 7; //Sensor pin
IRrecv irrecv(RECV_PIN); //IR Receiver
decode_results results; //IR Results
void setup()
{
mySerial.begin(9600); //start serial port
irrecv.enableIRIn(); //enable IR Receiver
}
void loop()
{
if (irrecv.decode(&results))
{
switch (results.value)
{
case 0xFFE01F: //Key VOL- (Volume -1dB)
mySerial.println("[Devialet>VOLUME=--]");
mySerial.println("[Devialet>VOLUME=--]");
break;
case 0xFFA857: //Key VOL+ (Volume +1dB)
mySerial.println("[Devialet>VOLUME=++]");
mySerial.println("[Devialet>VOLUME=++]");
break;
case 0xFF22DD: //Key PREV (SAM -5%)
mySerial.println("[Devialet>MATCHING_LEVEL=--]");
mySerial.println("[Devialet>MATCHING_LEVEL=--]");
mySerial.println("[Devialet>MATCHING_LEVEL=--]");
mySerial.println("[Devialet>MATCHING_LEVEL=--]");
mySerial.println("[Devialet>MATCHING_LEVEL=--]");
break;
case 0xFFA25D: //Key CH- (SAM +5%)
mySerial.println("[Devialet>MATCHING_LEVEL=++]");
mySerial.println("[Devialet>MATCHING_LEVEL=++]");
mySerial.println("[Devialet>MATCHING_LEVEL=++]");
mySerial.println("[Devialet>MATCHING_LEVEL=++]");
mySerial.println("[Devialet>MATCHING_LEVEL=++]");
break;
case 0xFF02FD: //Key NEXT (Bass -1dB)
mySerial.println("[Devialet>BASS=--]");
mySerial.println("[Devialet>BASS=--]");
break;
case 0xFF629D: //Key CH (Bass +1dB)
mySerial.println("[Devialet>BASS=++]");
mySerial.println("[Devialet>BASS=++]");
break;
case 0xFFC23D: //Key PLAY/PAUSE (Treble -1dB)
mySerial.println("[Devialet>TREBLE=--]");
mySerial.println("[Devialet>TREBLE=--]");
break;
case 0xFFE21D: //Key CH+ (Treble +1dB)
mySerial.println("[Devialet>TREBLE=++]");
mySerial.println("[Devialet>TREBLE=++]");
break;
case 0xFF9867: //Key 100+ (Balance -5)
mySerial.println("[Devialet>BALANCE=--]");
mySerial.println("[Devialet>BALANCE=--]");
mySerial.println("[Devialet>BALANCE=--]");
mySerial.println("[Devialet>BALANCE=--]");
mySerial.println("[Devialet>BALANCE=--]");
break;
case 0xFFB04F: //Key 200+ (Balance +5)
mySerial.println("[Devialet>BALANCE=++]");
mySerial.println("[Devialet>BALANCE=++]");
mySerial.println("[Devialet>BALANCE=++]");
mySerial.println("[Devialet>BALANCE=++]");
mySerial.println("[Devialet>BALANCE=++]");
break;
case 0xFF906F: //Key EQ (Mute on/off)
mySerial.println("[Devialet>MUTE=!]");
break;
case 0xFF6897: //Key 0 (Power off)
mySerial.println("[Devialet>POWER=0]");
break;
case 0xFF30CF: //Key 1 (Power on)
mySerial.println("[Devialet>POWER=1]");
break;
case 0xFF18E7: //Key 2 (Input Digital1)
mySerial.println("[Devialet>SOURCE=Digital 1]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]");
break;
case 0xFF7A85: //Key 3 (Input Optical 1)
mySerial.println("[Devialet>SOURCE=Optical 1]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]"); //SAM on
break;
case 0xFF10EF: //Key 4 (Input USB)
mySerial.println("[Devialet>SOURCE=USB]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]");
break;
case 0xFF38C7: //Key 5 (Input Line 1)
mySerial.println("[Devialet>SOURCE=Line 1]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_MODE=0]"); //SAM off
break;
case 0xFF5AA5: //Key 6 (Input UPnP)
mySerial.println("[Devialet>SOURCE=UPnP]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]");
break;
case 0xFF42BD: //Key 7 (Input Roon Ready)
mySerial.println("[Devialet>SOURCE=Roon Ready]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]");
break;
case 0xFF4AB5: //Key 8 (Input AirPlay)
mySerial.println("[Devialet>SOURCE=AirPlay]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]");
break;
case 0xFF52AD: //Key 9 (Input Spotify)
mySerial.println("[Devialet>SOURCE=Spotify]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]");
break;
}
irrecv.resume();
}
delay(500);
}
- Arduino UNO R3 (SMD Edition):
- Arduino/Raspberry IR remote + receiver set:
(Teach Logitech Harmony from IR-Remote control)
- Seeed RS232 Shield:
- Cable Sub-D9 to 3.5mm:
Code:
#include <SoftwareSerial.h>
#include <IRremote.h>
SoftwareSerial mySerial(2, 3); //Serial pins
const int RECV_PIN = 7; //Sensor pin
IRrecv irrecv(RECV_PIN); //IR Receiver
decode_results results; //IR Results
void setup()
{
mySerial.begin(9600); //start serial port
irrecv.enableIRIn(); //enable IR Receiver
}
void loop()
{
if (irrecv.decode(&results))
{
switch (results.value)
{
case 0xFFE01F: //Key VOL- (Volume -1dB)
mySerial.println("[Devialet>VOLUME=--]");
mySerial.println("[Devialet>VOLUME=--]");
break;
case 0xFFA857: //Key VOL+ (Volume +1dB)
mySerial.println("[Devialet>VOLUME=++]");
mySerial.println("[Devialet>VOLUME=++]");
break;
case 0xFF22DD: //Key PREV (SAM -5%)
mySerial.println("[Devialet>MATCHING_LEVEL=--]");
mySerial.println("[Devialet>MATCHING_LEVEL=--]");
mySerial.println("[Devialet>MATCHING_LEVEL=--]");
mySerial.println("[Devialet>MATCHING_LEVEL=--]");
mySerial.println("[Devialet>MATCHING_LEVEL=--]");
break;
case 0xFFA25D: //Key CH- (SAM +5%)
mySerial.println("[Devialet>MATCHING_LEVEL=++]");
mySerial.println("[Devialet>MATCHING_LEVEL=++]");
mySerial.println("[Devialet>MATCHING_LEVEL=++]");
mySerial.println("[Devialet>MATCHING_LEVEL=++]");
mySerial.println("[Devialet>MATCHING_LEVEL=++]");
break;
case 0xFF02FD: //Key NEXT (Bass -1dB)
mySerial.println("[Devialet>BASS=--]");
mySerial.println("[Devialet>BASS=--]");
break;
case 0xFF629D: //Key CH (Bass +1dB)
mySerial.println("[Devialet>BASS=++]");
mySerial.println("[Devialet>BASS=++]");
break;
case 0xFFC23D: //Key PLAY/PAUSE (Treble -1dB)
mySerial.println("[Devialet>TREBLE=--]");
mySerial.println("[Devialet>TREBLE=--]");
break;
case 0xFFE21D: //Key CH+ (Treble +1dB)
mySerial.println("[Devialet>TREBLE=++]");
mySerial.println("[Devialet>TREBLE=++]");
break;
case 0xFF9867: //Key 100+ (Balance -5)
mySerial.println("[Devialet>BALANCE=--]");
mySerial.println("[Devialet>BALANCE=--]");
mySerial.println("[Devialet>BALANCE=--]");
mySerial.println("[Devialet>BALANCE=--]");
mySerial.println("[Devialet>BALANCE=--]");
break;
case 0xFFB04F: //Key 200+ (Balance +5)
mySerial.println("[Devialet>BALANCE=++]");
mySerial.println("[Devialet>BALANCE=++]");
mySerial.println("[Devialet>BALANCE=++]");
mySerial.println("[Devialet>BALANCE=++]");
mySerial.println("[Devialet>BALANCE=++]");
break;
case 0xFF906F: //Key EQ (Mute on/off)
mySerial.println("[Devialet>MUTE=!]");
break;
case 0xFF6897: //Key 0 (Power off)
mySerial.println("[Devialet>POWER=0]");
break;
case 0xFF30CF: //Key 1 (Power on)
mySerial.println("[Devialet>POWER=1]");
break;
case 0xFF18E7: //Key 2 (Input Digital1)
mySerial.println("[Devialet>SOURCE=Digital 1]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]");
break;
case 0xFF7A85: //Key 3 (Input Optical 1)
mySerial.println("[Devialet>SOURCE=Optical 1]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]"); //SAM on
break;
case 0xFF10EF: //Key 4 (Input USB)
mySerial.println("[Devialet>SOURCE=USB]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]");
break;
case 0xFF38C7: //Key 5 (Input Line 1)
mySerial.println("[Devialet>SOURCE=Line 1]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_MODE=0]"); //SAM off
break;
case 0xFF5AA5: //Key 6 (Input UPnP)
mySerial.println("[Devialet>SOURCE=UPnP]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]");
break;
case 0xFF42BD: //Key 7 (Input Roon Ready)
mySerial.println("[Devialet>SOURCE=Roon Ready]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]");
break;
case 0xFF4AB5: //Key 8 (Input AirPlay)
mySerial.println("[Devialet>SOURCE=AirPlay]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]");
break;
case 0xFF52AD: //Key 9 (Input Spotify)
mySerial.println("[Devialet>SOURCE=Spotify]");
delay(100);
mySerial.println("[Devialet>BALANCE=0]");
mySerial.println("[Devialet>BASS=6.0]");
mySerial.println("[Devialet>TREBLE=0]");
mySerial.println("[Devialet>MATCHING_LEVEL=75]");
mySerial.println("[Devialet>MATCHING_MODE=1]");
break;
}
irrecv.resume();
}
delay(500);
}