Arduino RS-485
Trong hướng dẫn này, chúng ta sẽ khám phá việc triển khai giao tiếp RS-485 với Arduino. Cụ thể, chúng ta sẽ trình bày chi tiết các khía cạnh sau:
- Thiết lập kết nối giữa Arduino và mô-đun TTL sang RS485.
- Lập trình Arduino để nhận dữ liệu từ mô-đun TTL sang RS485.
- Lập trình Arduino để truyền dữ liệu tới mô-đun TTL sang RS485.
- Cách gửi dữ liệu từ PC của bạn tới Arduino thông qua RS485, và ngược lại.
Hướng dẫn cũng cung cấp chỉ dẫn cho cả Hardware Serial và SoftwareSerial.
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 | × | TTL to RS485 Module | ||
| 1 | × | dây jumper | ||
| 1 | × | (Tùy chọn) USB to RS485 Converter | ||
| 1 | × | (Tùy chọn) USB to RS485 Cable | ||
| 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ề Mô-đun TTL sang RS-485
Khi sử dụng giao tiếp nối tiếp trên Arduino thông qua các hàm như Serial.print(), Serial.read(), và Serial.write(), Arduino truyền dữ liệu qua pin TX và nhận dữ liệu qua pin RX. Các pin này hoạt động ở mức TTL, có nghĩa là các tín hiệu chúng xử lý có phạm vi giới hạn. Do đó, đối với giao tiếp nối tiếp ở khoảng cách xa hơn, cần chuyển đổi tín hiệu TTL sang các chuẩn tín hiệu RS232, RS485 hoặc RS422.
Bài hướng dẫn này sẽ đi sâu vào việc sử dụng RS-485 (còn được biết đến như RS-485) với Arduino thông qua một mô-đun TTL sang RS-485. Mô-đun này hỗ trợ chuyển đổi tín hiệu TTL sang tín hiệu RS-485 và ngược lại.
Sơ đồ chân
Mô-đun RS-485 sang TTL có hai giao diện:
- Giao diện TTL (kết nối với Arduino) bao gồm 4 chân
- Chân VCC: chân nguồn, cần được kết nối với VCC (5V, hoặc 3.3V)
- Chân GND: chân nguồn, cần được kết nối với GND (0V)
- Chân RXD: chân dữ liệu, cần được kết nối với một chân TX của Arduino
- Chân TXD: chân dữ liệu, cần được kết nối với một chân RX của Arduino
- Giao diện RS485 bao gồm các chân sau:
- Chân D+ (A hoặc TR+): Chân này hỗ trợ giao tiếp dữ liệu.
- Chân D- (B hoặc TR-): Chân này dùng cho truyền dữ liệu.
- Chân GND: Mặc dù tùy chọn, nhưng được khuyến nghị mạnh mẽ nên kết nối chân này để giảm nhiễu, đảm bảo hiệu suất tối ưu.

Sơ đồ đấu dây
- Sơ đồ nối dây nếu sử dụng serial phần cứng

This image is created using Fritzing. Click to enlarge image
- Sơ đồ đấu dây nếu sử dụng Software Serial

This image is created using Fritzing. Click to enlarge image
Cách lập trình Arduino để sử dụng mô-đun RS-485
- Khởi tạo giao diện Serial:
- Nếu bạn sử dụng SoftwareSerial, bạn cần thêm thư viện và khai báo một đối tượng SoftwareSerial:
- Để đọc dữ liệu từ RS485, bạn có thể sử dụng các hàm sau:
- Để ghi dữ liệu vào RS485, bạn có thể sử dụng các hàm sau:
- Và còn nhiều hàm khác để sử dụng với RS485 trong tài liệu tham khảo Serial
Mã Arduino cho Serial phần cứng
Mã Arduino cho Giao tiếp nối tiếp bằng phần mềm
Thử nghiệm
Bạn có thể thử bằng cách gửi dữ liệu từ PC của bạn đến Arduino qua RS-485 và ngược lại. Để thực hiện, hãy làm theo các bước dưới đây:
- Kết nối Arduino với PC của bạn qua cáp RS485-to-USB như dưới đây:

- Mở chương trình Terminal Serial và cấu hình các tham số Serial (cổng COM, tốc độ baud...)
- Nhập dữ liệu vào Serial Terminal để gửi cho Arduino.
- Nếu thành công, bạn sẽ thấy dữ liệu phản hồi trên Serial Terminal.
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.