User Tools

Site Tools


laser_tripwire_rubber_band_shooter

How it works

A laser constantly shines on a photoresistor. The Arduino constantly reads the voltage from a voltage divider made from a photoresistor and a 20k resistor. When a person interrupts the laser beam, the resistance of the photoresistor drops. The Arduino detects this as a change in voltage and sends a signal to the servo to change positions, releasing a rubber band.

Wiring Diagram

Voltage Divider Equation

Arduino Code

#include <Servo.h>
 
 
int lightPin = A0;  //define a pin for Photo resistor
int ledPin=13;     //define a pin for LED
int threshold = 800; //define threshold value. Below this, the beam is assumed to be broken
int servoPin = 11;  //define a pin for the servo
int fireposition = 40;
int homeposition = 150;
 
Servo myservo;
 
void setup()
{
    Serial.begin(9600);  //Begin serial communcation
    pinMode( ledPin, OUTPUT );
    myservo.attach(servoPin); 
    myservo.write(homeposition);  //move servo to home position
    delay(10000);   //10 second delay at startup 
}
 
void loop()
{
   myservo.write(homeposition);
   delay(1000);
   while (analogRead(lightPin) > threshold){
     Serial.println(analogRead(lightPin)); //Write the value of the photoresistor to the serial monitor.
     digitalWrite(ledPin, 1);
     delay(10);
   }
   myservo.write(fireposition);
   digitalWrite(ledPin, 0);
   delay(1000);
}
laser_tripwire_rubber_band_shooter.txt · Last modified: 2018/08/09 16:38 by glassgiant