Noshirt
ITALY • + Follow
Edit Project
Components
![]() |
ARDUINO UNO REV3 |
x 1 | |
|
2-Channel Relay |
x 1 | |
|
IR ReceiverNewark
|
x 1 | |
|
IR Remote (generic) |
x 1 | |
|
HLK-PM01HI-LINK(海凌科)
|
x 1 |
Tools, APP Software Used etc.
![]() |
arduino IDEArduino
|
|
![]() |
Soldering iron |
Description
IR Remote for Fan
So, I found this little Fan (it should be at least 10 years old), which was powered by some buttons and I had to get up from my bed/chair/whatever I was sitting on just to turn it on/off or to change speed (it has 3 speed).
So I came up with this idea of turning it off/on and changing speed with a simple IR Remote, obtaining a lot of comfort during hot summer days and nights.
So, I think that was a very nice idea and everything works properly.
Obviosuly, you can use that approach for every household appliance you have in your home, hope you will find it useful!
Have a nice day :)
Just one thing: YOU'RE WORKING WITH 220V, SO BE VERY VERY VERY VERY VERY CAREFUL BECAUSE YOU COULD SERIOUSLY HARM YOURSELF.
Code
Remote.ino
C/C++
#include <IRremoteInt.h> #include <IRremote.h> // use the library int receiver = 11; // pin 1 of IR receiver to Arduino digital pin 11 IRrecv irrecv(receiver); // create instance of 'irrecv' decode_results results; void setup() { Serial.begin(9600); // for serial monitor output irrecv.enableIRIn(); // Start the receiver pinMode(5, OUTPUT); //IN1 of first Relay pinMode(6, OUTPUT); //IN2 of first Relay pinMode(7, OUTPUT); //IN1 of second Relay } void loop() { if (irrecv.decode(&results)) // have we received an IR signal? { Serial.println(results.value, HEX); // display it on serial monitor in hexadecimal irrecv.resume();// receive the next value } //Check if other Relays are OFF before turning ON the one selected. // 0x"YOURCODE1" will turn into something like // 0xABCDEFX after reading the remote value // Same for YOURCODE2/3/4 if (results.value == 0x"YOURCODE1"){ if (digitalRead(6) == LOW && digitalRead(7) == LOW) { digitalWrite(5, HIGH); } else if(digitalRead(6) == HIGH || digitalRead(7) == HIGH) { digitalWrite(6, LOW); digitalWrite(7, LOW); delay(1000); //Wait a sec just to be sure of not causing a short circuit digitalWrite(5, HIGH); } } if ( results.value == 0x"YOURCODE2"){ if (digitalRead(5) == LOW && digitalRead(7) == LOW) { digitalWrite(6, HIGH); } else if(digitalRead(5) == HIGH || digitalRead(7) == HIGH) { digitalWrite(5, LOW); digitalWrite(7, LOW); delay(1000); digitalWrite(6, HIGH); } } if ( results.value == 0x"YOURCODE3"){ if (digitalRead(5) == LOW && digitalRead(6) == LOW) { digitalWrite(7, HIGH); } else if(digitalRead(5) == HIGH || digitalRead(6) == HIGH) { digitalWrite(5, LOW); digitalWrite(6, LOW); delay(1000); digitalWrite(7, HIGH); } } // Put here your code for turning off the Fan if ( results.value == 0x"YOURCODE4"){ digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); } }
Decoder.ino
C/C++
#include <IRremoteInt.h> #include <IRremote.h> // use the library int receiver = 11; // pin 1 of IR receiver to Arduino digital pin 11 IRrecv irrecv(receiver); // create instance of 'irrecv' decode_results results; void setup() { Serial.begin(9600); // for serial monitor output irrecv.enableIRIn(); // Start the receiver pinMode(9, OUTPUT); // Pin 9 output } void loop() { if (irrecv.decode(&results)) // have we received an IR signal? { Serial.println(results.value, HEX); // display it on serial monitor in hexadecimal irrecv.resume();// receive the next value } }
Schematic and Layout

Jun 17,2022
603 views
end-flag
IR Remote for Fan
Turn on/off your fan without getting up, just by using an IR remote.
603
0
0
Published: Jun 17,2022
Purchase
Donation Received ($)
PCBWay Donate 10% cost To Author
Copy this HTML into your page to embed a link to order this shared project
Copy
Under the
Attribution-ShareAlike (CC BY-SA)
License.

Raspberry Pi 5 7 Inch Touch Screen IPS 1024x600 HD LCD HDMI-compatible Display for RPI 4B 3B+ OPI 5 AIDA64 PC Secondary Screen(Without Speaker)
BUY NOW
ESP32-S3 4.3inch Capacitive Touch Display Development Board, 800×480, 5-point Touch, 32-bit LX7 Dual-core Processor
BUY NOW
Raspberry Pi 5 7 Inch Touch Screen IPS 1024x600 HD LCD HDMI-compatible Display for RPI 4B 3B+ OPI 5 AIDA64 PC Secondary Screen(Without Speaker)
BUY NOW- Comments(0)
- Likes(0)

Upload photo
0 / 10000
It looks like you have not written anything. Please add a comment and try again.
You can upload up to 5 images!
Image size should not exceed 2MB!
File format not supported!
View More
VOTING
0 votes
- 0 USER VOTES
0.00
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Design
1/4
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Usability
2/4
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Creativity
3/4
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Content
4/4
More by Noshirt
-
IR Remote for Fan So, I found this little Fan (it should be at least 10 years old), which was powered by some buttons ...
-
Arduino Weather Station v1.0 (BMP280) First version of a very simple weather station made with an Arduino UNO, a BMP280 sensor and a LCD.I...
-
Wi-Fi Controlled Relay One day I woke up. I thought, why can't my windows be opened from my pc?! Why I have to get up from ...
-
Start/Stop Chronometer Me and my friend are always in competition for something, in every sports, from ski to run, to MTB. ...
-
Arduino Keyboard V2.0 That's an update for the older version of the project!Now you can play the keyboard on the keys from...
-
Arduino Keyboard Didn't know what to do as my first Arduino Project, so i thought of starting out with something litt...
You may also like
-
-
-
Modifying a Hotplate to a Reflow Solder Station
764 1 5 -
MPL3115A2 Barometric Pressure, Altitude, and Temperature Sensor
407 0 1 -
-
Nintendo 64DD Replacement Shell
353 0 2 -
V2 Commodore AMIGA USB-C Power Sink Delivery High Efficiency Supply Triple Output 5V ±12V OLED display ATARI compatible shark 100W
981 4 2 -
How to measure weight with Load Cell and HX711
642 0 3