Arduino cầu dao DIP
Các công tắc DIP (Dual In-line Package) được sử dụng phổ biến trong điện tử để cấu hình, như thiết lập địa chỉ thiết bị, bật hoặc tắt các tính năng, v.v. Trong bài hướng dẫn này, chúng ta sẽ học cách sử dụng công tắc DIP với Arduino. Cụ thể, chúng ta sẽ học:
- DIP switch là gì và nó hoạt động như thế nào
- Cách kết nối DIP switch với Arduino
- Cách lập trình Arduino để đọc trạng thái bật/tắt của DIP switch
- Cách lập trình Arduino để đọc số nguyên được DIP switch thiết lập

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 | × | DIP Switch | ||
| 1 | × | breadboard | ||
| 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ề công tắc DIP
Công tắc DIP chủ yếu được sử dụng để cấu hình thiết bị, cho phép người dùng thiết lập các tham số như địa chỉ thiết bị, cài đặt truyền thông, mã bảo mật, chế độ hoạt động và cài đặt hệ thống trên nhiều ngành công nghiệp và ứng dụng.
Một công tắc DIP được tạo thành từ một số công tắc trượt nhỏ được đóng gói lại với nhau. Mỗi công tắc trượt này được gọi là một "vị trí". Các công tắc DIP có nhiều loại khác nhau tùy thuộc vào số vị trí mà chúng có. Ví dụ, có các công tắc DIP 2 vị trí, 4 vị trí, 5 vị trí, 6 vị trí, 8 vị trí và 10 vị trí.
Một công tắc DIP có thể biểu diễn một số có thể cấu hình. Mỗi vị trí trên công tắc tương ứng với một bit của số đó. Bằng cách chuyển đổi các vị trí giữa BẬT và TẮT, chúng ta có thể thiết lập số mong muốn.
Sơ đồ các chân

Một cầu dao DIP gồm hai hàng chân, với số lượng chân ở mỗi hàng tương ứng với số vị trí công tắc có sẵn. Ví dụ, một cầu dao DIP 4 vị trí có tổng cộng 8 chân, được phân bố đều và mỗi bên có 4 chân. Trong bộ lắp ráp cầu dao DIP, mỗi cặp chân đối diện nhau tạo thành một công tắc trượt. Lưu ý rằng việc phân biệt giữa các chân ở hai bên là không cần thiết vì chúng có thể thay thế cho nhau.
Cách hoạt động
Trong các công tắc DIP, khi một công tắc ở vị trí BẬT, có nghĩa là công tắc đã đóng. Điều này có nghĩa là mạch điện được thiết lập, cho phép dòng điện chạy qua công tắc.
Ngược lại, khi công tắc ở vị trí TẮT, điều đó có nghĩa là công tắc đang ở trạng thái mở. Ở trạng thái này, kết nối điện bị đứt và dòng điện không thể chạy qua công tắc.
Vậy, để làm rõ:
- Vị trí BẬT: Mạch kín, cho phép dòng điện chạy qua.
- Vị trí TẮT: Mạch hở, ngăn dòng điện chạy qua.
Khi chúng ta kết nối một bên của công tắc với mặt đất, bên kia nối với một chân của Arduino, sau đó cấu hình chân Arduino ở chế độ đầu vào kỹ thuật số có kéo lên (pull-up), bảng dưới đây cho thấy mối quan hệ giữa vị trí của công tắc và các giá trị đọc được từ Arduino:
| DIP switch position | Binary representation | Circuit state | Arduino pin state |
|---|---|---|---|
| ON | 1 | CLOSED | LOW |
| OFF | 0 | OPEN | HIGH |
Trong các phần tiếp theo, chúng ta sẽ dùng công tắc DIP 4 vị trí làm ví dụ. Bạn có thể dễ dàng điều chỉnh cho các công tắc DIP có 2 vị trí, 3 vị trí, 5 vị trí, 6 vị trí, 8 vị trí và 10 vị trí...
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Mã Arduino - Cầu dao DIP
Chúng ta sẽ học qua hai đoạn mã:
- Đọc trạng thái BẬT/TẮT của từng vị trí trên công tắc DIP.
- Mã hóa các vị trí thành một số.
Mã Arduino - Đọc trạng thái BẬT/TẮT của công tắc DIP
Hướng dẫn từng bước
- Nối dây theo sơ đồ nối dây ở 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.
- Nhấn nút Tải lên trên Arduino IDE để tải mã lên Arduino.
- Chuyển từng vị trí trên công tắc DIP sang trạng thái ON theo thứ tự.
- Xem kết quả trên Trình theo dõi nối tiếp.
Mã Arduino - Mã hóa các trạng thái của công tắc DIP thành một số
Hướng dẫn từng bước
- Tải mã ở trên lên bo mạch Arduino.
- Bật từng vị trí trên DIP switch lên trạng thái ON lần lượt.
- Xem kết quả trên Serial Monitor, nó trông như hình dưới đây.
Xin lưu ý rằng giá trị phụ thuộc vào vị trí của từng công tắc trượt. Bảng dưới đây cho thấy sự ánh xạ giữa trạng thái BẬT/TẮT và giá trị số nguyên cho công tắc DIP 4 vị trí:
| Position-1 | Position-2 | Position-3 | Position-4 | Binary Value | Decimal Value |
|---|---|---|---|---|---|
| OFF | OFF | OFF | OFF | 0000 | 0 |
| OFF | OFF | OFF | ON | 0001 | 1 |
| OFF | OFF | ON | OFF | 0010 | 2 |
| OFF | OFF | ON | ON | 0011 | 3 |
| OFF | ON | OFF | OFF | 0100 | 4 |
| OFF | ON | OFF | ON | 0101 | 5 |
| OFF | ON | ON | OFF | 0110 | 6 |
| OFF | ON | ON | ON | 0111 | 7 |
| ON | OFF | OFF | OFF | 1000 | 8 |
| ON | OFF | OFF | ON | 1001 | 9 |
| ON | OFF | ON | OFF | 1010 | 10 |
| ON | OFF | ON | ON | 1011 | 11 |
| ON | ON | OFF | OFF | 1100 | 12 |
| ON | ON | OFF | ON | 1101 | 13 |
| ON | ON | ON | OFF | 1110 | 14 |
| ON | ON | ON | ON | 1111 | 15 |
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.