The demodulator converts the amplitude variations of the IF signal into a fluctuating DC voltage. When an RF burst is present, the DC voltage rises (Logic HIGH). When the RF carrier is absent, the DC voltage drops (Logic LOW). The raw demodulated signal is still analog and can be noisy. The HSB133 uses an internal data slicer (a comparator) that continuously monitors the average voltage and sets a threshold. Any signal above the threshold becomes a clean TTL logic "1" (typically +3.3 or +5V), and below becomes a "0".
// Demo: HSB133 Receiver with RCSwitch Library // Install RCSwitch via Library Manager #include <RCSwitch.h> hsb133 receiver work
if (value == 0) Serial.print("Unknown encoding"); else Serial.print("Received code: "); Serial.print(value); Serial.print(" / Bits: "); Serial.println(mySwitch.getReceivedBitlength()); The demodulator converts the amplitude variations of the
If your HSB133 seems to "work" but produces random data when the transmitter is off, add a 47k pull-down resistor from the DATA pin to GND. This sets a default low state and prevents floating input noise on your microcontroller. Word count: ~1,250 words. For more information, refer to the datasheet of the Micrel MICRF001 or QIACHIP QCRX3500, as the HSB133 is frequently based on these ICs. The raw demodulated signal is still analog and can be noisy