Promicroinfrarot-technotrend.ino: Unterschied zwischen den Versionen
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(); } } }