void loop() { int d; unsigned long code = 0; if ((d = Serial.read()) != -1) { switch (d) { case '1': code = 0x1CE3807F; break; case '2': code = 0x1CE340BF; break; case '3': code = 0x1CE3C03F; break; case '4': code = 0x1CE320DF; break; case '5': code = 0x1CE3A05F; break; case '6': code = 0x1CE3609F; break; case '7': code = 0x1CE3E01F; break; case '8': code = 0x1CE310EF; break; case '9': code = 0x1CE3906F; break; case '0': code = 0x1CE300FF; break; case 'q': code = 0x1CE3708F; break; // volume up case 'a': code = 0x1CE3F00F; break; // volume down case 'w': code = 0x1CE350AF; break; // channel up case 's': code = 0x1CE3D02F; break; // channel down case 'e': code = 0x1CE3C837; break; // source case 'd': code = 0x1CE3A25D; break; // enter case 'p': code = 0x1CE348B7; break; // power default: code = 0; } if (code != 0) { irsend.sendNEC(code, 32); } } }
//unsigned long long Souliss_T_IrCom_Reset = 0xc800F0400LL; void Souliss_Logic_T_IrCom(U8 *memory_map, U8 slot, U8 *trigger) { // Look for base IR value, add the command unsigned long long TOnOff = Souliss_T_IrCom_WMC_IRBase; if(memory_map[MaCaco_IN_s + slot] != Souliss_T_IrCom_Reset) // Memory value is used as timer { #ifdef DEBUG Serial.print("WMC Command: "); Serial.println(memory_map[MaCaco_IN_s + slot],HEX ); #endif if(memory_map[MaCaco_OUT_s + slot] != memory_map[MaCaco_IN_s + slot]) *trigger = Souliss_TRIGGED; // Trig change //check intervallo comandi if (memory_map[MaCaco_IN_s + slot] >= Souliss_T_IrCom_WMC_Prog_0 && memory_map[MaCaco_IN_s + slot] <= Souliss_T_IrCom_WMC_Photo) {//Windows Media Center //add the command to default WMC mask: 0xc800F0400LL TOnOff = TOnOff ^ memory_map[MaCaco_IN_s + slot]; //RC6 protocol toggle if (toggle == 0) { irsend.sendRC6(TOnOff, WMC_BITS); } else { irsend.sendRC6(TOnOff ^ 0x8000, WMC_BITS); } toggle = 1 - toggle; } //Samsung Aircon (0xF0 to 0xFF) 64bit codes 71-TEMP-FUN-F0 else if (memory_map[MaCaco_IN_s + slot] >= 0xF0 && memory_map[MaCaco_IN_s + slot] <= 0xFF) { ;//TODO IRSendSamsung } //add your device here: //else if (memory_map[MaCaco_IN_s + slot] >= Souliss_T_IrCom_DEVICE_FIRST_COMMAND && memory_map[MaCaco_IN_s + slot] <= Souliss_T_IrCom_DEVICE_LAST_COMMAND) //{} memory_map[MaCaco_OUT_s + slot] = memory_map[MaCaco_IN_s + slot]; memory_map[MaCaco_IN_s + slot] = Souliss_T_IrCom_Reset; // Reset } }
void loop () { static char state = 'n'; if (digitalRead(red_button) == LOW) { state = 'r'; } if (digitalRead(blue_button) == LOW) { state = 'b'; } if (state == 'n') return; if (state == 'r') { irsend.sendSony(CAPTURE_RED, 2); } else { irsend.sendSony(CAPTURE_BLUE, 2); } delay(45); }
void loop() { int khz = 38; // 38 khz //Samsung Smart TV Off signal unsigned int irSignal[] = {4600,4350,700,1550,650, 1550,650,1600,650,450,650,450,650,450,650,450,700,400,700,1550,650,1550,650,1600,650,450,650,450, 650,450,700,450,650,450,650,450,650,1550,700,450,650,450,650,450,650,450,650,450,700,400,650,1600,650, 450,650,1550,650,1600,650,1550,650,1550,700,1550,650,1550,650}; // send the raw signal irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), khz); Serial.println("Sent TV Power Off signal"); delay(60000); //In this example, the signal will be repeated every 1 min, approximately. }
void loop() { for (int keyNumber=0; keyNumber<numberOfKeys; keyNumber++) { int physicalPinToRead=keyNumber+4; buttonState[keyNumber] = digitalRead(physicalPinToRead); if (buttonState[keyNumber] != lastButtonState[keyNumber]) { if (buttonState[keyNumber] == LOW) { irsend.sendSony(irKeyCodes[keyNumber], 32); Serial.println("Sending"); } lastButtonState[keyNumber] = buttonState[keyNumber]; } } }
void infrared_sendRaw(uint32_t packet) { //DEBUG_PRINTLN(packet, BIN); irsend.sendSony(packet, 20); delay(15); irrecv.enableIRIn(); }