

The HT-12D is a 12-bit addressable decoder IC manufactured by Holtek, with the part ID B544G1106G2. It is widely used in remote control applications to decode serial data transmitted by an encoder, such as the HT-12E. The IC is designed to work in RF communication systems, enabling wireless data transmission for devices like garage door openers, home automation systems, and security systems.
The HT-12D decodes 12-bit data, which consists of 8 address bits and 4 data bits. It ensures secure communication by matching the address bits of the transmitter and receiver. This makes it ideal for applications requiring reliable and interference-free wireless communication.








The HT-12D has 18 pins, as described in the table below:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1-8 | A0-A7 | Address input pins. Used to set the 8-bit address for communication. |
| 9 | Ground (VSS) | Ground pin. Connect to the negative terminal of the power supply. |
| 10 | DIN | Data input pin. Connect to the data output of the RF receiver module. |
| 11-14 | D0-D3 | Data output pins. Outputs the decoded 4-bit data. |
| 15 | VT | Valid transmission pin. Goes HIGH when valid data is received. |
| 16 | Oscillator 1 | Connect to an external resistor to set the oscillator frequency. |
| 17 | Oscillator 2 | Connect to an external resistor to set the oscillator frequency. |
| 18 | VDD | Positive power supply pin. Connect to the positive terminal of the power supply. |
The HT-12D can be interfaced with an Arduino UNO to read the decoded data. Below is an example code snippet:
// Define the data output pins of the HT-12D
#define D0 2 // Connect HT-12D D0 pin to Arduino digital pin 2
#define D1 3 // Connect HT-12D D1 pin to Arduino digital pin 3
#define D2 4 // Connect HT-12D D2 pin to Arduino digital pin 4
#define D3 5 // Connect HT-12D D3 pin to Arduino digital pin 5
#define VT 6 // Connect HT-12D VT pin to Arduino digital pin 6
void setup() {
// Set the data pins as input
pinMode(D0, INPUT);
pinMode(D1, INPUT);
pinMode(D2, INPUT);
pinMode(D3, INPUT);
pinMode(VT, INPUT);
// Initialize serial communication for debugging
Serial.begin(9600);
}
void loop() {
// Check if valid data is received
if (digitalRead(VT) == HIGH) {
// Read the 4-bit data from the HT-12D
int data = (digitalRead(D3) << 3) | (digitalRead(D2) << 2) |
(digitalRead(D1) << 1) | digitalRead(D0);
// Print the received data to the Serial Monitor
Serial.print("Received Data: ");
Serial.println(data, BIN); // Print data in binary format
}
}
No Output on Data Pins:
VT Pin Not Going HIGH:
Interference in Wireless Communication:
Q1: Can the HT-12D be used with any RF module?
A1: The HT-12D is compatible with most RF modules operating at standard frequencies like 433 MHz. Ensure the module supports serial data transmission.
Q2: What is the maximum range of communication?
A2: The range depends on the RF module used. Typically, 433 MHz modules can achieve a range of 50-100 meters in open space.
Q3: Can I use fewer address pins?
A3: Yes, unused address pins can be left floating or tied to ground. However, ensure the same configuration is used on the transmitter side.
Q4: What happens if the address pins do not match?
A4: The HT-12D will not decode the data, and the VT pin will remain LOW.