Introduction: Control Your Halloween Decorations With Arduino
Animated Halloween props are a lot of fun. But the props that you buy at the store have some major limitations.
One problem is that each prop is activated by its own sensor. So it is difficult to get them to work together in unison. If the props are out of sync, the overall effect isn't as scary.
Another problem is that the built-in "motion sensors" aren't very effective. Most props are activated by a light sensor that detects the change in light when someone walks by. So in order for them to work, they need light to be shining on them. They won't work at all in the dark. They can also be falsely triggered if the lighting in the room changes.
So I worked out a system that lets you control all your animated Halloween props with a single microcontroller (such as an Arduino). This lets you exactly choreograph how and when each prop will turn on an off. It also lets you use external sensors that you can customize for your exact setup.
Step 1: Watch the Video
Here is a video walkthrough of the project.
Step 2: Materials
Here are the materials and tools that you will need for this project.
Materals:
Halloween Props with a "Try Me" button
Arduino Microcontroller
5 x NPN Switching Transistor
5 x 1 kohm Resistor
Wires
Circuit Breadboard
Nonconductive Tape
Tools:
Multimeter
Markers
Small Screwdrivers
Wire Strippers
Soldering Iron and Solder
Step 3: Find Halloween Props With a "Try Me" Button
There are many different kinds of animated Halloween props and they can all be hacked in one way or another. But for the purposes of this project, I am going to focus on battery powered Halloween props that have a "Try Me" button. These props will have a button somewhere on the package that will let you activate the programmed animation. This lets you see the prop in action before you buy it.
The "Try Me" button lets you activate the prop remotely. By connecting to the terminals of this switch, you can control the prop with an external circuit such as an Arduino.
So when looking for props, try to find ones that have an external play button that activates the animations.
Step 4: Disassemble the Button
The easiest way to connect to the prop is at the terminals of the button. In order to do this, you need to disassemble the button. You can usually pry open the plastic housing with a small screw driver. If it is snapped together, just depress each of the tabs and it will pop open. If it is glued, you may need to crack open the glue seam.
Inside you will find a small switch with two or four exposed terminals.
Safety Warning: As stated before, this procedure is only intended for battery powered props. I do not recommend disassembling switches for AC powered props. This can be very dangerous if not handled properly.
Step 5: Use a Multimeter to Identify the Terminals of the Switch
Use a multimeter to measure the voltage between the two sides of the switch. The measured values will be different depending on the design of the prop. The only thing that you need to be concerned with is the relative polarity. You need to know which terminal is more positive and which terminal is more negative.
To help keep track of which terminal is which, I used colored markers to make side of the positive terminal red and the negative terminal black.
Step 6: Test the Terminals With a Resistor
There are two types of "ON" switches that you might find on a Halloween prop. The first type is a low current signal switch. These just send a small signal to the control chip on the prop. The second type is a high current power switch. This switch connects the prop to the battery pack and has to handle all the power that is required by the prop. We need to know which type of switch it is so that we can use an appropriate transistor to activate the prop.
To test which type of switch it is, take a 1 kohm resistor and touch the two leads of the resistor to the two terminals of the switch that are connected to the prop. If there isn't a large enough exposed surface, you can disconnect the switch at the base of the prop and touch the leads of the resistor the terminals of the prop itself.
If the animation activates, then it is a low current switch and you will be able to use low current transistor to activate the prop. If it does not activate, then it is probably a high current switch and you should use a "power transistor" (rated for at least 1 amp) to activate it.
Step 7: Make an External Transistor Switch
You can use a transistor to simulate the button being pressed. First select an appropriate NPN transistor. Then connect the "collector" pin of the transistor to the positive terminal of the switch and connect the "emitter" pin of the transistor to the negative terminal of the switch. Because we will need to make more connections to transistor later, you will probably want to connect to the switch with small jumper wires. When you apply a positive voltage (relative to the emitter pin) to the "base" pin of the transistor, the two terminals of the switch will be effectively connected and the prop will play its animation. A 1 kohm resistor added to the base pin of the transistor helps to protect it from excessive current that could potentially damage it.
Step 8: Connect the Transistor Switch to the Arduino
Now you need to connect the transistor switch to your microcontroller. Connect the GND pin of your microcontroller to the emitter pin on your transistor. Then connect one of the digital pins to the 1 kohm resistor that is connected to the base pin of the transistor. When the digital pin is set to a HIGH output, the transistor will activate the prop.
Step 9: Add Additional Props
Repeat the previous steps to add additional props. You can control as many props as there are digital output pins on your microcontroller.
Step 10: Add External Sensors
Now you can add your own external sensors to activate the system. Here are links to a few examples.
Pressure Plates: https://www.instructables.com/id/Use-a-DIY-Pressure...
Proximity Sensors: https://www.instructables.com/id/Use-a-DIY-Proximit...
Motion Sensors: https://www.instructables.com/id/Use-a-Motion-Senso...
Step 11: Sample Arduino Code
//Here is some really basic sample code that you can use to test your system.
int PropOnePin = 8; // Prop One connected to digital pin 8
int PropTwoPin = 9; // Prop One connected to digital pin 9 int PropThreePin = 10; // Prop One connected to digital pin 10 int PropFourPin = 11; // Prop One connected to digital pin 11 int PropFivePin = 12; // Prop One connected to digital pin 12 int SensorPin = 3; // sensor connected to analog pin 3 int SensorVal = 0; // variable to store the value read
void setup() { pinMode(PropOnePin, OUTPUT); // sets the digital pin as output pinMode(PropTwoPin, OUTPUT); // sets the digital pin as output pinMode(PropThreePin, OUTPUT); // sets the digital pin as output pinMode(PropFourPin, OUTPUT); // sets the digital pin as output pinMode(PropFivePin, OUTPUT); // sets the digital pin as output }
void loop() { SensorVal = analogRead(SensorPin); // read the input pin if (SensorVal >100) { digitalWrite(PropThreePin, HIGH); digitalWrite(PropFourPin, HIGH); digitalWrite(PropTwoPin, HIGH); digitalWrite(PropOnePin, HIGH); digitalWrite(PropFivePin, HIGH);
delay(10000); digitalWrite(PropThreePin, LOW); digitalWrite(PropFivePin, LOW); digitalWrite(PropOnePin, LOW); digitalWrite(PropTwoPin, LOW); digitalWrite(PropFourPin, LOW);
delay(5000); digitalWrite(PropThreePin, HIGH); digitalWrite(PropFourPin, HIGH); digitalWrite(PropTwoPin, HIGH); digitalWrite(PropOnePin, HIGH); digitalWrite(PropFivePin, HIGH);
delay(10000); digitalWrite(PropThreePin, LOW); digitalWrite(PropFivePin, LOW); digitalWrite(PropOnePin, LOW); digitalWrite(PropTwoPin, LOW); digitalWrite(PropFourPin, LOW); delay(5000); } }
Step 12: Enjoy Your Automated Halloween Props
Now all you have to do is set up the props in your haunted house and enjoy the fun of scaring your guests.