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 CẢM BIẾN DHT22 TỐT, ĐO NHIỆT ĐỘ VÀ ĐỘ ẨM
CẢM BIẾN MÀU SẮC TCS3200, NHẬN DIỆN MÀU RGB
Cảm Biến Bụi PM2.5, CẢM BIẾN GP2Y1010AU0F
HC-SRF04, CẢM BIẾN ĐO KHOẢNG CÁCH
IC SỐ SN74HC11 CỔNG AND, IC CỔNG LOGIC 14 CHÂN DIP
IC SN74HC595 THANH GHI DỊCH, MỞ RỘNG CHÂN 8BIT DIP
IC SỐ CD4017 IC ĐẾM, IC CHỨC NĂNG
IC SỐ SN74HC08 CỔNG AND, IC CỔNG LOGIC 14 CHÂN DIP
Anten 2.4Ghz 3dBi 10.5cm kim trong, anten wifi, zigbee, rf
CẢM BIẾN LM35, NHIỆT ĐỘ MÔI TRƯỜNG (LOẠI TỐT)
CẢM BIẾN TCRT5000, DÒ LINE TRẮNG ĐEN
TỤ ĐIỆN PHÂN CỰC 68uF/450V , TỤ HÓA TẦN SỐ CAO
TỤ ĐIỆN PHÂN CỰC 820UF/400V , TỤ HÓA TẦN SỐ CAO
TỤ ĐIỆN PHÂN CỰC 68UF/400V , TỤ HÓA TẦN SỐ CAO
Vitme và đai ốc T8 250mm, Trục in 3D vitme T8 25cm
Vitme và đai ốc T8 300mm, Trục in 3D vitme T8 30cm
Module điều khiển động cơ DC BTS7960 43A, Driver động cơ DC
GÁ ĐỠ ĐỘNG CƠ DC GA25, KHUNG GÁ ĐỘNG CƠ GIẢM TỐC
Dây chuyển mối hàn sang SMA 11mm lỗ trong 20cm
Động cơ ENCODER JGY-370 12V 150rpm, Động cơ giảm tốc
ĐỘNG CƠ DC JGB37-520 12V 45RPM, ĐỘNG CƠ GIẢM TỐC
Động cơ DC Encoder JGA25-370 24V 130rpm, Động cơ giảm tốc
MODULE ĐỘ ẨM ĐẤT, CẢM BIẾN ĐỘ ẨM
Tản nhiệt nước sò nóng lạnh 40x40mm ngược hướng, Tản nhiệt nhôm
CẢM BIẾN PIR HC-SR501, CHUYỂN ĐỘNG THÂN NHIỆT 











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