2021年10月22日金曜日

IRremote by uno & IRremoteEsp8266 by esp32

 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 件のコメント:

コメントを投稿