Search Code

Arduino-code en videotransmitter en lasersensor

Arduino-code en videotransmitter en lasersensor

In deze tutorial leren we hoe we een laserzender en -ontvanger kunnen gebruiken om een laserstraal te detecteren en een zoemer of een andere actie te activeren. Deze opstelling kan worden gebruikt in verschillende toepassingen, waaronder automatisering en robotica. Aan het einde van de tutorial begrijp je hoe je de componenten moet bedraden en de Arduino-code moet schrijven om alles naadloos te laten werken.

Laster RX or receiver module
Laster TX or transmitter module

Gedurende de tutorial bespreken we de belangrijkste componenten die bij dit project betrokken zijn, inclusief hoe je ze correct bedraadt en hoe de code werkt. Bekijk de video voor een gedetailleerde uitleg (in video op 02:00).

Hardware Uitgelegd

De belangrijkste componenten van dit project zijn een laserzender, een laserontvanger en een zoemer. De laserzender zendt een lichtstraal uit, terwijl de ontvanger deze straal detecteert. Wanneer de straal wordt onderbroken, stuurt de ontvanger een signaal naar de Arduino, die vervolgens de zoemer kan activeren of een andere actie kan uitvoeren.

De zendermodule werkt op 5 volt en bevat een weerstand om de stroom te beperken. De ontvangermodule kan worden aangesloten op een externe draad voor flexibiliteit in plaatsing. De zoemer wordt ook gevoed met 5 volt en heeft twee pinnen: één voor positief en één voor aarde.

Datasheet Details

FabrikantOnbekend
OnderdeelnummerLaserzender/-ontvangermodule
Bedrijfsspanning5 V
Stroomverbruik5 mA typ.
UitgangstypeDigitaal signaal
DetectiebereikVarieert met de omgeving
AfmetingenZender: 14,8 mm x 18,8 mm, Ontvanger: 15,4 mm x 23,4 mm

  • Zorg voor een juiste voedingsspanning om schade te voorkomen.
  • Gebruik korte draden om signaalverlies te minimaliseren.
  • Houd de ontvanger uitgelijnd met de zender voor betrouwbare detectie.
  • Test de opstelling in verschillende lichtomstandigheden.
  • Wees voorzichtig met reflecties die valse detecties kunnen veroorzaken.

Bedradingsinstructies

Arduion wiring laser Transmitter and receiver
Arduion wiring laser Transmitter and receiver

Om de laserzender te bedraden, verbind je de aardpin met de Arduino GND en de positieve pin met de Arduino 5V. De middelste pin van de zender wordt niet gebruikt. Voor de laserontvanger verbind je de aardpin met GND, de positieve pin met 5V en de uitgangspin met Arduino-pin 2. Deze uitgangspin leest het signaal van de laserontvanger.

Verbind vervolgens de zoemer: de langere pin (positief) moet worden aangesloten op Arduino-pin 8, terwijl de kortere pin (aarde) wordt verbonden met GND. Zorg ervoor dat alle verbindingen stevig zijn om onderbrekingsproblemen tijdens de werking te voorkomen.

Codevoorbeelden en Uitleg

De Arduino-code begint met het definiëren van de pinnen voor de lasersensor en de actie (zoemer) met behulp van de identificaties DETECT en ACTION. De code initialiseert de seriële communicatie voor debugging en stelt de pinmodi in de setup()-functie in.

#define DETECT 2 // pin 2 voor sensor
#define ACTION 8 // pin 8 voor actie om iets te doen

void setup() {
  Serial.begin(9600);
  pinMode(DETECT, INPUT); // definieer detectie-ingangspin
  pinMode(ACTION, OUTPUT); // definieer ACTION-uitgangspin
}

Dit fragment laat zien hoe je de pinnen configureert voor invoer en uitvoer, wat cruciaal is voor de functionaliteit van de opstelling. Het Serial.begin(9600)-commando maakt communicatie met de seriële monitor mogelijk, zodat we debugberichten kunnen zien.

In de loop()-functie controleert de code continu de status van de lasersensor. Als de laserstraal wordt gedetecteerd, activeert het de zoemer en print "Gedetecteerd!" naar de seriële monitor.

void loop() {
  int detected = digitalRead(DETECT); // lees lasersensor
  if(detected == HIGH) {
    digitalWrite(ACTION, HIGH); // zet de zoemer AAN
    Serial.println("Gedetecteerd!");
  } else {
    digitalWrite(ACTION, LOW); // zet de zoemer UIT
    Serial.println("Geen laser");
  }
  delay(200); // wacht 200 milliseconden
}

Dit fragment demonstreert de kernlogica van het programma. De variabele detected slaat de uitvoer op van de digitalRead()-functie, die controleert of de laserstraal aanwezig is. Afhankelijk van de status wordt de zoemer aan of uit gezet.

Demonstratie / Wat te Verwachten

Wanneer de opstelling correct is bedraad en de code is geüpload, zou het systeem naar verwachting moeten functioneren. De seriële monitor geeft "Gedetecteerd!" aan wanneer de laserstraal de ontvanger raakt, en de zoemer zal klinken. Als de straal wordt onderbroken of niet wordt gedetecteerd, wordt "Geen laser" weergegeven en gaat de zoemer uit.

Het is essentieel om ervoor te zorgen dat de laserstraal goed is uitgelijnd met de ontvanger voor betrouwbare werking. Wees je bewust van mogelijke reflecties die valse positieven kunnen veroorzaken, zoals besproken in de video (in video op 08:00).

Videotijdstempels

  • 00:00 - Introductie
  • 02:00 - Hardware-uitleg
  • 04:30 - Bedradingsinstructies
  • 06:15 - Code-uitleg
  • 08:00 - Demonstratie

Afbeeldingen

Laster RX or receiver module
Laster RX or receiver module
Laster RX or receiver module
Laster RX or receiver module
Laster TX or transmitter module
Laster TX or transmitter module
Laster TX or transmitter module
Laster TX or transmitter module
Laster TX or transmitter module
Laster TX or transmitter module
Arduion wiring laser Transmitter and receiver
Arduion wiring laser Transmitter and receiver
67-This is the Arduino code and video for a laser sensor module.
Taal: C++
++
/*
 * Laser Sensor module for Arduino
 * Turns ON a buzzer or you can control a motor or servo or any other action.

 * Watch the video https://youtu.be/h_y1y6eUvIY

 *  * 
Laser Sensor module for Arduino
Written by Ahmad Shamshiri for Robojax.com
on Feb 02, 2018 at 18:24 in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purposes only.
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.* 
 * This code has been downloaded from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 /*
/*


 */
  // Laser Sensor code for Robojax.com
#define DETECT 2 // pin 2 for  sensor
#define ACTION 8 // pin 8 for action to do something


void setup() {
  Serial.begin(9600);
  Serial.println("Robojax.com Laser Module Test");
  pinMode(DETECT, INPUT);//define detect input pin
  pinMode(ACTION, OUTPUT);//define ACTION output pin

  // Laser sensor code for Robojax.com

}

void loop() {
     // Laser Sensor code for Robojax.com

  int detected = digitalRead(DETECT);// read Laser sensor
 
  if( detected == HIGH)
  {
    digitalWrite(ACTION,HIGH);// set the buzzer ON
    Serial.println("Detected!");

  }else{
    digitalWrite(ACTION,LOW); // Set the buzzer OFF
    Serial.println("No laser");
     // Laser Sensor code for Robojax.com

  }
  delay(200);
}

Dingen die je misschien nodig hebt

Hulpmiddelen en referenties

Nog geen middelen.

Bestanden📁

Geen bestanden beschikbaar.