目次

【電子工作】Arduinoと赤外線LEDで赤外線リモコンを自作した。

2020年5月6日

こんにちわ、そにたん@sonitan_etologです。
今回はArduinoで赤外線リモコンを作ったので、紹介します。

はじめに

今回つくったものは、ボタンを押すと部屋の電気が消えるリモンコンを作りました。
ソースコードを見ればわかりますが、とても単純なものにしているので
拡張の参考になると思います。

ちなみに今回使用している、パーツは以下になります

 

作り方

今回作ったカイロ図は以下になります。
赤外線LEDに抵抗を挟んでいませんが、抵抗をはさむと
なぜか赤外線が送信されていないので、外しました。
参考にした、サイトも抵抗を使用していなかったです。

ソースコードは以下になります。
IRremote.hは、以下のサイトからダウンロードしてライブラリに追加してください。

ライブラリの追加は以下を参考にしてください。

ちなみに、今回rawData内で格納している電気をONにする信号のデータはIRremoteの付属するサンプルのIRrecvDumpV2を使用しています。受信した結果をシリアルで取得できるので
それをそのまま使用しています。

[c]
#include <IRremote.h>

IRsend irsend;
#define SWITCH_PIN 11
void setup()
{
pinMode(SWITCH_PIN, INPUT_PULLUP);
}

void loop() {
int khz = 38;
unsigned int irSignal[] = {10200,5050, 650,1850, 700,1850, 700,1850, 700,550, 700,600, 700,1850, 700,1850, 650,1900, 650,600, 700,600, 650,1900, 650,1900, 650,600, 700,550, 700,600, 650,600, 700,600, 650,600, 700,600, 650,1900, 650,600, 650,1900, 650,1900, 650,1900, 650,1900, 650,1850, 700,1850, 700,600, 650,1900, 650,600, 700,600, 650,600, 700,600, 650,1900, 650,600, 650,1900, 650,600, 700,600, 650,600, 700,1850, 650,600, 700,600, 650,600, 700,1850, 700,600, 650,600, 700,600, 650,600, 700,550, 700,600, 650,1900, 650,600, 700,1850, 700,600, 650,600, 650,600, 700,1900, 650,1850, 700,1850, 700,550, 700,600, 700,1850, 650,1900, 650,650, 650}; // NEC E73017E8
unsigned int rawData[65] = {600,1900, 600,1950, 600,1950, 600,650, 600,650, 600,1950, 600,1900, 600,1950, 600,650, 600,700, 600,1900, 600,1950, 600,650, 600,650, 600,700, 600,650, 600,1900, 650,1900, 600,650, 650,1900, 600,650, 600,700, 600,650, 600,650, 650,600, 650,650, 600,1900, 650,650, 600,1900, 600,1950, 600,1900, 650,1900, 550}; // SANYO FFFFFFFF

if (digitalRead(SWITCH_PIN) == LOW) {
irsend.sendRaw(rawData, sizeof(rawData) / sizeof(rawData[0]), khz);
}

}
[/c]

おわりに

これを拡張すれば、温度でエアコンをつけたり人が通ったら電気を付けたりとできそうですよね。

ちなみに、最近作ったの一つに以下の様なものもあるので気になった方は是非みてください。



Warning: Undefined array key 0 in /home/sonitan/etolog.jp/public_html/wp-content/themes/luxeritas/inc/blogcard-func.php on line 580

Fatal error: Uncaught TypeError: json_decode(): Argument #1 ($json) must be of type string, array given in /home/sonitan/etolog.jp/public_html/wp-content/themes/luxeritas/inc/blogcard-func.php:884 Stack trace: #0 /home/sonitan/etolog.jp/public_html/wp-content/themes/luxeritas/inc/blogcard-func.php(884): json_decode(Array, true) #1 /home/sonitan/etolog.jp/public_html/wp-content/themes/luxeritas/inc/blogcard-func.php(748): THK_Blogcard->thk_get_screenshot('https://github....') #2 /home/sonitan/etolog.jp/public_html/wp-content/themes/luxeritas/inc/blogcard-func.php(318): THK_Blogcard->thk_create_blogcard('https://github....', 'e8020aa38bdf24e...') #3 /home/sonitan/etolog.jp/public_html/wp-content/themes/luxeritas/inc/blogcard-func.php(142): THK_Blogcard->thk_create_blogcard_shutdown('<p>\xE3\x81\x93\xE3\x82\x93\xE3\x81\xAB\xE3\x81\xA1...') #4 /home/sonitan/etolog.jp/public_html/wp-includes/class-wp-hook.php(341): THK_Blogcard->{closure:THK_Blogcard::thk_replace_blogcard():141}('') #5 /home/sonitan/etolog.jp/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters(1, Array) #6 /home/sonitan/etolog.jp/public_html/wp-includes/plugin.php(522): WP_Hook->do_action(Array) #7 /home/sonitan/etolog.jp/public_html/wp-includes/load.php(1308): do_action('shutdown') #8 [internal function]: shutdown_action_hook() #9 {main} thrown in /home/sonitan/etolog.jp/public_html/wp-content/themes/luxeritas/inc/blogcard-func.php on line 884