Control an AC bulb using any infrared remote with an Arduino and relay

Control an AC bulb using any infrared remote with an Arduino and relay

In this tutorial, we will learn how to use an infrared remote control to operate an AC bulb via an Arduino and a relay module. This project involves decoding the signals from the remote and using them to control the relay, which in turn will switch the AC bulb on and off. By the end of this tutorial, you will be able to use any infrared remote to control your light fixture.

We will be using an infrared receiver to capture the signals from the remote, and the Arduino will interpret these signals to perform specific actions. The code provided will allow you to select the type of remote (black or white) and whether you are using a PCB or bare module for the receiver. Make sure to watch the associated video for additional details and clarifications (in video at 0:00).

Hardware Explained

For this project, the main components include the Arduino board, an infrared receiver module, and a relay module. The infrared receiver is responsible for capturing the signals from the remote control and sending them to the Arduino. The relay module acts as a switch to control the AC bulb, allowing it to turn on and off based on the received signals.

5V HIGH-level trigger relay module
5V HIGH-level trigger relay module

The infrared receiver typically operates at a frequency of 38 kHz and can detect signals from a distance of approximately 10 to 15 meters. Once the Arduino receives the signal, it decodes it and uses the relay to control the power to the bulb.

Wiring Instructions

IR_remote_AC_relay_wiring

Begin wiring by connecting the infrared receiver module to the Arduino. The VCC pin of the receiver connects to the 5V pin on the Arduino, and the ground pin connects to a GND pin. The signal pin from the infrared receiver should be connected to digital pin 11 on the Arduino.

Next, connect the relay module. The control pin of the relay should be wired to digital pin 2 on the Arduino. Also, connect the relay's VCC and GND pins to the Arduino's 5V and GND, respectively. Finally, wire the AC bulb to the relay according to the relay's specifications to ensure safe operation.

Code Examples & Walkthrough

In the setup phase of the program, we initialize the serial communication and set up the relay pin. The identifier RECV_PIN is set to 11, which is where the infrared receiver's signal pin is connected. This allows us to receive data from the remote control.

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  pinMode(RELAY_PIN, OUTPUT); // define a pin for relay as OUTPUT
  digitalWrite(RELAY_PIN, HIGH); // set relay to OFF at the beginning
}

In the loop function, we continuously check for incoming signals from the remote. When a signal is detected, the value is decoded, and the corresponding action is taken based on the key pressed.

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX); // Print the received value
    robojaxValidateCode(results.value); // Validate the code
    irrecv.resume(); // Receive the next value
  }
  delay(100);
}

The robojaxValidateCode function checks the received code against known values for the remote. Depending on which key is pressed, it will execute the corresponding action using the relay.

void robojaxValidateCode(int cd) {
  if (type == 'W' && !PCB) {
    // Check White remote codes
    for (int i = 0; i < sizeof(whiteRemote) / sizeof(int); i++) {
      if (whiteRemote[i] == cd) {
        Serial.print("Key pressed: ");
        Serial.println(whiteRemoteKey[i]);
        relayAction(whiteRemoteKey[i]); // Take action
      }
    }
  }
}

In this function, the code checks if the pressed key corresponds to the defined array values. If a match is found, it calls the relayAction function to either turn the relay on or off, depending on the key pressed.

Demonstration / What to Expect

After completing the wiring and uploading the code, you can use your infrared remote to control the AC bulb. Press the designated keys on the remote, and the relay should activate or deactivate the bulb accordingly. Make sure to test each key to see its response (in video at 5:00).

Video Timestamps

  • 00:00 Start
  • 00:49 Introduction
  • 02:00 Wiring and connection
  • 05:27 Arduino code explained
  • 09:51 Demonstration of controlling AC bulb with different remote
  • 13:13 Using your TV remote to control AC bulb

图像

5V LOW-LEVEL trigger relay
5V LOW-LEVEL trigger relay
5V HIGH-level trigger relay module
5V HIGH-level trigger relay module
remote
remote
IR_remote_AC_relay_wiring
IR_remote_AC_relay_wiring
138-Source for controlling an AC load using an Arduino
语言: C++
已复制!

|||您可能需要的东西

资源与参考

尚无可用资源。

文件📁

没有可用的文件。