Arduinoで赤外線リモコンを作る 3
2026.1.14
Arduino nano関係の回路図です. (作製,使用は自己責任でお願いします.回路図やスケッチには誤りや,不都合があるかもしれません.) 有線リモコンには付属していないC.RESETとIPLSを付け加えました. これらはIC3の9,10ピンに接続されているコンデンサーの足から配線する予定です
試作はVS1839Bで行なって,一応の動作は確認しましたが,最終的にはOSRB38C9AAに変える予定です.
Arduinoのスケッチは,Elegooのキットに添付されていたLesson13 (IR Receiver Module)のスケッチを元に書き換えたものです. Elegooのリモコンで動作させていますが,将来的にはもっと使い易いものにする予定です.
----ここからスケッチ---下記ブログの方が分かりやすいです--
#include "IRremote.h"
int receiver = 19; // Signal Pin of IR receiver Pin 19 (すなわちA5)
int PinN;
/*-----( Declare objects )-----*/
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results; // create instance of 'decode_results'
/*-----( Function )-----*/
void translateIR() // takes action based on IR code received
{
switch (results.value)
{
case 0xFFE21D: PinN = 12; break; //("FUNC/STOP")
case 0xFF02FD: PinN = 12; break; //("PAUSE")
case 0xFFA25D: PinN = 11; break; //("POWER")
case 0xFF906F: PinN = 10; break; //("UP")
case 0xFFE01F: PinN = 9; break; //("DOWN")
case 0xFFA857: PinN = 8; break; //("VOL-")
case 0xFFC23D: PinN = 7; break; //("FAST FORWARD")
case 0xFF22DD: PinN = 6; break; //("FAST BACK")
case 0xFF6897: PinN = 5; break; //("0")
case 0xFF9867: PinN = 4; break; //("EQ")
case 0xFFFFFFFF: Serial.println(" REPEAT");break;
default:
Serial.println(" other button ");
} // End Case
delay(500); //
} //END translateIR
void setup()
{
Serial.begin(9600);
Serial.println("IR Receiver Button Decode");
irrecv.enableIRIn(); // Start the receiver
for (int i = 4; i <= 12; i++) { pinMode(i, OUTPUT); }
for (int i = 4; i <= 12; i++) { digitalWrite(i, LOW); }
}
void loop()
{
if (irrecv.decode(&results)) // IR signalは来ている?
{
translateIR();
Serial.println(PinN);
digitalWrite(PinN, HIGH); // PinN is pin number.
delay(100);
digitalWrite(PinN, LOW);
delay(200); // チャタリング防止
irrecv.resume(); // 次の信号
}
}
戻る
進む
目次へ
質問,コメントは以下のブログにお願いします.
URL:
https://colorkonan16.asablo.jp/blog/