Have you ever thought to yourself: I get so tired of opening and closing the blinds myself; if only I could do this with a remote? Me neither, but it would be cool if I could!
In this instructable, I'll show you how to make a remote controlled blind opener. It works with nearly any type of curtain system and is easy to make. With a more advanced version, you can even control other infrared devices, like LED strips.
I decided to use Lego for the build, so that it would be easy to work with gears. It's always possible to make your own gears out of wood or plexi, but it's less convenient. The gear that catches the curtains chain is 3D printed. I included a version that is Lego compatible, and one with a 2 mm shaft hole to work with other motors.
Depending on your curtains, you might want to use a heavier motor or a Lego motor with more torque (PF XL).
The brain of this project is an Arduino Nano board, which is easy when working with IR signals. Any IR remote can be used; I choose my tv remote, which has some unused buttons.
The whole assembly is quite compact, and only 1 wire is needed for operation and it's mounted to the wall using 1 nail.
Step 1: Parts List
The parts are very basic and can be sourced for under €10.
- Arduino nano (€2 on ebay / aliexpress)
- H-bridge (motor driver)
- Header pins (2x15 pins)
- IR receiver
- Motor (lego or normal dc motor)
- Lego power connector
- DC barrel jack
- 9 - 12 V power adapter (100 mA is enough)
For the extended version, you'll need some extra parts:
- IR LED
- NPN transistor
- 100 R resistor
- 10k R resistor
Step 2: Electronics
The electronic part of this project is very straightforward, and can be accomplished by anyone with a bit of Arduino knowledge.
We simply connect the motor to an H-bridge (motor driver), and the Arduino controls it with 3 digital outputs: enable (for enabling and disabling the motor), and 2 control pins (for the direction).
The other key component is an IR receiver that is connected to an input pin. This component also needs power and ground.
For the advanced version, we add 4 more components that make up a common emitter amplifier. It will amplify the output signal of the Arduino (which can only give 40 mA) and provide the IR led with 100 mA. This will result in a stronger signal.
Simply solder everything on a piece of perfboard. I recommend a socket for the H-bridge and header pins for the Arduino Nano, for easy removal or replacing of the component. You can solder the barrel jack directly onto the board, but I chose to embed it in the casing.
Step 3: Gearing & Casing
The gearing is probably the most important part of the build. Depending on you motor and curtain system, you'll need to choose gears that provide enough torque and, preferably, the desired speed. Worm gears are perfect when you need a lot of torque. As I initially thought of using these, Lego was the perfect option.Later on, I switched to the gear setup in the picture for a higher speed. Make this part sturdy enough, so that the gears don't slip.
The chain gear should work on any regular curtain chain. I included files for a Lego compatible model, and one for motors with a 2 mm shaft. For the printing, I recommend printing in 2 parts, as the overhang is quite a challenge.
The case itself is up to you; just make sure everything fits inside. Also include a transparent part for the IR receiver, or mount it outside of the case. When building the advanced version, don't forget to make a hole for the LED.
I built in the barrel jack for a neater look, but a hole for the wire is also fine.
Step 4: Coding
The code for this project uses the excellent Arduino IR Library from Ken Sheriff. I included the zip file of the library,which is also available on github (linked on his blog).
To get your IR codes, upload the sketch to you Arduino and open the serial monitor. When you press a key, it should print 'Signal', followed by a number. This is the number that corresponds to the pressed key. Replace the highlighted parts in the code (see first included picture) with your code.
For the advanced version, we'll also need send a code. This is the second code that gets printed when a signal is received. Replace the highlighted parts in the code (see second included picture) with your code. The codes should start with 0x.
When uploading the final code, remove the 'Serial.print' commands to prevent a constant data transmission.
Note: this code is for NEC signals, which were used by all the remotes I tested. For other code standards, take a look at the IRrecord example in the IRremote library.
Step 5: Decorate & Enjoy
Before hanging it on the wall, we'll make it a bit more appealing.
I simply added a piece of paper in the color of the wall. There is no need to make a cutout for the IR receiver, as the signal goes through the paper without issues. For the IR led however, a little hole was made.
Connect your electric circuit to the motor and pull the chain through the gear.
Mount the contraption on the wall, but make sure the chain is not too tight.
You should now have a working curtain opener, just plug in a 9 V adapter and you're done!
It's a very easy project, but you'll enjoy every minute of it!