Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <IRLib.h>
- int RECV_PIN = 13;
- IRrecv My_Receiver(RECV_PIN);
- IRdecode My_Decoder;
- IRsend My_Sender;
- IRTYPES codeType;
- unsigned long codeValue;
- int codeBits;
- unsigned int rawCodes[RAWBUF];
- int rawCount;
- bool GotOne, GotNew;
- void setup()
- {
- pinMode(2, OUTPUT);
- pinMode(3, OUTPUT);
- pinMode(4, OUTPUT);
- pinMode(5, OUTPUT);
- pinMode(6, OUTPUT);
- pinMode(7, OUTPUT);
- pinMode(8, OUTPUT);
- pinMode(9, OUTPUT);
- digitalWrite(9, 0);
- GotOne=false; GotNew=false;
- codeType=UNKNOWN;
- codeValue=0;
- Serial.begin(9600);
- delay(2000);while(!Serial);//delay for Leonardo
- Serial.println(F("Send a code from your remote and we will record it."));
- Serial.println(F("Type any character and press enter. We will send the recorded code."));
- My_Receiver.enableIRIn();
- }
- void storeCode(void) {
- GotNew=true;
- codeType = My_Decoder.decode_type;
- if (codeType == UNKNOWN) {
- Serial.println("Received unknown code, saving as raw");
- rawCount = My_Decoder.rawlen-1;
- for (int i = 1; i <=rawCount; i++) {
- rawCodes[i - 1] = My_Decoder.rawbuf[i];
- };
- My_Decoder.DumpResults();
- codeType=UNKNOWN;
- }
- else {
- Serial.print(F("Received "));
- Serial.print(Pnames(codeType));
- if (My_Decoder.value == REPEAT) {
- Serial.println(F("repeat; ignoring."));
- }
- else {
- codeValue = My_Decoder.value;
- codeBits = My_Decoder.bits;
- }
- Serial.print(F(" Value:0x"));
- Serial.println(My_Decoder.value, HEX);
- if (My_Decoder.value ==0xFF6897)
- {
- sifir();
- }
- if (My_Decoder.value ==0xFF30CF)
- {
- bir();
- }
- if (My_Decoder.value ==0xFF18E7)
- {
- iki();
- }
- if (My_Decoder.value ==0xFF7A85)
- {
- uc();
- }
- if (My_Decoder.value ==0xFF10EF)
- {
- dort();
- }
- if (My_Decoder.value ==0xFF38C7)
- {
- bes();
- }
- if (My_Decoder.value ==0xFF5AA5)
- {
- alti();
- }
- if (My_Decoder.value ==0xFF42BD)
- {
- yedi();
- }
- if (My_Decoder.value ==0xFF4AB5)
- {
- sekiz();
- }
- if (My_Decoder.value ==0xFF52AD)
- {
- dokuz();
- }
- }
- }
- void sendCode(int repeat) {
- if(codeType== UNKNOWN) {
- My_Sender.IRsendRaw::send(rawCodes,rawCount,38);
- Serial.println(F("Sent raw"));
- return;
- }
- if( !GotNew ) {
- if (codeType == RC5) {
- codeValue ^= 0x0800;
- }
- else if (codeType == RC6) {
- codeValue ^= 0x10000;
- }
- }
- GotNew=false;
- My_Sender.send(codeType,codeValue,codeBits);
- Serial.print(F("Sent "));
- Serial.print(Pnames(codeType));
- Serial.print(F(" Value:0x"));
- Serial.println(codeValue, HEX);
- }
- void loop() {
- if (Serial.read() != -1) {
- if(GotOne) {
- sendCode(0);
- My_Receiver.enableIRIn();
- }
- }
- else if (My_Receiver.GetResults(&My_Decoder)) {
- My_Decoder.decode();
- GotOne=true;
- storeCode();
- delay(1000);
- My_Receiver.resume();
- }
- }
- void dokuz ()
- {
- digitalWrite(2, 1);
- digitalWrite(3, 1);
- digitalWrite(4, 1);
- digitalWrite(5, 0);
- digitalWrite(6, 0);
- digitalWrite(7, 1);
- digitalWrite(8, 1);
- }
- void sekiz ()
- {
- digitalWrite(2, 1);
- digitalWrite(3, 1);
- digitalWrite(4, 1);
- digitalWrite(5, 1);
- digitalWrite(6, 1);
- digitalWrite(7, 1);
- digitalWrite(8, 1);
- }
- void yedi ()
- {
- digitalWrite(2, 1);
- digitalWrite(3, 1);
- digitalWrite(4, 1);
- digitalWrite(5, 0);
- digitalWrite(6, 0);
- digitalWrite(7, 0);
- digitalWrite(8, 0);
- }
- void alti ()
- {
- digitalWrite(2, 1);
- digitalWrite(3, 0);
- digitalWrite(4, 1);
- digitalWrite(5, 1);
- digitalWrite(6, 1);
- digitalWrite(7, 1);
- digitalWrite(8, 1);
- }
- void bes ()
- {
- digitalWrite(2, 1);
- digitalWrite(3, 0);
- digitalWrite(4, 1);
- digitalWrite(5, 1);
- digitalWrite(6, 0);
- digitalWrite(7, 1);
- digitalWrite(8, 1);
- }
- void dort ()
- {
- digitalWrite(2, 0);
- digitalWrite(3, 1);
- digitalWrite(4, 1);
- digitalWrite(5, 0);
- digitalWrite(6, 0);
- digitalWrite(7, 1);
- digitalWrite(8, 1);
- }
- void uc ()
- {
- digitalWrite(2, 1);
- digitalWrite(3, 1);
- digitalWrite(4, 1);
- digitalWrite(5, 1);
- digitalWrite(6, 0);
- digitalWrite(7, 0);
- digitalWrite(8, 1);
- }
- void iki ()
- {
- digitalWrite(2, 1);
- digitalWrite(3, 1);
- digitalWrite(4, 0);
- digitalWrite(5, 1);
- digitalWrite(6, 1);
- digitalWrite(7, 0);
- digitalWrite(8, 1);
- }
- void bir ()
- {
- digitalWrite(2, 0);
- digitalWrite(3, 1);
- digitalWrite(4, 1);
- digitalWrite(5, 0);
- digitalWrite(6, 0);
- digitalWrite(7, 0);
- digitalWrite(8, 0);
- }
- void sifir ()
- {
- digitalWrite(2, 1);
- digitalWrite(3, 1);
- digitalWrite(4, 1);
- digitalWrite(5, 1);
- digitalWrite(6, 1);
- digitalWrite(7, 1);
- digitalWrite(8, 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement