Mạch Volume Xoay Rotary Encoder 360 Độ KY-040

Mã sản phẩm: (Đang cập nhật...)
Thương hiệu: cập nhật
Còn hàng
Liên hệ

Mạch Volume xoay Rotary Encoder 360 độ. Điện áp sử dụng: 3~5VDC. Độ phân giải 20 xung/vòng.

Freeship đơn hàng từ 500k

Kiểm tra khi nhận hàng

Hỗ trợ khách hàng 24/7

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.

THÔNG SỐ MẠCH VOLUME XOAY ROTARY ENCODER

  • Điện áp sử dụng: 3~5VDC
  • Độ phân giải 20 xung/vòng.

CÁC CHÂN TÍN HIỆU

  • + : 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Ơ ĐỒ KẾT NỐI
Arduino | Mạch Volume Xoay 360 độ Rotary Encoder

———————CODE THAM KHẢO———————

// Kết nối:
//          VolumeEncoder             Arduino Uno R3
//               GND                        GND
//                +                         5V
//               DT                         1
//               CLK                        0
// Nạp code mở Serial Monitor chọn No line ending, baud 9600
// Xoay volume để kiểm tra giá trị 

int pulses, A_SIG=0, B_SIG=1;

void setup(){
  attachInterrupt(0, A_RISE, RISING);
  attachInterrupt(1, B_RISE, RISING);
  Serial.begin(115200);
}//setup


void loop(){
    
}

void A_RISE(){
 detachInterrupt(0);
 A_SIG=1;
 
 if(B_SIG==0)
 pulses++;//moving forward
 if(B_SIG==1)
 pulses--;//moving reverse
 Serial.println(pulses);
 attachInterrupt(0, A_FALL, FALLING);
}

void A_FALL(){
  detachInterrupt(0);
 A_SIG=0;
 
 if(B_SIG==1)
 pulses++;//moving forward
 if(B_SIG==0)
 pulses--;//moving reverse
 Serial.println(pulses);
 attachInterrupt(0, A_RISE, RISING);  
}

void B_RISE(){
 detachInterrupt(1);
 B_SIG=1;
 
 if(A_SIG==1)
 pulses++;//moving forward
 if(A_SIG==0)
 pulses--;//moving reverse
 Serial.println(pulses);
 attachInterrupt(1, B_FALL, FALLING);
}

void B_FALL(){
 detachInterrupt(1);
 B_SIG=0;
 
 if(A_SIG==0)
 pulses++;//moving forward
 if(A_SIG==1)
 pulses--;//moving reverse
 Serial.println(pulses);
 attachInterrupt(1, B_RISE, RISING);
}

HÌNH ẢNH SẢN PHẨM:

Mạch Volume Xoay Rotary Encoder 360 Độ KY-040
Mạch Volume Xoay Rotary Encoder 360 Độ KY-040
Mạch Volume Xoay Rotary Encoder 360 Độ KY-040
Xem thêm Thu gọn

Xin mời nhập nội dung tại đây