Mã Arduino và Bộ phát video và Cảm biến laser
Trong hướng dẫn này, chúng ta sẽ học cách sử dụng bộ phát và bộ thu laser để phát hiện chùm tia laser và kích hoạt còi báo hoặc một hành động khác. Thiết lập này có thể được sử dụng trong nhiều ứng dụng khác nhau, bao gồm tự động hóa và robot. Đến cuối hướng dẫn, bạn sẽ hiểu cách đấu dây các linh kiện và viết mã Arduino để mọi thứ hoạt động liền mạch.


Trong suốt hướng dẫn, chúng ta sẽ thảo luận về các linh kiện chính liên quan đến dự án này, bao gồm cách đấu dây chúng đúng cách và cách mã hoạt động. Xem video để biết hướng dẫn chi tiết (trong video tại 02:00).
Giải thích về Phần cứng
Các thành phần chính của dự án này bao gồm bộ phát laser, bộ thu laser và còi báo. Bộ phát laser phát ra một chùm ánh sáng, trong khi bộ thu phát hiện chùm tia này. Khi chùm tia bị gián đoạn, bộ thu sẽ gửi tín hiệu đến Arduino, sau đó có thể kích hoạt còi báo hoặc thực hiện một hành động khác.
Mô-đun phát hoạt động ở 5 volt và bao gồm một điện trở để giới hạn dòng điện. Mô-đun thu có thể được kết nối với dây bên ngoài để linh hoạt trong việc bố trí. Còi báo cũng được cấp nguồn 5 volt và có hai chân: một chân dương và một chân nối đất.
Chi tiết Bảng dữ liệu
| Nhà sản xuất | Không rõ |
|---|---|
| Số bộ phận | Mô-đun Phát/Thu Laser |
| Điện áp hoạt động | 5 V |
| Dòng điện tiêu thụ | 5 mA điển hình |
| Loại đầu ra | Tín hiệu kỹ thuật số |
| Phạm vi phát hiện | Thay đổi theo môi trường |
| Kích thước | Bộ phát: 14,8 mm x 18,8 mm, Bộ thu: 15,4 mm x 23,4 mm |
- Đảm bảo cung cấp điện áp phù hợp để tránh hư hỏng.
- Sử dụng dây ngắn để giảm thiểu mất tín hiệu.
- Giữ bộ thu thẳng hàng với bộ phát để phát hiện đáng tin cậy.
- Kiểm tra thiết lập trong các điều kiện ánh sáng khác nhau.
- Thận trọng với phản xạ có thể gây ra phát hiện sai.
Hướng dẫn Đấu dây

Để đấu dây bộ phát laser, kết nối chân nối đất của nó với GND của Arduino và chân dương với 5V của Arduino. Chân giữa của bộ phát không được sử dụng. Đối với bộ thu laser, kết nối chân nối đất của nó với GND, chân dương với 5V và chân đầu ra với chân 2 của Arduino. Chân đầu ra này sẽ đọc tín hiệu từ bộ thu laser.
Tiếp theo, kết nối còi báo: chân dài hơn của nó (dương) nên được kết nối với chân 8 của Arduino, trong khi chân ngắn hơn (nối đất) kết nối với GND. Đảm bảo tất cả các kết nối đều chắc chắn để tránh các sự cố ngắt quãng trong quá trình hoạt động.
Ví dụ Mã & Hướng dẫn Chi tiết
Mã Arduino bắt đầu bằng việc định nghĩa các chân cho cảm biến laser và hành động (còi báo) bằng cách sử dụng các định danh DETECT và ACTION. Mã khởi tạo giao tiếp nối tiếp để gỡ lỗi và đặt chế độ chân trong hàm setup().
#define DETECT 2 // chân 2 cho cảm biến
#define ACTION 8 // chân 8 cho hành động làm gì đó
void setup() {
Serial.begin(9600);
pinMode(DETECT, INPUT); // định nghĩa chân phát hiện đầu vào
pinMode(ACTION, OUTPUT); // định nghĩa chân ACTION đầu ra
}
Đoạn mã này cho thấy cách cấu hình các chân cho đầu vào và đầu ra, điều này rất quan trọng cho chức năng của thiết lập. Lệnh Serial.begin(9600) cho phép giao tiếp với màn hình nối tiếp, giúp chúng ta xem các thông điệp gỡ lỗi.
Trong hàm loop(), mã liên tục kiểm tra trạng thái của cảm biến laser. Nếu chùm tia laser được phát hiện, nó sẽ kích hoạt còi báo và in "Detected!" lên màn hình nối tiếp.
void loop() {
int detected = digitalRead(DETECT); // đọc cảm biến Laser
if(detected == HIGH) {
digitalWrite(ACTION, HIGH); // bật còi báo
Serial.println("Detected!");
} else {
digitalWrite(ACTION, LOW); // tắt còi báo
Serial.println("No laser");
}
delay(200); // chờ 200 mili giây
}
Đoạn trích này minh họa logic cốt lõi của chương trình. Biến detected lưu trữ đầu ra của hàm digitalRead(), hàm này kiểm tra xem chùm tia laser có hiện diện hay không. Tùy thuộc vào trạng thái, còi báo sẽ được bật hoặc tắt.
Trình diễn / Điều gì sẽ xảy ra
Khi thiết lập được đấu dây đúng cách và mã được tải lên, hệ thống sẽ hoạt động như mong đợi. Màn hình nối tiếp sẽ hiển thị "Detected!" khi chùm tia laser chiếu vào bộ thu và còi báo sẽ kêu. Nếu chùm tia bị gián đoạn hoặc không được phát hiện, nó sẽ hiển thị "No laser" và còi báo sẽ tắt.
Điều quan trọng là phải đảm bảo chùm tia laser được căn chỉnh đúng với bộ thu để hoạt động đáng tin cậy. Hãy lưu ý đến các phản xạ tiềm ẩn có thể gây ra kết quả dương tính giả, như đã thảo luận trong video (trong video tại 08:00).
Mốc thời gian Video
- 00:00 - Giới thiệu
- 02:00 - Giải thích về Phần cứng
- 04:30 - Hướng dẫn Đấu dây
- 06:15 - Giải thích Mã
- 08:00 - Trình diễn
++
/*
* 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);
}
Nghĩ bạn có thể cần
-
Amazon
Tài nguyên & tài liệu tham khảo
Chưa có tài nguyên nào.
Tập tin📁
Không có tệp nào khả dụng.