https://asukiaaa.blogspot.com/2018/05/arduino.html を参考に
サンプルコードのirremote/irrecvdumpを実践(ただしgpioは2に変更)
elegooの受信機はg:gnd,r:vcc,y:gpioだった
まず、2階の寝室の電灯のOn信号をひろう
NEC 214A56A9 32bit だった
ーーー 以下のコードでIR送信すると1.3m以内になると電灯がついた! ーーー
#include <IRremote.h> // irsenddemo.inoによれば
// An IR LED must be connected to Arduino PWM pin 3. であった
IRsend irsend;
void setup()
{
Serial.begin(9600);
}
void loop() {
irsend.sendNEC(0x214A56A9, 32); // NEC power code
delay(4000);
}
つまり4秒ごとに、信号を送るコードだ
mosfettを使用したら、若干到達距離が伸びた気が?
ーーーーーーーーーーーー 回路は ーーーーーーーーーーーー
gnd -> IRled短 anode > IRled長 cathode -> 100Ω -> gpio 3 :: 赤外線LED1本の場合
mosfetを使用する場合は、上記サイトを参考に
-----------------------------esp32の場合----------------------------------------------------------
(レシーバ)
https://wak-tech.com/archives/1627 のコードではEpsonだが同じ内容だった
https://kakikukeko.sakura.ne.jp/blog/arduino-ir-receiver/#gallery-1 も参考にすると、
レシーバの凸面の裏からみて、向かって左からVCC(3v))、GND、OUT(12pin)
VCCとGNDをまたぐように0.1マイクロFのコンデンサをいれると雑音がでなかった
irremote8266/irrecvdumpv2.inoで実行
(センダー)
http://marchan.e5.valueserver.jp/cabin/comp/jbox/arc213/doc21305.html#sect3
を参考にした 3.3KΩなかったので2k+1k+330Ωで代用した
10uFはいらんかった 10Ωの制限抵抗かけて2sc1815でドライブ
凸面の裏でひだりからECBの順で、エミッタはGNDに、Cは赤外線LEDにつなぎ
ベースには3.3kオームを介してシグナルをださせる!
#include <IRremoteESP8266.h>
#include <IRsend.h>
#include <IRutils.h>
const uint16_t kIrLed = 19; //赤外線LEDのピンを取得
IRsend irsend(kIrLed); // 送信オブジェクト 以後はirsendで使用
bool success = true;
decode_type_t protocol = EPSON; // Epsonではだめだった
uint16_t size = 32;
const uint32_t value = 0x214A56A9; //部屋の明かりをつけるコード
void setup() {
Serial.begin(9600);
irsend.begin(); // 赤外線LEDの設定
}
void loop() {
success = irsend.send(protocol, value, size); //送信
if (success){
Serial.println("send success");
}
delay(1000);
}
(参考文献)
ESP-WROOM-32(ESP32)周辺回路作成 - Qiita ここにtransistorの必要性が書いてある
0 件のコメント:
コメントを投稿