Arduino Laser Tripwire
Componenten en benodigdheden
| × | 1 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Apps en online services
|
Over dit project
Een lasertripwire bouwen
Componenten
We hebben het volgende nodig:
- Enkele jumperdraden
- 3 x 10k weerstanden
- 2 x fotoweerstanden
- Een knop
- Een zoemer
- Een laser
- Een Arduino
- Een breadboard
- en een spiegel
Ik heb ook een apart breadboard gebruikt voor het laserdetectiecircuit. (Dit hielp enorm om de laser op de fotoweerstand te positioneren.)
Maak de laserdetector
Ik ga beginnen met het gedeelte Laserdetectie van het circuit.
Pak eerst twee jumperdraden. Ik heb een rode en een gele. Plaats de twee jumperdraden in 2 aparte klemmenstroken. Pak een fotoweerstand en sluit deze aan op de rode draad en een aansluitstrip. Plaats de andere fotoweerstand tussen een andere klemmenstrook en de rode draad. Sluit een weerstand van 10k van de gele kabel aan op een van de fotoweerstanden en de andere 10K-weerstand tussen de andere fotoweerstand en de gele kabel. Pak nog twee kabels en verbind ze met elk snijpunt van de fotoweerstanden en 10k-weerstanden. Ik heb groene en oranje jumperdraden gebruikt.
Sluit de gele kabel aan op de min van het breadboard en de rode op de plus van de breadboard. Sluit de oranje aan op A0 (de fotoweerstand die hierop is aangesloten, is de laserdetector) en de groene op A1 (de fotoweerstand die hierop is aangesloten, is de omgevingslichtdetector).
Laten we de zoemer doen
Plaats de zoemer ergens op het breadboard. Sluit een kabel aan tussen de negatieve rail en de negatieve van de zoemer. Sluit het positieve uiteinde van de zoemer aan op pin 3 van de Arduino.
Maak de knop
Vervolgens gaan we de knopsectie maken
Plaats de knop tussen 2 klemmenstroken (zorg dat er alleen contact is als de knop tussen de 2 klemmen wordt ingedrukt). Plaats de laatste 10k-weerstand aan het ene uiteinde van de knop en een negatieve pin. Ik heb een jumper draad gebruikt om het aan te sluiten op de grondrail. Sluit het andere uiteinde van de knop aan op de positieve rail. Verbind vervolgens het snijpunt van de knop en weerstand met pin 4 van de Arduino.
Tijd voor laserlicht!
Laten we tot slot de laser aansluiten op pin 2 en aarde. Ik heb voor beide de pinnen op de Arduino gebruikt. Ik heb een goedkope laser gebruikt die ik heb "gehackt" door krokodillenklemmen met de veer en de behuizing te verbinden met een klittenband die de knop ingedrukt houdt.
Ik heb een programma geschreven om de Laser Trip Wire uit te voeren.
Er wordt voortdurend gecontroleerd of de knop is ingedrukt. Als er op wordt gedrukt, gaan we naar de instelmodus, als we nogmaals op de knop drukken, gaan we naar de gewapende modus.
Als we in de setup-modus zijn, doet het het volgende:
- Het voert de waarden uit naar de seriële poort.
- Als het lampje op de fotoweerstand fel genoeg is, licht pin 13 op. Met deze functie kan men de laser richten.
In de ingeschakelde modus doet het het volgende:
- Elke 3 seconden rapporteert het via seriële communicatie.
- Het controleert of de waarde van de fotoweerstand daalt doordat de laser wordt onderbroken, wanneer de laserstraal wordt verbroken, wordt de Trip-modus gestart.
In uitschakelmodus is de uitschakeldraad "uitgeschakeld":
- Het piept 3 keer en de gegevens worden naar de seriële poort gestuurd,
- keert dan terug naar de ingeschakelde modus.
Code
- Laser tripwire
Laser TripwireArduino
// 5 pins trip draad// Variablesint mode =1;int ambient;int trip =1000; // De lichtwaarde die ik krijg bij het gebruik van mijn laserint minLight =900;int makeBeep =1; //0 voor geen piep, 1 voor piep!int atAverage;long millisCount;// Output Pinsint laserPin =2;int ledPin =13;int buzzerPin =3;String modeNames[3] ={"INSTELLINGEN","GESCHAKELD", "TRIP"};// Input Pinsint modePin =4; int tripPin =A0;int ambiantPin =A1;void setup() { pinMode(ledPin, OUTPUT); pinMode (laserPin, UITGANG); pinMode (zoemerPin, UITGANG); pinMode(modePin, INPUT); Serial.begin(9600);}void loop() {// Wanneer de knop wordt ingedrukt if (digitalRead(modePin) ==1) { trip =analogRead(tripPin); modus=modus + 1; if (modus>=2) { modus =0; } piep(1); vertraging (300); } // doet iets wanneer de modus verandert schakelaar (modus) { case 0:// kalibratiemodus digitalWrite (laserPin, HIGH); ambient =analogRead (ambiantPin); trip =analoog lezen (tripPin); atAverage =omgeving + ((reis - omgeving)/2); statistieken(); if (trip> =minLight) {digitalWrite(ledPin,HIGH); } else {digitalWrite(ledPin,LOW); } pauze; geval 1:// Ingeschakelde modus digitalWrite (laserPin, HIGH); digitalWrite (ledPin, LAAG); ambient =analogRead (ambiantPin); atAverage =omgeving + ((reis - omgeving)/2); if (analogRead (tripPin)=3000) { millisCount =millis(); statistieken(); } pauze; geval 2://Trip Mode if ((millis() - millisCount)>=1000) { millisCount =millis(); statistieken(); piep (3); modus =1; } pauze; } vertraging(1); // wacht even}// It Beepsvoid beep (int qty) { int count; if (makeBeep ==1) { for (count =1;count<=aantal;count++) {digitalWrite(buzzerPin, HIGH); vertraging (50); digitalWrite (buzzerPin, LAAG); vertraging (50); } }}//Schrijft statistieken naar de Serial Portvoid stats() { Serial.print("A:"); Serial.print(ambiant); Serial.print(" T:"); Serial.print(reis); Serial.print(" AT:"); Serial.print (bijGemiddelde); Serial.print ("MODUS:"); Serial.print(modeNames[mode]); Serial.println("");}
Schema's
Breadboard-weergave Schematische weergaveProductieproces
- Squid Games Doll gebouwd met Arduino UNO
- Arduino klok met islamitische gebedstijden
- Human Detection Robotics System met Arduino Uno
- WebServerBlink met Arduino Uno WiFi
- Eenvoudige UNO-rekenmachine
- Een afbeelding weergeven op een LCD TFT-scherm met Arduino UNO!
- Persistentie van visie
- Een LED-matrix besturen met Arduino Uno
- Wi-Servo:Wi-Fi Browser gestuurde servomotoren
- Arduino Uno + elektrisch apparaat (lamp) + Android-telefoon
- 25 kHz 4-pins PWM-ventilatorregeling met Arduino Uno