Skip to content

Instantly share code, notes, and snippets.

@ruten-proteus
Created January 12, 2019 06:35
接收 UART 字元,發射指定的紅外線編碼
#include "IRremote.h"
IRsend irsend; // D3 as IR sending pin
const String hint = "0...9, #, *, u(UP), d(DOWN), r(RIGHT), l(LEFT), o(OK)\r\nSelect IR Key to send: ";
void setup() {
Serial.begin( 115200 );
Serial.println( F("IR Emitter Ready...") );
Serial.println();
delay( 1000 );
}
void loop() {
char c;
Serial.print( hint );
while( !Serial.available() );
c = Serial.read();
Serial.println( c );
switch( c ) {
case '1': sendKey( 0x###### ); break; // 1
case '2': sendKey( 0x###### ); break; // 2
case '3': sendKey( 0x###### ); break; // 3
case '4': sendKey( 0x###### ); break; // 4
case '5': sendKey( 0x###### ); break; // 5
case '6': sendKey( 0x###### ); break; // 6
case '7': sendKey( 0x###### ); break; // 7
case '8': sendKey( 0x###### ); break; // 8
case '9': sendKey( 0x###### ); break; // 9
case '0': sendKey( 0x###### ); break; // 0
case '*': sendKey( 0x###### ); break; // #
case '#': sendKey( 0x###### ); break; // *
case 'u': sendKey( 0x###### ); break; // UP
case 'd': sendKey( 0x###### ); break; // DOWN
case 'r': sendKey( 0x###### ); break; // RIGHT
case 'l': sendKey( 0x###### ); break; // LEFT
case 'o': sendKey( 0xFDA857 ); break; // OK
default:
break;
} // end switch
}
void sendKey( unsigned long ircode ) {
for( int i = 0; i < 3; i++ ); { // 預設發送三次
irsend.sendNEC( ircode, 32 ); // unsigned long data, int nbits
delay(100);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment