示例#1
0
文件: ir-tx.cpp 项目: fcwu/iremote
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);
        }
    }
}
示例#2
0
//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

	}
}
示例#3
0
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.
}
示例#5
0
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];
    }
  }
}
示例#6
0
void infrared_sendRaw(uint32_t packet) {
  //DEBUG_PRINTLN(packet, BIN);
  irsend.sendSony(packet, 20);
  delay(15);
  irrecv.enableIRIn();
}