How to Build a Simple Laser Tripwire Alarm with Arduino

Building a laser tripwire alarm with an Arduino is a fun electronics project that allows you to create a cool intruder detection system using simple components. In this guide, I will show you how I built my own laser tripwire alarm using an Arduino Uno, a laser diode, a photoresistor, and a few other electronic parts.


A laser tripwire alarm works by shining a laser beam across an area you want to monitor. When the laser beam is broken, such as by someone walking through it, the alarm is triggered.

The main components needed to build the alarm are:

The Arduino reads the photoresistor sensor and detects when the laser beam is broken. It then activates the buzzer to sound the alarm. The laser diode driver modulates the laser at a frequency of a few kilohertz so the photoresistor can distinguish the laser light from ambient light.

Overall, the system allows you to detect intruders crossing a laser beam path and sound an alarm in response. It's a fun DIY security project!

How the Laser Tripwire Alarm Works

Here is a high-level overview of how the different components in the laser tripwire alarm work together:

So in summary, the laser diode and photoresistor form a tripwire that detects when the beam is broken. The Arduino processes this sensor input and sounds the buzzer alarm in response.

Circuit Diagram

Here is the circuit diagram showing how all the components are connected:

How to Build a Simple Laser Tripwire Alarm with Arduino

The key points about the circuit:

Let's now go through each component one-by-one and discuss how to integrate them.

How to Connect the Arduino

The Arduino Uno provides the brains of the alarm. It's easy to connect:

The Arduino code monitors the photoresistor input and triggers the buzzer when the beam is broken. I'll provide the full code later.

Choosing a Laser Diode

The laser diode shines the laser beam across the monitored area. Important features to look for are:

I used a 5mW 650nm diode which worked well over a 10 foot span. Make sure to heed all laser safety advice when choosing and operating your diode.

Using a Laser Diode Driver

Driving a laser diode is complicated - you have to regulate the voltage precisely and modulate it at high speeds.

To simplify things, I recommend using a dedicated laser diode driver IC. Some options are:

I used the WLD3343 as it integrates all the key functions I needed. The wiring is simple:

The WLD3343 then handles powering the laser diode correctly and modulating it at 4kHz for the tripwire alarm.

Choosing a Photoresistor

The photoresistor detects when the laser beam is broken or unbroken. Key factors to consider when choosing one are:

I used a 20M ohm photoresistor with a 1cm x 1cm sensing area and it worked great. The large surface area allowed reliable detection of the laser over a long range.

Setting up the Photoresistor

Connecting the photoresistor to the Arduino is straightforward:

I found this basic voltage divider circuit worked great to detect when the beam was broken in my tests.

Choosing a Buzzer

The buzzer provides the audible alarm when the tripwire is triggered. Here are some tips for selecting a buzzer:

I used a common 5V electromagnetic buzzer rated at 9V 100mA. This produced a suitably loud ~90dB siren sound to alert me when the tripwire was triggered.

Connecting the Buzzer to the Arduino

The buzzer must be driven by a transistor to provide enough current from the Arduino pins:

I used a generic 2N2222 NPN transistor and 1K pulldown resistor with my buzzer. This amplified the current nicely to drive the buzzer and sound the alarm.

Arduino Code to Detect the Tripwire

Here is simple Arduino code to monitor the photoresistor and sound the alarm when the laser tripwire is broken:

const int sensorPin = A0; // Photoresistor connected to analog pin A0
const int buzzerPin = 9; // Buzzer connected to digital pin 9
const int threshold = 500; // Threshold to trigger alarm

void setup() {
pinMode(buzzerPin, OUTPUT); // Set buzzer pin as output

void loop() {
int sensorValue = analogRead(sensorPin); // Read photoresistor value

if(sensorValue < threshold) { // If value drops below threshold
digitalWrite(buzzerPin, HIGH); // Sound alarm
else {
digitalWrite(buzzerPin, LOW); // Else silence alarm

This simple program reads the analog photoresistor input, and sounds the buzzer when the value falls below a threshold indicating the beam is broken.

You can customize the threshold level as needed to reliably detect when the beam is triggered.

Aligning and Troubleshooting the Laser Tripwire

Once you have the circuit built, you need to properly align the laser and photoresistor:

Take the time to carefully align the laser and photoresistor, starting from short distances and progressively increasing the range. This will provide the most reliable tripwire detection.

Some other troubleshooting tips:

Safety Considerations

Laser safety is extremely important. Here are some key guidelines:

Following basic precautions is critical when working with lasers to avoid accidental exposure or dangerous conditions. Stay safe!

Closing Thoughts

Building a laser tripwire alarm with Arduino is an awesome electronics project that teaches you a lot about lasers, sensors, microcontrollers, and other useful skills.

The alarm can serve as a cool intruder detection system or be integrated into more complex projects. Just be sure to follow all laser safety advice when operating it.

With the simple guidelines in this guide, you should have everything you need to build your own laser tripwire alarm using an Arduino! Let me know if you have any other questions.