HS-S29A 紅外信號發送模塊

HS-S29A 紅外信號發送模塊

1、介紹

2、原理圖

紅外線信號發射器-HS-S29A 原理圖點擊查看

3、模組參數

引腳名稱

描述

G

GND(電源輸入負極)

V

VCC(電源輸入正極)

S

數字信號引腳

  • 供電電壓:3.3V / 5V

  • 連接方式:2.54mm排釘

  • 安裝方式:雙螺絲固定

4、電路板尺寸

5、Arduino IDE示範程序

注意:程式上傳時如果提示庫文件報錯,請先導入庫文件!
Arduino IDE 庁件文件下載及導入教範:
點擊查看

示範程序(UNO開發板):
1.紅外信號發送模組程式(相當於紅外遙控器)

#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.雷達信號接收模組程式

#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 {

  }

}

6、ESP32 Python 示例(適用於Mixly IDE /米思齊)

開發板選擇 Python ESP32 【ESP32 Generic(4MB)】切換為代碼模式上傳

注意:程式上傳時如果提示庫文件報錯,請先導入庫文件!
米思齊(Mixly)IDE ESP32庫檔案下載及匯入教學:
點擊查看

示例程式(ESP32-Python):
1.紅外信號發送模組程式(相當於紅外遙控器)

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.雷達信號接收模組程式

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)

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

示範程序(UNO開發板):點擊下載

注意:程式上傳時如果提示庫文件報錯,請先導入庫文件!
米思齊(Mixly)IDE Arduino 圖庫檔案下載及匯入教學:點擊查看
1.紅外信號發送模組程式(相當於紅外遙控器)

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

示範程序(ESP32開發板):點擊下載
注意:程式上傳時如果提示庫文件報錯,請先導入庫文件!
米思齊(Mixly)IDE ESP32庫檔案下載及匯入教學:
點擊查看
1.紅外信號發送模組程式(相當於紅外遙控器)

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

8、測試環境搭建

Arduino UNO 測試環境搭建

準備配件:

  • HELLO STEM UNO R3 PRO 開發板 *2

  • USB type-c 資料線*2

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

  • 紅外線信號發送模組(HS-S29A)*1

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

  • 紅外接收模組(HS-S23A)*1

  • 1P母對母杜邦線 *12條 或 3P母對母杜邦線 *4條

電路接線圖:

ESP32 python 測試環境搭建

準備配件:

  • ESP32EA MOC開發板 *2

  • ESP32-EXP1擴展板 *2

  • USB type-c 資料線*2

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

  • 紅外線信號發送模組(HS-S29A)*1

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

  • 紅外接收模組(HS-S23A)*1

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

電路接線圖:等更新...

9、視頻教學

視頻教學:點擊查看

10、測試結果

Arduino UNO 混试结果:

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

ESP32 測試結果:

等更新...