やりたいこと
Arduinoで赤外線リモコンの信号を受信して、数値データを見てみたい。
(リモコンの信号をコピーして、別途送信機を作った。)
必要な部品
必要な部品は以下の通り。
Infrared Receiver Module: OSRB38C9AA
Capacitor: 100uF/25V
R1: 100 ohm
R2: 10k ohm
ブレッドボード
ブレッドボードの配線は以下の通り。
ソースコード
ソースコードは以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
#define PIN_IR_RECEIVER 8 void setup(){ pinMode(PIN_IR_RECEIVER, INPUT); Serial.begin(57600); Serial.println("setup OK."); } void loop() { unsigned long tsBase = micros(); unsigned long tsPrev = tsBase; unsigned long tsNow = tsBase; unsigned long diff = 0; int input = digitalRead(PIN_IR_RECEIVER); if (input == LOW) { //Active-Low int prevInput = LOW; while (true) { if (input == prevInput) { //do nothing } else { tsNow = micros(); Serial.print(tsNow - tsPrev, DEC); // if (prevInput == LOW) { // 直前の入力レベルが現在のレベルになる // previous level = current level // Serial.print('Low'); // } else { // Serial.print('High'); // } Serial.print(","); prevInput = input; tsPrev = tsNow; } input = digitalRead(PIN_IR_RECEIVER); if (micros() - tsBase > 500000) { Serial.println(); Serial.println(); Serial.println("wait..."); delay(1500); Serial.println("next"); break; } } } } |
動作確認
Arduino Infrared Receiver