Arduino Cảm biến nhiệt độ Động cơ servo
Hướng dẫn này trình bày cách sử dụng Arduino và cảm biến nhiệt độ DS18B20 để điều khiển một động cơ servo. Cụ thể, Arduino được lập trình để liên tục đo nhiệt độ bằng cảm biến DS18B20. Động cơ servo sau đó được điều chỉnh theo các quy tắc sau:
- Nếu nhiệt độ vượt quá ngưỡng đã xác định trước, Arduino sẽ quay động cơ servo đến 90 độ.
- Nếu nhiệt độ giảm xuống dưới ngưỡng, Arduino sẽ quay động cơ servo về 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 | × | DS18B20 Temperature Sensor (WITH Adapter) | ||
| 1 | × | DS18B20 Temperature Sensor (WITHOUT Adapter) | ||
| 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 nhiệt độ
Nếu bạn chưa biết về động cơ servo và cảm biến nhiệt (bố trí chân, cách hoạt động, cách lập trình ...), hãy tìm hiểu về chúng trong các bài hướng dẫn sau đây:
Sơ đồ đấu dây
- Sơ đồ đấu dây với breadboard

This image is created using Fritzing. Click to enlarge image
- Sơ đồ nối dây có bộ đổi nguồn (khuyến nghị)

This image is created using Fritzing. Click to enlarge image
Chúng tôi đề xuất mua cảm biến DS18B20 đi kèm với một bộ điều hợp dây để kết nối dễ dàng. Bộ điều hợp có một điện trở tích hợp sẵn, loại bỏ nhu cầu có một điện trở riêng trong dây kết nối.
Mã Arduino - Cảm biến Nhiệt độ Kích hoạt Động cơ Servo
Hướng dẫn từng bước
- Thực hiện đấu dây giữa Arduino, cảm biến nhiệt độ và động cơ servo như sơ đồ ở trên.
- Kết nối Arduino với PC bằng cáp USB.
- Mở Arduino IDE, chọn board và cổng đúng.
- Đi tới biểu tượng Thư viện ở thanh bên trái của IDE Arduino.
- Tìm kiếm “DallasTemperature”, sau đó tìm thư viện DallasTemperature của Miles Burton.
- Nhấn nút Cài đặt để cài đặt thư viện DallasTemperature.

- Bạn sẽ được yêu cầu cài đặt phụ thuộc của thư viện
- Nhấp vào nút Cài đặt Tất cả để cài đặt thư viện OneWire.

- Sao chép mã ở trên và mở bằng Arduino IDE
- Nhấn Tải lên nút trên Arduino IDE để nạp mã vào Arduino
- Thay đổi nhiệt độ quanh cảm biến nhiệt độ
- Xem sự thay đổi của động cơ servo
- Xem kết quả trên Serial Monitor, như dưới đây:
Mã Arduino - Cảm biến nhiệt độ kích hoạt động cơ servo với độ dung sai
Trong quá trình vận hành, nhiệt độ có thể dao động trên hoặc dưới ngưỡng, khiến động cơ servo điều chỉnh nhanh và liên tục. Điều này có thể gây rung động thay vì quay trơn tru đến góc mong muốn. Để giảm thiểu vấn đề này, một độ dung sai có thể được tích hợp vào ngưỡng. Đoạn mã sau minh họa cách thực hiện giải pháp này:
Đoạn mã được trình bày ở trên xác định ngưỡng 20°C và độ dung sai 0,5°C. Các điều kiện sau đây áp dụng:
- Nếu nhiệt độ dưới 19,5°C, góc của động cơ servo được điều chỉnh về 0°.
- Nếu nhiệt độ cao hơn 20,5°C, góc của động cơ servo được điều chỉnh về 90°.
- Nếu nhiệt độ nằm giữa 19,5°C và 20,5°C, không có sự điều chỉnh nào được thực hiện đối với góc của động cơ servo.