Arduino Cảm biến âm thanh Động cơ servo
Trong hướng dẫn này, chúng ta sẽ khám phá cách sử dụng cảm biến âm thanh để điều khiển động cơ servo. Cụ thể, chúng ta sẽ đi sâu vào hai ứng dụng thú vị:
- Công tắc âm thanh: Khi phát hiện âm thanh (ví dụ: tiếng gõ), Arduino quay động cơ servo đến 90 độ nếu nó ở 0 độ, và về 0 độ nếu nó ở 90 độ.
- Rơ-le kích hoạt bằng âm thanh: Khi phát hiện âm thanh, Arduino quay động cơ servo đến 90 độ trong một khoảng thời gian nhất định, sau đó quay trở lại 0 độ.
Phần cứng cần chuẩn bị
| 1 | × | Arduino Uno R3 | ||
| 1 | × | USB 2.0 cable type A/B (for USB-A PC) | ||
| 1 | × | USB 2.0 cable type C/B (for USB-C PC) | ||
| 1 | × | Sound Sensor | ||
| 1 | × | động cơ servo | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về động cơ servo và cảm biến âm thanh
Nếu bạn chưa biết về động cơ servo và cảm biến âm thanh (bố trí chân, cách hoạt động, cách lập trình ...), hãy tìm hiểu chúng trong các bài hướng dẫn sau:
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Mã Arduino - Công tắc âm thanh chuyển đổi góc của động cơ servo
Mã dưới đây sẽ điều chỉnh góc của động cơ servo giữa 0 và 90 độ mỗi khi phát hiện âm thanh.
Hướng dẫn từng bước
- Kết nối Arduino với máy tính qua cáp USB
- Mở Arduino IDE, chọn bo mạch và cổng đúng
- Sao chép mã ở trên và mở bằng Arduino IDE
- Nhấp vào nút Tải lên trên Arduino IDE để tải mã lên Arduino
- Vỗ tay trước cảm biến âm thanh
- Quan sát sự thay đổi của động cơ servo
Mã Arduino - Động cơ servo kích hoạt bằng âm thanh trong một khoảng thời gian
Đoạn mã dưới đây quay động cơ servo đến 90 độ trong một khoảng thời gian khi phát hiện âm thanh. Sau khoảng thời gian đó, động cơ servo quay về 0 độ.
Xin lưu ý rằng đoạn mã được đề cập ở trên sử dụng hàm delay() để đơn giản hóa. Tuy nhiên, nếu bạn bổ sung thêm mã, nó có thể bị treo trong thời gian trì hoãn. Để giải quyết vấn đề này, đoạn mã dưới đây triển khai một phương pháp không chặn bằng cách sử dụng hàm millis() thay cho delay để ngăn chặn việc bị treo.
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.