Arduino Infrared Send and Receive using Arduino Uno with Proteus Simulation

Summary of Arduino Infrared Send and Receive using Arduino Uno with Proteus Simulation


This project demonstrates sending and receiving infrared (IR) signals using two Arduino Uno boards simulated in Proteus VSM. An IR LED transmits modulated IR pulses detected by a TSOP-type IR demodulator connected to the receiver Arduino. Using the IRremote library, the system decodes various IR protocols and displays detailed timing and protocol information on a serial monitor within Proteus. It is a valuable learning tool for understanding IR communication, reverse engineering remote controls, and embedded system design with real-time simulation and debugging capabilities.

Parts used in the IR Communication Using Arduino Project:

  • Arduino Uno (ATmega328P) – 2 units (IR transmitter and receiver)
  • IR Demodulator Module (TSOP-type)
  • IR LED transmitter
  • Serial Terminal module in Proteus
  • Oscilloscope block (optional, from schematic)
  • Jumper wiring inside Proteus
  • Proteus VSM simulation software

Introduction

This project demonstrates how to send and receive infrared (IR) signals using an Arduino Uno inside a full Proteus VSM simulation. It’s a practical embedded systems project that helps students and hobbyists understand how IR communication works in devices like TV remotes, automation gadgets, and wireless control modules.
The setup uses an IR demodulator to receive signals and the popular IRremote library to decode and display protocol information on the Serial Monitor. This makes it a great microcontroller project, especially for learning DIY electronicsProteus simulation, and embedded system design.

Image

 

How the Project Works (Overview)

The system consists of an IR transmitter and an IR receiver, each connected to separate Arduino Uno boards inside Proteus.
Here’s the basic idea:

  • An IR LED on the transmitter side emits infrared pulses.

  • The TSOP-style IR demodulator on the receiver side detects these pulses.

  • The demodulator outputs a digital IR signal to Arduino pin 11.

  • The IRremote library decodes the signal and identifies the protocol (NEC, Sony, RC5, etc.).

  • The decoded information is shown on the Serial Terminal inside Proteus.

The simulation provides a safe, hardware-free way to observe IR waveforms, debug timing values, and analyze how IR remotes communicate.

Block Diagram / Workflow Explanation

Based on the schematic you provided, the project workflow is:

  1. IR LED Transmitter
    Emits modulated IR pulses toward the receiver.

  2. IR Demodulator Module (IR Link / TSOP module)
    Receives 38 kHz IR signal → demodulates it to a clean digital pulse stream.

  3. Arduino Uno (Receiver)
    Reads pulses on pin 11 and hands them to the IRremote decoder.

  4. IRremote Library

    • Detects IR protocol

    • Extracts address and data

    • Extracts raw timings

    • Prints everything to serial

  5. Serial Terminal in Proteus
    Shows protocol, value, bit count, raw timings, and generated replay-ready code arrays.

Key Features

Auto-generated from code, schematic, and project description:

  • Full IR decoding using the IRremote library

  • Supports the most common IR protocols (NEC, Sony, RC5, RC6, JVC, Panasonic, Samsung, LG, etc.)

  • Real-time IR capture and analysis

  • Displays timing data for protocol reverse engineering

  • Automatically generates ready-to-use raw IR arrays

  • Complete Proteus VSM simulation for transmitter and receiver

  • Works with IR demodulators like TSOP4838

  • High-speed UART output (115200 baud) for detailed logs

Image
Illustrative View of the Concept.

Components Used

  • Arduino Uno (ATmega328P) – 2 units (IR TX and IR RX)

  • IR Demodulator Module (TSOP-type)

  • IR LED transmitter

  • Serial Terminal module in Proteus

  • Optional oscilloscope block (from schematic)

  • Jumper wiring inside Proteus

  • Proteus VSM for AVR simulation engine

Applications

  • Universal IR remote development

  • Home automation controlled by existing IR remotes

  • Wireless control systems

  • Learning IR protocol structures (NEC, Sony, RC5, RC6, etc.)

  • Reverse engineering remote controls

  • Device cloning or IR code recording

  • Educational microcontroller labs and embedded systems courses

Explanation of the Code (High-Level)

1. Initialization

The receiver pin is set to digital pin 11, compatible with IRremote.
irrecv.enableIRIn() activates the internal IR state machine.

2. Decoding IR Packets

Whenever an IR signal is received:

  • The library identifies the protocol (NEC, Sony, RC6, Panasonic, etc.)

  • Extracts the valueaddress, and bit length

3. Printing the Result

Three types of outputs are displayed:

  • Human-readable info (protocol + value + bits)

  • Raw timing data (useful for waveform analysis)

  • C-style array output for replaying the code later

4. Resume Waiting

irrecv.resume() resets the decoder to detect the next IR command.

This makes it perfect for analyzing remote controls or creating your own universal IR transmitter.

Download Complete Source Code

FAQs

Set your terminal to 115200 baud, not 9600.

Ensure the IR demodulator output is wired to D11 exactly as the code requires.

Yes—IRremote includes sending functions; just add an IR LED on a supported pin.

Yes, most standard 38 kHz consumer remotes work.

Increase the RAWBUF constant in IRremoteInt.h.

Absolutely—the simulation behaves like real hardware.

No, it’s only a visual monitor.

Some AC remotes use long or

Conclusion

This Arduino Infrared Send and Receive project with Proteus simulation is an excellent hands-on introduction to IR communication, protocol decoding, and embedded firmware analysis. With its clean schematic, IRremote-powered code, and easy simulation workflow, it’s perfect for students, hobbyists, and anyone building remote-controlled electronics.

Complete Project File Download


About The Author

Image

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top