Giới thiệu Volume xoay rotary encoder EC11 360 độ
Mạch Volume xoay Rotary Encoder EC11 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 EC11

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:

TỤ ĐIỆN PHÂN CỰC 100UF/25V , TỤ HÓA TẦN SỐ CAO
Module relay 12V 10A 2 Kênh chân domino, Rơ le công suất 250V/10A
Động cơ DC Encoder JGA25-370 12V 620rpm, Động cơ giảm tốc
MODULE CẢM BIẾN RUNG SW18010P, CẢM BIẾN LÒ XO
Anten 5G 15dBi KIM TRONG 27cm, Anten Wifi công suất lớn
Động cơ DC Encoder JGA25-370 24V 1360rpm, Động cơ giảm tốc
Led matrix 8x8 2088AS 5mm, Led ma trận 60.2x60.2mm màu đỏ
CẢM BIẾN TCRT5000, DÒ LINE TRẮNG ĐEN 















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