FREE SHIPPING for all orders over $40
The HS-S29A Infrared Signal Transmitter Module is a compact IR emitter board for sending remote-control style infrared commands from a microcontroller. It is useful for TV, air-conditioner, media-player, robot, and smart-home experiments where a project needs to transmit modulated near-infrared light to a compatible receiver.
The module can be driven by Arduino-compatible boards such as the ELAB Nano V3 or by a larger controller stack using the UNO R3 Prototype Expansion Board. For a paired learning setup, use it with a receiver module such as 38KHz IR Transmitter and Receiver Modules and a status indicator like the RGB Full Color LED Module.
Most consumer remote-control protocols use a carrier around 38kHz, generated in software or by a timer/PWM output. Keep the IR LED pointed toward the receiver, avoid bright sunlight during testing, and confirm whether the target device uses NEC, Sony, RC5, or another protocol before sending commands.
| Parameter | Value |
|---|---|
| SKU | HS-S29A |
| Product Type | Infrared signal transmitter module |
| Emitter Type | Near-infrared LED transmitter |
| Typical Carrier | 38kHz remote-control modulation |
| Control Signal | GPIO or PWM-driven IR output |
| Typical Host | Arduino, ESP32, RP2040, other microcontrollers |
| Applications | Remote-control emulation, IR beacons, appliance-control demos |
| Directionality | Line-of-sight aiming recommended |
| Protocol Support | Depends on software library and target receiver |
| Wiring | Power, ground, and signal pins per module label |
Send a NEC-style command using the IRremote library.
#include const int irPin = 3;void setup() { IrSender.begin(irPin);}void loop() { IrSender.sendNEC(0x00FF, 0x45, 0); delay(1000);}
Transmit a repeated command as a simple IR beacon.
#include void setup() { IrSender.begin(3);}void loop() { for (int i = 0; i < 3; i++) { IrSender.sendNEC(0x10EF, 0x20, 0); delay(100); } delay(2000);}
Generate a 38kHz PWM carrier for receiver alignment checks.
const int irPin = 18;void setup() { ledcAttach(irPin, 38000, 8);}void loop() { ledcWrite(irPin, 128); delay(100); ledcWrite(irPin, 0); delay(900);}
Send a command only when a pushbutton is pressed.
#include const int buttonPin = 2;void setup() { pinMode(buttonPin, INPUT_PULLUP); IrSender.begin(3);}void loop() { if (digitalRead(buttonPin) == LOW) { IrSender.sendNEC(0x00FF, 0x15, 0); delay(300); }}
Q: What does this module do?
A: It sends infrared remote-control style signals from a microcontroller.
Q: Does it receive IR signals?
A: No, this page is for the transmitter module.
Q: What carrier frequency should I use?
A: 38kHz is common for remote-control receivers.
Q: Can it control a TV?
A: Yes, if you know the correct protocol and command codes.
Q: Can I use Arduino IRremote?
A: Yes, it is a common library for this use case.
Q: Why is range short?
A: Check aiming, carrier frequency, drive strength, ambient light, and receiver compatibility.
Q: Does it need line of sight?
A: Yes, IR control generally works best with line of sight.
Q: Can it be used with ESP32?
A: Yes, use a PWM-capable output or IR library.
Only logged in customers who have purchased this product may leave a review.