Promicroinfrarot-technotrend.ino: Unterschied zwischen den Versionen

Aus WiebelPedia
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „<pre> #include <IRLib.h> #include <Keyboard.h> const int buttonPin = 2; // Jumper auf Pin2/GND, damit für Programmierung Programm unterbrochen werden kann c…“)
 
(kein Unterschied)

Aktuelle Version vom 15. März 2018, 22:24 Uhr

#include <IRLib.h>
#include <Keyboard.h>

const int buttonPin = 2;  // Jumper auf Pin2/GND, damit für Programmierung Programm unterbrochen werden kann
const int RECV_PIN = 5;   // Anschluss Data-Pin TSOP1736
char value=0;       // 8bit-Variable für die niedrigsten Bits
int old=0;
int count=0;
const int onoff=7;   // Pin für Optokoppler zum einschalten (LOW = gedrückt, Taste: Rec)

IRrecv My_Receiver(RECV_PIN);
IRdecode My_Decoder;
IRdecodeHash My_Hash_Decoder;


void setup()
{
  pinMode(buttonPin, INPUT);      // Jumper-Pin als Input 
  digitalWrite(buttonPin, HIGH);  // PullUp fuer definierte Pegel
  pinMode(onoff, OUTPUT);
  digitalWrite(onoff, HIGH);
  My_Receiver.enableIRIn();       // Start des IR-Empfangs
}

void loop() {
  
  
  if (My_Receiver.GetResults(&My_Decoder)) //Put results into My_Decoder
  {  
      My_Hash_Decoder.copyBuf(&My_Decoder);     //copy the results to the hash decoder
      My_Decoder.decode();
      value=My_Decoder.value;          // Reduktion auf 8bit
      
      if (old == My_Decoder.value){ count++; } else { count=0; } //wenn Taste bereits gedrückt war, dann zählen, ansonsten auf Null setzen.
      old=My_Decoder.value;        // Mit oberen Bits, sind bei erneutem Tastendruck anders.
      if(count == 1){ delay(500); value=0; } // bei der ersten Wiederholung eine Zwangspause, ansonsten schnelle Tastendrücke bei dauerhaft gedrückter Taste.
      
      if (digitalRead(buttonPin) == 0)  // bei gesetztem Jumper
      {    
      switch (value) {
        case 0x4d:
          Keyboard.press(KEY_UP_ARROW);
          delay(10);
          Keyboard.release(KEY_UP_ARROW);
          break;
        case 0x51:
          Keyboard.press(KEY_DOWN_ARROW);
          delay(10);
          Keyboard.release(KEY_DOWN_ARROW);
          break;
        case 0x4e:
          Keyboard.press(KEY_LEFT_ARROW);
          delay(10);
          Keyboard.release(KEY_LEFT_ARROW);
          break;
        case 0x50:
          Keyboard.press(KEY_RIGHT_ARROW);
          delay(10);
          Keyboard.release(KEY_RIGHT_ARROW);
          break;
        case 0x4f:
          Keyboard.press(KEY_RETURN);
          delay(10);
          Keyboard.release(KEY_RETURN);
          break;
        case 0x59:
          Keyboard.print(char (109));  //m
          break;
        case 0x43:
          Keyboard.print(char (49)); //1
          break;
        case 0x44:
          Keyboard.print(char (50));
          break;
        case 0x45:
          Keyboard.print(char (51));
          break;
        case 0x46:
          Keyboard.print(char (52));
          break;
        case 0x47:
          Keyboard.print(char (53));
          break;
        case 0x48:
          Keyboard.print(char (54));
          break;
        case 0x49:
          Keyboard.print(char (55));
          break;
        case 0x4a:
          Keyboard.print(char (56));
          break;
        case 0x4b:
          Keyboard.print(char (57)); //9
          break;
        case 0x4c:
          Keyboard.print(char (48)); //0
          break;
        case 0x41:
          Keyboard.print(char (112)); //p
          break;
        case 0x54:
          Keyboard.press(KEY_F1);
          delay(10);
          Keyboard.release(KEY_F1); //RED
          break;
        case 0x55:
          Keyboard.press(KEY_F2);
          delay(10);
          Keyboard.release(KEY_F2);//GREEN
          break;   
        case 0x56:
          Keyboard.press(KEY_F3);
          delay(10);
          Keyboard.release(KEY_F3);//YELLOW
          break;
        case 0x57:
          Keyboard.press(KEY_F4);
          delay(10);
          Keyboard.release(KEY_F4);//BLUE
          break;
        case 0x65:
          Keyboard.press(KEY_F12);
          delay(10);
          Keyboard.release(KEY_F12);//Vol+
          break;   
        case 0x66:
          Keyboard.press(KEY_F11);
          delay(10);
          Keyboard.release(KEY_F11);//Vol-
          break;
        case 0x58:
          Keyboard.press(KEY_F10);
          delay(10);
          Keyboard.release(KEY_F10);//Mute
          break;
       case 0x53:
          Keyboard.press(KEY_BACKSPACE);
          delay(10);
          Keyboard.release(KEY_BACKSPACE);//Exit
          break;  
       case 0x42:
          Keyboard.press(KEY_ESC);
          delay(10);
          Keyboard.release(KEY_ESC);//Exit Frontend
          break; 
       case 0x5A: //TV,Radio
          Keyboard.press(KEY_F7);
          delay(10);
          Keyboard.release(KEY_F7);//  USER7
          break;  
       case 0x7a: //Rec
          Keyboard.print(char (114)); //r
          break;
          //digitalWrite(onoff,LOW);
          //delay(100);
          //digitalWrite(onoff,HIGH);
          break;  
       case 0x7b: //Play
          Keyboard.print(char (97)); //a
          break;
       case 0x7c: //Stop
          Keyboard.print(char (115)); //s
          break;
       case 0x52: //i
          Keyboard.print(char (105));
          break;
       case 0x7d:   //Rew
          Keyboard.press(KEY_F5);
          delay(10);
          Keyboard.release(KEY_F5);//Rwd
          break;
       case 0x7e: //Pause
          Keyboard.print(char (32)); //SPACE
          break;
       case 0x7f: //Fwd
          Keyboard.press(KEY_F6);
          delay(10);
          Keyboard.release(KEY_F6);//Fwd
          break;  
       case 0x62: //EPG
          Keyboard.press(KEY_F8);
          delay(10);
          Keyboard.release(KEY_F8);//USER8
          break;            
      }
    delay(90);   
    My_Receiver.resume(); 
    }
  }
}