Giới thiệu Volume xoay rotary encoder 360 độ
Mạch Volume xoay Rotary Encoder 360 độ không giới hạn số vòng quay, encoder đưa ra 2 xung vuông 90 độ gọi là 2 phase A và B, xung từ encoder đưa ra có thể dùng để nhận biết chiều quay, tốc độ quay, vị trí, module cung cấp 2 ngõ ra cho 2 phase và 1 ngõ ra dạng nút nhấn.
Encoder module KY-040 trông giống 1 module biến trở nhưng có ngõ ra dạng xung số. Bằng việc xoay núm vặn, ngõ ra xung của 2 kênh sẽ thay đổi với 1 độ lệch pha xác định (90 độ) giúp phân biệt được chiều xoay.
Đếm số lượng xung ngõ ra sẽ cho biết vị trí góc xoay, vị trí này là không giới hạn. Đồng thời module cũng cung cấp 1 nút nhấn có thể được lập trình để trở thành 1 nút reset giá trị đếm.

Sơ đồ nguyên lý và chức năng chân
- Chân cấp nguồn 3~5VDC
- GND: chân cấp nguồn âm 0VDC
- CLK: phase A
- DT: phase B
- SW: button

Sơ đồ dạng sóng volume xoay rotary encoder

Thông số kỹ thuật
- Điện áp hoạt động : 5V
- Dòng điện hoạt động : 20mA
- Công suất hoạt động : 100mW
- Chuẩn truyền : dạng xung vuông
- Độ phân giải : 20xung/vòng
- Nhiệt độ hoạt động : -40°C – 150°C
- Số chân : 5
- Số nút : 1
- Loại : Module
- Quét tích cực : Do người thiết kế
- Kích thước : 87mm*70mm*20mm
Chương trình Test
Nguyên lý kết nối

Chương trình
Thư viện : Tại đây ButtonFever.h hoặc tải trực tiếp từ Arduino IDE
#include <BfButton.h>
int btnPin=3; //GPIO #3-Push button on encoder
int DT=4; //GPIO #4-DT on encoder (Output B)
int CLK=5; //GPIO #5-CLK on encoder (Output A)
BfButton btn(BfButton::STANDALONE_DIGITAL, btnPin, true, LOW);
int counter = 0;
int angle = 0;
int aState;
int aLastState;
//Button press hanlding function
void pressHandler (BfButton *btn, BfButton::press_pattern_t pattern) {
switch (pattern) {
case BfButton::SINGLE_PRESS:
Serial.println("Single push");
break;
case BfButton::DOUBLE_PRESS:
Serial.println("Double push");
break;
case BfButton::LONG_PRESS:
Serial.println("Long push");
break;
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println(angle);
pinMode(CLK,INPUT_PULLUP);
pinMode(DT,INPUT_PULLUP);
aLastState = digitalRead(CLK);
//Button settings
btn.onPress(pressHandler)
.onDoublePress(pressHandler) // default timeout
.onPressFor(pressHandler, 1000); // custom timeout for 1 second
}
void loop() {
// put your main code here, to run repeatedly:
//Wait for button press to execute commands
btn.read();
aState = digitalRead(CLK);
//Encoder rotation tracking
if (aState != aLastState){
if (digitalRead(DT) != aState) {
counter ++;
angle ++;
}
else {
counter--;
angle --;
}
if (counter >=100 ) {
counter =100;
}
if (counter <=-100 ) {
counter =-100;
}
Serial.println(counter);
}
aLastState = aState;
}
Liên hệ làm mạch
- Phone: 0967.551.477
- Zalo: 0967.551.477
- Email: dientunhattung@gmail.com
- Chi tiết : Nhận làm mạch và hướng dẫn đồ án sinh viên
Tham khảo chương trình mẫu và thông tin linh kiện chi tiết tại:

MODULE THỜI GIAN THỰC DS1302 , ĐỒNG HỒ CHUẨN SPI
IC SỐ SN74HC27 CỔNG NOR, IC CỔNG LOGIC 3-INPUT DIP
Module cảm biến Lửa relay 5V, Relay công suất 250V - 10A
Module điều khiển động cơ DC L298N, Driver điều khiển động cơ DC
ĐỘNG CƠ DC JGA25-310 12V 35RPM, ĐỘNG CƠ GIẢM TỐC
DS18B20 Dây, CẢM BIẾN NHIỆT ĐỘ - 2M
Module điều khiển động cơ bước A4988, Driver động cơ Step
Pic16F887 DIP, VI ĐIỀU KHIỂN HỌ PIC CỦA MICROCHIP
GÁ ĐỠ ĐỘNG CƠ DC GA25, KHUNG GÁ ĐỘNG CƠ GIẢM TỐC
Bộ gá đỡ động cơ giảm tốc bằng nhôm, Cố định động cơ giảm tốc V1
Động cơ DC Encoder JGB37-520 12V 170rpm, DC giảm tốc
Động cơ ENCODER JGY-370 12V 40rpm, Động cơ giảm tốc
IC điều khiển động cơ L298N, IC mạch cầu H 2 kênh
ĐỘNG CƠ DC JGA25-310 12V 220RPM, ĐỘNG CƠ GIẢM TỐC
Động cơ DC Encoder JGA25-370 24V 130rpm, Động cơ giảm tốc
Pic12F629 DIP, VI ĐIỀU KHIỂN HỌ PIC CỦA MICROCHIP
Động cơ DC JGB37-520 12V 320RPM, Động cơ DC giảm tốc
Động cơ DC Encoder JGB37-520 12V 330rpm, DC giảm tốc
At89s52 DIP, VI ĐIỀU KHIỂN HỌ 8051 CỦA ATMEL
QUANG TRỞ LỚN CDS 12MM 12528, CẢM BIẾN ÁNH SÁNG
Arduino Nano CH340 cổng Mini USB, Vi điều khiển họ Arduino
Động cơ DC Encoder JGA25-370 12V 280rpm, Động cơ giảm tốc
CẢM BIẾN LM35, NHIỆT ĐỘ MÔI TRƯỜNG (LOẠI TỐT) 















Đánh giá
Chưa có đánh giá nào.