Trong hướng dẫn này, chúng ta sẽ giao tiếp một bộ mã hóa quay với vi điều khiển ATmega8. ATmega8 là dòng vi điều khiển của Atmel được thiết kế cho các ứng dụng nhúng. Bộ mã hóa quay được sử dụng để biết vị trí chuyển động và chuyển động góc của động cơ hoặc trục. Đó là một thiết bị ba đầu cuối thường, với nguồn và chân nối đất được đếm đến năm. Mô-đun bộ mã hóa quay được hiển thị bên dưới.
Các chân của bộ mã hóa quay là:
- Đất.
- Tích cực kết nối với + 5V
- Tín hiệu đầu ra chân A
- Tín hiệu đầu ra chân B
- Chốt đồng hồ hoặc chân chung.
ENCODER cung cấp các xung đại diện cho sự thay đổi vị trí trục để hệ thống hiểu được. Hãy xem xét một NĂNG LƯỢNG XOAY được cấp nguồn và trục được di chuyển.
Như thể hiện trong bảng trên, hãy xem xét trục được di chuyển đồng hồ khôn ngoan. Với điều này sẽ có Falling Edge ở nhà ga A sau đó ở nhà ga B.
Coi trục được di chuyển Chống đồng hồ khôn ngoan. Với điều này, sẽ có Falling Edge ở nhà ga B sau đó ở nhà ga A.
Cạnh này sẽ xảy ra một lần cho 360/20 = 18 độ (Đây là cho Bộ mã hóa có 20 vị trí, điều này thay đổi từ loại này sang loại khác, số lượng càng cao thì độ chính xác càng cao).
Với cả hai điều kiện trên, chúng ta có thể nhận được hướng và độ quay. Do đó, chúng tôi nhận được các thông số cần thiết để có được vị trí của trục.
Các thành phần
Phần cứng: ATMEGA8, chân kết nối, BỘ LẬP TRÌNH AVR-ISP, điện trở 220Ω, đèn LED (tám miếng), điện trở 1KΩ, điện trở 220Ω (2 miếng), tụ điện 100nF (2 miếng), bảng mạch bánh mì.
Phần mềm: Atmel studio 6.1, progisp hoặc flash magic.
Sơ đồ mạch và giải thích hoạt động
Các tụ điện ở đây là để vô hiệu hóa hiệu ứng nảy tiếp xúc trong ENCODER. Nếu không có những tụ điện đó sẽ có một số vấn đề nghiêm trọng trong việc đọc vị trí.
Khi trục được di chuyển sẽ có chênh lệch thời gian giữa hai đầu ra chân ra. ATMEGA8 sẽ nhận ra sự khác biệt thời gian này đối với chiều kim đồng hồ của Vòng quay khôn ngoan của đồng hồ.
Nếu quay theo chiều kim đồng hồ, số đếm nhị phân sẽ tăng lên một và số đếm này được hiển thị trong cổng LED như trong hình.
Nếu vòng quay là Anti clock thì số nhị phân giảm đi một và số nhị phân được hiển thị ở byte LED.
Hãy nhớ ở đây chúng tôi không thiết lập bất kỳ bit cầu chì nào của atmega8, Vì vậy, bộ điều khiển sẽ hoạt động trên tinh thể bên trong mặc định 1Mhz.
Hoạt động của bộ mã hóa quay giao diện với vi điều khiển ATmega8 được giải thích trong đoạn mã dưới đây.