ค้นหาโค้ด

รหัส Arduino และตัวส่งสัญญาณวิดีโอและเซนเซอร์เลเซอร์

รหัส Arduino และตัวส่งสัญญาณวิดีโอและเซนเซอร์เลเซอร์

ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้ตัวส่งและตัวรับเลเซอร์เพื่อตรวจจับลำแสงเลเซอร์และสั่งให้ออดหรือการทำงานอื่นทำงาน การตั้งค่านี้สามารถนำไปใช้ในงานต่างๆ ได้หลากหลาย รวมถึงระบบอัตโนมัติและหุ่นยนต์ เมื่อจบบทช่วยสอนนี้ คุณจะเข้าใจวิธีเชื่อมต่ออุปกรณ์และเขียนโค้ด Arduino เพื่อให้ทุกอย่างทำงานได้อย่างราบรื่น

Laster RX or receiver module
Laster TX or transmitter module

ตลอดบทช่วยสอนนี้ เราจะพูดถึงส่วนประกอบหลักที่เกี่ยวข้องในโปรเจกต์นี้ รวมถึงวิธีเชื่อมต่ออย่างถูกต้องและวิธีที่โค้ดทำงาน ดูวิดีโอสำหรับคำอธิบายโดยละเอียด (ในวิดีโอที่ 02:00)

อธิบายฮาร์ดแวร์

ส่วนประกอบหลักของโปรเจกต์นี้ประกอบด้วยตัวส่งเลเซอร์ ตัวรับเลเซอร์ และออด ตัวส่งเลเซอร์จะปล่อยลำแสงออกมา ในขณะที่ตัวรับจะตรวจจับลำแสงนี้ เมื่อลำแสงถูกขัดจังหวะ ตัวรับจะส่งสัญญาณไปยัง Arduino ซึ่งสามารถสั่งให้ออดทำงานหรือดำเนินการอื่นได้

โมดูลตัวส่งทำงานที่ 5 โวลต์และมีตัวต้านทานเพื่อจำกัดกระแส โมดูลตัวรับสามารถเชื่อมต่อกับสายภายนอกเพื่อความยืดหยุ่นในการวางตำแหน่ง ออดยังใช้ไฟ 5 โวลต์และมีสองขา: ขาหนึ่งสำหรับขั้วบวกและอีกขาหนึ่งสำหรับกราวด์

รายละเอียดจาก Datasheet

ผู้ผลิตไม่ทราบ
หมายเลขชิ้นส่วนโมดูลตัวส่ง/ตัวรับเลเซอร์
แรงดันไฟฟ้าที่ใช้งาน5 V
กระแสไฟฟ้าที่ใช้5 mA โดยทั่วไป
ประเภทเอาต์พุตสัญญาณดิจิทัล
ระยะการตรวจจับขึ้นอยู่กับสภาพแวดล้อม
ขนาดตัวส่ง: 14.8 มม. x 18.8 มม., ตัวรับ: 15.4 มม. x 23.4 มม.

  • ตรวจสอบให้แน่ใจว่าแหล่งจ่ายไฟมีแรงดันไฟฟ้าที่เหมาะสมเพื่อป้องกันความเสียหาย
  • ใช้สายไฟสั้นเพื่อลดการสูญเสียสัญญาณ
  • จัดตำแหน่งตัวรับให้ตรงกับตัวส่งเพื่อการตรวจจับที่เชื่อถือได้
  • ทดสอบการตั้งค่าในสภาพแสงที่แตกต่างกัน
  • ระวังการสะท้อนที่อาจทำให้เกิดการตรวจจับผิดพลาด

คำแนะนำการเชื่อมต่อสายไฟ

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

ในการเชื่อมต่อตัวส่งเลเซอร์ ให้ต่อขากราวด์เข้ากับ GND ของ Arduino และขาบวกเข้ากับ 5V ของ Arduino ขากลางของตัวส่งไม่ถูกใช้งาน สำหรับตัวรับเลเซอร์ ให้ต่อขากราวด์เข้ากับ GND ขาบวกเข้ากับ 5V และขาเอาต์พุตเข้ากับขา 2 ของ Arduino ขาเอาต์พุตนี้จะอ่านสัญญาณจากตัวรับเลเซอร์

จากนั้นเชื่อมต่อออด: ขาที่ยาวกว่า (ขั้วบวก) ควรต่อเข้ากับขา 8 ของ Arduino ในขณะที่ขาที่สั้นกว่า (กราวด์) ต่อเข้ากับ GND ตรวจสอบให้แน่ใจว่าการเชื่อมต่อทั้งหมดแน่นหนาเพื่อหลีกเลี่ยงปัญหาที่เกิดขึ้นเป็นระยะระหว่างการทำงาน

ตัวอย่างโค้ดและคำอธิบาย

โค้ด Arduino เริ่มต้นด้วยการกำหนดขาสำหรับเซ็นเซอร์เลเซอร์และการทำงาน (ออด) โดยใช้ตัวระบุ DETECT และ ACTION โค้ดเริ่มต้นการสื่อสารแบบอนุกรมสำหรับการดีบักและตั้งค่าโหมดของขาในฟังก์ชัน setup()

#define DETECT 2 // ขา 2 สำหรับเซ็นเซอร์
#define ACTION 8 // ขา 8 สำหรับการทำงานบางอย่าง

void setup() {
  Serial.begin(9600);
  pinMode(DETECT, INPUT); // กำหนดขาตรวจจับเป็นอินพุต
  pinMode(ACTION, OUTPUT); // กำหนดขา ACTION เป็นเอาต์พุต
}

ตัวอย่างโค้ดนี้แสดงวิธีกำหนดค่าขาสำหรับอินพุตและเอาต์พุต ซึ่งสำคัญต่อการทำงานของการตั้งค่านี้ คำสั่ง Serial.begin(9600) ช่วยให้สามารถสื่อสารกับซีเรียลมอนิเตอร์ได้ ทำให้เราเห็นข้อความดีบัก

ในฟังก์ชัน loop() โค้ดจะตรวจสอบสถานะของเซ็นเซอร์เลเซอร์อย่างต่อเนื่อง หากตรวจพบลำแสงเลเซอร์ โค้ดจะสั่งให้ออดทำงานและพิมพ์ "Detected!" ไปยังซีเรียลมอนิเตอร์

void loop() {
  int detected = digitalRead(DETECT); // อ่านเซ็นเซอร์เลเซอร์
  if(detected == HIGH) {
    digitalWrite(ACTION, HIGH); // เปิดออด
    Serial.println("Detected!");
  } else {
    digitalWrite(ACTION, LOW); // ปิดออด
    Serial.println("No laser");
  }
  delay(200); // หน่วงเวลา 200 มิลลิวินาที
}

ตัวอย่างนี้แสดงตรรกะหลักของโปรแกรม ตัวแปร detected เก็บค่าจากฟังก์ชัน digitalRead() ซึ่งตรวจสอบว่ามีลำแสงเลเซอร์อยู่หรือไม่ ขึ้นอยู่กับสถานะ ออดจะถูกเปิดหรือปิด

การสาธิต / สิ่งที่คาดหวัง

เมื่อการตั้งค่าเชื่อมต่ออย่างถูกต้องและอัปโหลดโค้ดแล้ว ระบบควรทำงานตามที่คาดหวัง ซีเรียลมอนิเตอร์จะแสดง "Detected!" เมื่อลำแสงเลเซอร์ตกกระทบตัวรับ และออดจะดังขึ้น หากลำแสงถูกขัดจังหวะหรือไม่ถูกตรวจจับ จะแสดง "No laser" และออดจะปิด

สิ่งสำคัญคือต้องแน่ใจว่าลำแสงเลเซอร์จัดตำแหน่งตรงกับตัวรับอย่างถูกต้องเพื่อการทำงานที่เชื่อถือได้ ระวังการสะท้อนที่อาจทำให้เกิดการตรวจจับผิดพลาด ตามที่กล่าวไว้ในวิดีโอ (ในวิดีโอที่ 08:00)

ไทม์สแตมป์ในวิดีโอ

  • 00:00 - บทนำ
  • 02:00 - คำอธิบายฮาร์ดแวร์
  • 04:30 - คำแนะนำการเชื่อมต่อสายไฟ
  • 06:15 - คำอธิบายโค้ด
  • 08:00 - การสาธิต

ภาพ

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.
ภาษา: 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);
}

สิ่งที่คุณอาจต้องการ

แหล่งข้อมูลและเอกสารอ้างอิง

ยังไม่มีทรัพยากรเลย

ไฟล์📁

ไม่มีไฟล์ที่พร้อมใช้งาน