Mạch volume xoay rotary encoder 360 độ HW-040
Mạch volume xoay rotary encoder 360 độ HW-040
- Hàng trong kho: 89
- Nhà sản xuất: Nhập khẩu
- Khối lượng: 0.10kg
- Mã kho: 685
- Vị trí: 1G7
Số lượng đã bán: 186
Lượt xem: 451
16.200đ
Giá chưa bao gồm VAT: 15.000đ
30 sản phẩm trở lên giá: 12.960đ
1. Giới thiệu tổng quan
Mạch Volume xoay Rotary Encoder 360 độ HW-040 (hoặc KY-040) là module biến trở kỹ thuật số cho phép quay không giới hạn số vòng. Thiết bị cung cấp 2 ngõ ra xung vuông 90 độ giúp dễ dàng nhận biết chiều quay, tốc độ và vị trí góc xoay, đồng thời tích hợp sẵn 1 nút nhấn tiện ích.
2. Thông số kỹ thuật
- Điện áp sử dụng: 3 ~ 5VDC
- Độ phân giải: 20 xung / vòng
- Ngõ ra: 2 phase xung vuông (CLK, DT) và 1 nút nhấn (SW)
- Góc xoay: 360 độ không giới hạn
3. Ứng dụng
- Điều chỉnh âm lượng (volume), độ sáng, tốc độ động cơ trong các thiết bị điện tử.
- Làm núm xoay menu, điều hướng giao diện (UI) cho các dự án DIY với Arduino, ESP32, STM32.
- Đo tốc độ quay hoặc vị trí góc tương đối của cơ cấu cơ khí.
4. Hướng dẫn kiểm tra (Test)
Các bước kiểm tra nhanh:
- Chuẩn bị: Mạch HW-040, Arduino Uno/Nano, dây cắm breadboard và cáp USB.
- Thao tác: Kết nối nguồn và các chân tín hiệu của module với vi điều khiển theo sơ đồ, nạp code mẫu bên dưới và mở Serial Monitor với baudrate 9600.
- Kết quả: Xoay núm vặn theo chiều kim đồng hồ thấy giá trị 'Position' tăng dần, ngược chiều kim đồng hồ thấy giảm dần; nhấn núm vặn hiển thị thông báo 'Button pressed!'.
* Lưu ý an toàn: Cấp đúng điện áp định mức 3-5VDC, tránh cấp ngược cực nguồn có thể làm hỏng module.
Sơ đồ kết nối & Code test mẫu (Arduino/ESP)
Kết nối chân:
- + (VCC) nối với 5V hoặc 3.3V Arduino
- GND nối với GND Arduino
- CLK nối với Pin 2 Arduino
- DT nối với Pin 3 Arduino
- SW nối với Pin 4 Arduino
C/C++ (Arduino/ESP)
#define CLK 2 // Pin cho tín hiệu CLK của encoder
#define DT 3 // Pin cho tín hiệu DT của encoder
#define SW 4 // Pin cho nút nhấn
int counter = 0;
int currentStateCLK;
int previousStateCLK;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;
void setup() {
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
pinMode(SW, INPUT_PULLUP);
Serial.begin(9600);
previousStateCLK = digitalRead(CLK);
}
void loop() {
unsigned long currentTime = millis();
currentStateCLK = digitalRead(CLK);
if ((currentTime - lastDebounceTime) > debounceDelay) {
if (currentStateCLK != previousStateCLK) {
if (digitalRead(DT) != currentStateCLK) {
counter++; // Quay theo chiều kim đồng hồ
} else {
counter--; // Quay ngược chiều kim đồng hồ
}
Serial.print('Position: ');
Serial.println(counter);
lastDebounceTime = currentTime;
}
}
previousStateCLK = currentStateCLK;
if (digitalRead(SW) == LOW) {
Serial.println('Button pressed!');
delay(300); // Chống dội phím đơn giản
}
}mach volume xoay rotary encoder 360 do hw-040

















