Arduino RFID/NFC Động cơ Servo
Trong bài hướng dẫn này, chúng ta sẽ học cách sử dụng thẻ RFID/NFC để điều khiển động cơ servo bằng Arduino. Nó hoạt động như sau:
- Nếu một thẻ được ủy quyền chạm, Arduino quay động cơ servo đến 90°
- Nếu một thẻ được ủy quyền chạm lần nữa, Arduino quay động cơ servo về 0°
- Quá trình trên được lặp lại vô hạn
Điều này có thể được áp dụng để khóa hoặc mở khóa tủ, ngăn kéo, cửa, hoặc mở/đóng máy cho ăn thú cưng.
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 | × | RFID/NFC RC522 Kit (reader + tags) | ||
| 1 | × | RFID Key Fob | ||
| 1 | × | RFID Card | ||
| 1 | × | động cơ servo | ||
| 1 | × | 5V Power Adapter | ||
| 1 | × | DC Power Jack | ||
| 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ề mô-đun RFID/NFC RC522 và động cơ servo
Nếu bạn chưa biết về Mô-đun RFID/NFC RC522 và Servo Motor (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 dưới đây:
- Arduino - Động cơ servo hướng dẫn

Cách hoạt động
- Một số UID của thẻ RFID/NFC được thiết lập sẵn trong mã Arduino.
- Người dùng chạm thẻ RFID/NFC lên đầu đọc RFID/NFC.
- Đầu đọc đọc UID từ thẻ.
- Arduino nhận được UID từ đầu đọc.
- Arduino so sánh UID đã đọc với các UID được định sẵn.
- Nếu UID khớp với một trong các UID được định sẵn, Arduino điều khiển servo quay tới 90°.
- Nếu thẻ được chạm lần nữa, Arduino điều khiển servo quay về 0°.
- Quá trình này được lặp vô hạn.
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Trong sơ đồ mạch ở trên, một bộ nguồn 5V duy nhất cung cấp nguồn cho Arduino trực tiếp, cho động cơ servo trực tiếp, và cho mô-đun RC522 (gián tiếp thông qua chân 3.3V của Arduino).
Để đơn giản hóa quá trình, các chân của module RC522 được kết nối trực tiếp với các chân của Arduino. Tuy nhiên, điều này có thể khiến Arduino ngừng hoạt động đúng ở một số trường hợp khi các chân đầu ra của Arduino phát ra điện áp 5V, trong khi các chân của module RC522 hoạt động bình thường ở điện áp 3.3V. Do đó, nên điều chỉnh điện áp giữa các chân của Arduino và các chân của module RC522. Để biết thêm chi tiết, xin tham khảo tài liệu Arduino - RFID/NFC (nhận diện bằng tần số vô tuyến / giao tiếp trường gần). Sơ đồ dưới đây cho thấy cách điều chỉnh từ 5V xuống 3.3V bằng cách sử dụng các điện trở:

This image is created using Fritzing. Click to enlarge image
※ Lưu ý:
Thứ tự các chân có thể thay đổi tùy theo nhà sản xuất. LUÔN SỬ DỤNG NHÃN IN TRÊN MODULE. Hình ảnh ở trên cho thấy sơ đồ chân của các module từ nhà sản xuất DIYables.
Bảng nối dây của mô-đun RFID/NFC RC522
| RFID/NFC RC522 | Arduino |
|---|---|
| SS | → 10 |
| SCK | → 13 |
| MOSI | → 11 |
| MISO | → 12 |
| IRQ(not connected) | |
| GND | → GND |
| RST | → 9 |
| VCC | → 3.3V |
Bảng nối dây của động cơ servo
| Servo Motor | Arduino | 5V DC Adapter |
|---|---|---|
| VCC (red) | → positive | |
| GND (brown) | → negative | |
| SIG (yellow) | → A5 |
Bảng đấu dây cho Adapter 5V DC
| 5V DC Adapter | Servo Motor | Arduino |
|---|---|---|
| Positive | → VCC | |
| Positive | -> Vin | |
| Negative | → GND | |
| Negative | → GND |
Mã Arduino - Một thẻ RFID/NFC
Hướng dẫn từng bước
- Đi tới biểu tượng Thư viện ở thanh bên trái của Arduino IDE.
- Tìm kiếm “MFRC522”, sau đó tìm thư viện do GithubCommunity
- Nhấn nút Cài đặt để cài thư viện MFRC522.

Vì UID thường không được in trên thẻ RFID/NFC, bước đầu tiên chúng ta cần làm là tìm UID của thẻ. Điều này có thể được thực hiện bằng:
- Sao chép mã ở trên và mở bằng Arduino IDE
- Nhấn vào nút Tải lên trên Arduino IDE để tải mã lên Arduino
- Mở Serial Monitor
- Chạm một thẻ RFID/NFC lên mô-đun RFID-RC522
- Hiển thị UID trên Serial Monitor
Sau khi có UID:
- Cập nhật UID ở dòng 20 của mã ở trên. Ví dụ, đổi byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; thành byte authorizedUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
- Tải lại mã lên Arduino.
- Chạm thẻ RFID/NFC lên module RFID-RC522.
- Bạn sẽ thấy động cơ servo quay đến 90°.
- Xem đầu ra trên Serial Monitor.
- Chạm lại thẻ RFID/NFC giống nhau lên mô-đun RFID-RC522
- Bạn sẽ thấy động cơ servo quay về vị trí 0°
- Xem đầu ra trên Serial Monitor
- Chạm thêm một thẻ RFID/NFC khác lên mô-đun RFID-RC522
- Xem đầu ra trên Serial Monitor
Mã Arduino - Nhiều thẻ RFID/NFC
Chúng ta có thể cho phép nhiều thẻ RFID/NFC điều khiển động cơ servo. Đoạn mã dưới đây sử dụng hai thẻ làm ví dụ.
Thực hiện các bước tương tự như ở trên, sau đó lần lượt chạm từng thẻ lên module RFID-RC522. Kết quả trên Serial Monitor trông như dưới đây:
Bạn có thể mở rộng mã ở trên cho ba, bốn hoặc nhiều thẻ hơn.
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.