HS-S29-L 紅外信號發送模塊

HS-S29-L 紅外信號發送模塊

1、介紹

2、原理圖

3、模組參數

引腳名稱

描述

G

GND(電源輸入負極)

V

VCC(電源輸入正極)

S

數字信號引腳

  • 供電電壓:3.3V / 5V

  • 連接方式:PH2.0 端子線

  • 安裝方式:雙螺絲固定

4、電路板尺寸

5、Arduino IDE示範程序

庫文件:點擊下載

1.紅外信號發送模組程式(相當於紅外遙控器)

Arduino UNO 示例(適用於Mixly IDE、Arduino IDE):點擊下載

#define IR_SEND_PIN 3
#include <IRremote.h>

IRsend   irsend;

void setup(){
  // 启动发送,并指定引脚;开启Arduino主板L灯反馈;
  IrSender.begin(IR_SEND_PIN, DISABLE_LED_FEEDBACK);
  pinMode(8, INPUT);
}

void loop(){
  // 定义红外发射管脚.

  if (!digitalRead(8)) {
      while (!digitalRead(8)) {
        delay(10);
      }
      // 发送红外编码值
      IrSender.sendNEC(0xFF00,0x45,0 );

    }

}

2.雷達信號接收模組程式

Arduino UNO 示例(適用於Mixly IDE、Arduino IDE):點擊下載

#include <IRremote.h>

volatile int a;
const String IR_PROTOCOL_TYPE[] = {
  "UNKNOWN",
  "PULSE_DISTANCE",
  "PULSE_WIDTH",
  "DENON",
  "DISH",
  "JVC",
  "LG",
  "LG2",
  "NEC",
  "PANASONIC",
  "KASEIKYO",
  "KASEIKYO_JVC",
  "KASEIKYO_DENON",
  "KASEIKYO_SHARP",
  "KASEIKYO_MITSUBISHI",
  "RC5",
  "RC6",
  "SAMSUNG",
  "SHARP",
  "SONY",
  "ONKYO",
  "APPLE",
  "BOSEWAVE",
  "LEGO_PF",
  "MAGIQUEST",
  "WHYNTER"
};
IRrecv irrecv_11(11);

void setup(){
  a = 0;
  Serial.begin(9600);
  pinMode(5, OUTPUT);
  irrecv_11.enableIRIn();
}

void loop(){
  if (irrecv_11.decode()) {
    struct IRData *pIrData = &irrecv_11.decodedIRData;
    long ir_item = pIrData->decodedRawData;
    String irProtocol = IR_PROTOCOL_TYPE[pIrData->protocol];
    Serial.print("IR TYPE:" + irProtocol + "\tVALUE:");
    Serial.println(ir_item, HEX);
    irrecv_11.resume();
    Serial.println(ir_item,HEX);
    //按下另一块控制板“D8”按键编码值:BA45FF00。控制开关灯。
    if (0xBA45FF00 == ir_item && a == 0) {
      digitalWrite(5,HIGH);
      a = 1;

    } else if (0xBA45FF00 == ir_item && a == 1) {
      digitalWrite(5,LOW);
      a = 0;
    }

  } else {

  }

}

1.紅外信號發送模組程式(相當於紅外遙控器)

示範程式(ESP32開發板—基於Python語言,不能用Arduino IDE上傳代碼)

import machine
import irremote
import time


pin13 = machine.Pin(13, machine.Pin.IN)
ir_tx = irremote.NEC_TX(4,False,100)
while True:
    if not pin13.value():
        while not pin13.value():
            time.sleep_ms(10)
        ir_tx.transmit(0x45,0xff00,0)

2.雷達信號接收模組程式

示範程式(ESP32開發板—基於Python語言,不能用Arduino IDE上傳代碼)

import machine
import irremote


pin15 = machine.Pin(15, machine.Pin.OUT)
value = 0
Mode = 0
ir_rx = irremote.NEC_RX(14,8)
while True:
    if ir_rx.any():
        value = hex(ir_rx.code[2])
    if value == hex(0xba45ff00):
        Mode = 1 - Mode
        value = 0
    if Mode == 0:
        pin15.value(0)
    if Mode == 1:
        pin15.value(1)

6、米思齊Mixly示例程式(圖形化語言)

ArduinoUNO圖形化示例程式:點擊下載

1.紅外信號發送模組程式(相當於紅外遙控器)

2.雷達信號接收模組程式

示範程序(ESP32 Python):點擊下載

1.紅外信號發送模組程式(相當於紅外遙控器)

2.雷達信號接收模組程式

7、測試環境搭建

Arduino UNO 測試環境搭建

準備配件:

  • HELLO STEM UNO R3 開發板 *2

  • HELLO STEM UNO R3 P 扩展板*2

  • USB type-c 資料線*2

  • LED燈模塊(HS-F08L)*1

  • 紅外信號發送模塊(HS-S29L)*1

  • 按鍵開關模塊(HS-KEY1L)*1

  • 紅外接收模塊(HS-S23L)*1

  • PH2.0雙頭端子線 *4條

電路接線圖:

ESP32 Python 測試環境搭建

準備配件:

  • ESP32EA MOC開發板 *2

  • ESP32-EXP1擴展板 *2

  • USB type-c 資料線*2

  • LED燈模塊(HS-F08L)*1

  • 紅外信號發送模塊(HS-S29L)*1

  • 按鍵開關模塊(HS-KEY1L)*1

  • 紅外接收模塊(HS-S23L)*1

  • PH2.0雙頭端子線 *4條

電路接線圖:

8、視頻教學

Arduino UNO視頻教學:點擊查看

ESP32 Python視頻教學:

9、測試結論

Arduino UNO測試結論:

器件連接好線之後,將上述程序燒錄到Arduino UNO 開發板之後,再將紅外信號發送實驗按照文件描述接線 ,並用另一塊Arduino UNO 開發板燒錄紅外接收程序,上電就可以看到發射和接收的效應。

ESP32 Python測試結論: