<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Infrared on Nalar</title>
    <link>https://nalar.dev/tags/infrared/</link>
    <description>Recent content in Infrared on Nalar</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 19 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://nalar.dev/tags/infrared/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Arduino-IRremote Raw Output: Converting Receive Timings into sendRaw() Data</title>
      <link>https://nalar.dev/arduino-irremote-raw-output-convert-receive-timings-sendraw/</link>
      <pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/arduino-irremote-raw-output-convert-receive-timings-sendraw/</guid>
      <description>&lt;p&gt;Arduino-IRremote separates the representation used while receiving an infrared frame from the representation consumed by &lt;code&gt;sendRaw()&lt;/code&gt;. The receiver records sampled durations, tracks the gap before the frame separately, and can compensate timing distortion introduced by a demodulating IR receiver. A transmitter, by contrast, expects an array that starts with the first mark and alternates mark and space durations.&lt;/p&gt;&#xA;&lt;p&gt;That boundary matters for AC remotes because their frames can be long and are frequently replayed as RAW data when no protocol-specific encoder is available.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Driving an IR LED from an ESP-01: Current, Range, and Transistor Count</title>
      <link>https://nalar.dev/esp01-ir-led-driver-current-range-transistor-count/</link>
      <pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/esp01-ir-led-driver-current-range-transistor-count/</guid>
      <description>&lt;p&gt;An ESP8266 ESP-01 can act as the controller for an infrared AC remote, but the GPIO should be treated as a logic source rather than as the power source for the IR LED. The useful design question is not whether the transmitter has one transistor or three. It is whether the driver can switch the required LED pulse current cleanly while preserving the carrier and protocol timing.&lt;/p&gt;&#xA;&lt;p&gt;That distinction also corrects a common assumption: a three-transistor circuit does not inherently transmit farther than a one-transistor circuit. A correctly sized single transistor or MOSFET can drive an IR LED effectively. Additional transistors only help when they perform a necessary circuit function.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gesture-Controlled Air Conditioner with ESP32-S3 Without a Camera</title>
      <link>https://nalar.dev/gesture-controlled-air-conditioner-esp32-s3-without-camera/</link>
      <pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/gesture-controlled-air-conditioner-esp32-s3-without-camera/</guid>
      <description>&lt;p&gt;A camera is unnecessary when an air-conditioner controller only needs a small vocabulary of hand motions. The useful signal is not an image of the hand; it is a directional event such as up, down, left, or right. A short-range optical gesture sensor can reduce that input to a few bytes before the ESP32-S3 sees it.&lt;/p&gt;&#xA;&lt;p&gt;That changes the embedded design substantially. There is no camera frame buffer, DVP bus, image preprocessing, or inference model competing with the LCD and infrared transmitter. The ESP32-S3 can spend its resources on the part that actually needs careful handling: keeping the intended AC state synchronized with each gesture and encoding that state into the appliance&amp;rsquo;s IR protocol.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Infrared Sensors Measure Different Physical Effects</title>
      <link>https://nalar.dev/infrared-sensors-measure-different-physical-effects/</link>
      <pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/infrared-sensors-measure-different-physical-effects/</guid>
      <description>&lt;p&gt;An infrared sensor is not a single measurement technology. &amp;ldquo;IR sensor&amp;rdquo; can describe a reflective proximity detector, a PIR motion detector, a non-contact temperature sensor, an optical encoder, or an infrared receiver. They all operate with radiation outside the visible spectrum, but the quantity being measured is different.&lt;/p&gt;&#xA;&lt;p&gt;That distinction determines what the sensor can detect, how far it can work, and which environmental conditions can produce false or weak readings.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Raw IR Capture and Replay on ESP32 Depends on Timing, Frame Boundaries, and Carrier Frequency</title>
      <link>https://nalar.dev/raw-ir-capture-and-replay-on-esp32-timing-frame-boundaries-carrier-frequency/</link>
      <pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/raw-ir-capture-and-replay-on-esp32-timing-frame-boundaries-carrier-frequency/</guid>
      <description>&lt;p&gt;An infrared receiver does not hand an ESP32 a universal &amp;ldquo;button code.&amp;rdquo; At the electrical boundary, it produces a sequence of detected carrier bursts and gaps. A raw capture represents those intervals as alternating mark and space durations, usually in microseconds.&lt;/p&gt;&#xA;&lt;p&gt;A capture such as:&lt;/p&gt;&#xA;&lt;div&#xA;  x-data=&#34;{ code: $el.querySelector(&#39;code&#39;).innerText, copied: false }&#34;&#xA;  class=&#34;code-block group relative my-6 overflow-hidden rounded-xl border border-line bg-surface-muted dark:border-night-line dark:bg-night-surface&#34;&gt;&#xA;  &lt;button&#xA;    type=&#34;button&#34;&#xA;    @click=&#34;navigator.clipboard.writeText(code); copied = true; setTimeout(() =&gt; copied = false, 1600)&#34;&#xA;    class=&#34;absolute right-3 top-3 z-10 rounded-lg border border-line-strong bg-surface px-2 py-1 font-mono text-[0.8rem] text-muted opacity-0 transition group-hover:opacity-100 hover:bg-ink hover:text-white dark:border-night-line dark:bg-night dark:text-night-muted dark:hover:bg-white dark:hover:text-ink&#34;&gt;&#xA;    &lt;span x-text=&#34;copied ? &#39;Copied&#39; : &#39;Copy&#39;&#34;&gt;&lt;/span&gt;&#xA;  &lt;/button&gt;&#xA;  &#xA;  &lt;div class=&#34;overflow-x-auto p-4 text-sm leading-6 [&amp;_pre]:!m-0 [&amp;_pre]:!bg-transparent [&amp;_pre]:!p-0 [&amp;_code]:font-mono&#34;&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;&#34;&gt;uint16_t&lt;/span&gt; rawData[] = {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  3570, 1620,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  554, 342,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  498, 1244,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  496, 378,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;font-style:italic&#34;&gt;// ...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;font-style:italic&#34;&gt;&lt;/span&gt;};&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;is therefore a waveform description. Replaying it successfully depends on preserving four things together: the timing sequence, the correct frame boundary, the modulation carrier used for marks, and enough optical output from the IR LED.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reliable ESP32 IR Air-Conditioner Control Needs Hysteresis and State Synchronization</title>
      <link>https://nalar.dev/reliable-esp32-ir-air-conditioner-control-needs-hysteresis-and-state-synchronization/</link>
      <pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/reliable-esp32-ir-air-conditioner-control-needs-hysteresis-and-state-synchronization/</guid>
      <description>&lt;p&gt;An ESP32 can turn a conventional infrared air conditioner into a temperature-driven controller without modifying the AC itself. The basic signal path is simple: a room-temperature sensor feeds the ESP32, the firmware decides whether cooling is required, and an IR LED transmits the same kind of frame the handheld remote would send.&lt;/p&gt;&#xA;&lt;p&gt;The difficult part is not producing infrared light. It is keeping the control loop stable while working with an appliance whose IR protocol may encode the remote&amp;rsquo;s complete state in every transmission.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
