- Thành phần bắt buộc
- Mô tả chân của Động cơ bước
- Sơ đồ mạch điều khiển động cơ bước sử dụng mô-đun ULN2003
- Sơ đồ mạch để điều khiển Động cơ bước sử dụng Mô-đun L293D:
- Điều khiển động cơ bước với AVR ATmega16
Động cơ bước là động cơ không chổi than DC có thể quay từ 0 0 đến 360 0 theo từng bước. Động cơ bước sử dụng tín hiệu điện tử để quay động cơ theo từng bước và mỗi tín hiệu sẽ quay trục theo gia số cố định (một bước). Thiên thần quay được điều khiển bằng cách áp dụng một số chuỗi tín hiệu nhất định. Không giống như Động cơ Servo, động cơ bước có thể được điều khiển bằng cách sử dụng các chân GPIO của vi điều khiển thay vì các chân PWM và có thể xoay trong (+360 0) và (-360 0). Thứ tự của các tín hiệu quyết định chiều kim đồng hồ và ngược chiều kim đồng hồ của động cơ bước. Để điều khiển tốc độ của động cơ, chúng ta chỉ cần thay đổi tỷ lệ tín hiệu điều khiển được áp dụng. Động cơ bước quay theo từng bước. Có một số chế độ của các bước để vận hành Động cơ bước như bước đầy đủ, nửa bước và bước nhỏ. Để biết thêm về những điều cơ bản, lý thuyết và nguyên lý làm việc của động cơ bước, hãy theo dõi liên kết.
Trước đây chúng tôi đã giao tiếp Động cơ bước với nhiều Bộ vi điều khiển:
- Giao diện động cơ bước với ARM7-LPC2148
- Giao diện động cơ bước với Arduino Uno
- Giao diện động cơ bước với MSP430G2
- Giao diện động cơ bước với STM32F103C8
- Giao diện động cơ bước với vi điều khiển PIC
- Giao diện động cơ bước với vi điều khiển 8051
- Interfacing Stepper Motor với Raspberry Pi
Trong hướng dẫn này, chúng ta sẽ giao diện Động cơ bước 28BYJ-48 với Vi điều khiển AVR Atmega16 bằng Atmel Studio 7.0. Động cơ bước được đánh giá là hoạt động ở 5V. Chúng tôi sẽ giao tiếp động cơ bước với cả hai trình điều khiển động cơ tức là ULN2003 và L293. Cả hai sẽ được điều khiển bởi nguồn cung cấp 5V. Để đơn giản hóa giao diện, chúng tôi đang sử dụng mô-đun dựng sẵn của cả hai trình điều khiển động cơ. Bạn cũng có thể sử dụng IC độc lập ULN2003 và L293D. Số lượng dây và jumper có thể nhiều hơn, vì vậy chỉ cần cẩn thận trong khi kết nối tất cả các kết nối.
Thành phần bắt buộc
- Động cơ bước (28BYJ-48)
- Mô-đun ULN2003 / Trình điều khiển động cơ L293D
- IC vi điều khiển Atmega16
- Bộ dao động tinh thể 16Mhz
- Hai tụ điện 100nF
- Hai tụ điện 22pF
- Nút ấn
- Dây nhảy
- Breadboard
- USBASP v2.0
- Led (Bất kỳ màu nào)
Mô tả chân của Động cơ bước
Sơ đồ mạch điều khiển động cơ bước sử dụng mô-đun ULN2003
Kết nối tất cả các thành phần như trong sơ đồ bên dưới khi sử dụng ULN2003. Tương tự, chúng ta sẽ giao tiếp nó bằng L293D trong bước tiếp theo. Chúng tôi đang sử dụng PORTA của Atmega16 để giao diện động cơ bước cho cả trình điều khiển động cơ. Không cần kết nối chân 5V của động cơ bước. Chỉ cần các chân cuộn dây để di chuyển động cơ bước. Thứ tự chân rất quan trọng để điều khiển động cơ bước vì việc cung cấp năng lượng cho các cuộn dây phải để đạt được các bước. Bốn đầu vào của ULN2003 và bốn đầu ra của ULN2003 được sử dụng trong dự án này. Các đầu vào sẽ được kết nối với các chân PORTA và đầu ra sẽ được kết nối với các chân Tín hiệu Động cơ Bước. Ngoài ra, kết nối một nút nhấn trong chân Đặt lại để đặt lại Atmega16 bất cứ khi nào cần thiết. Kết nối Atmega16 với mạch dao động tinh thể thích hợp. Tất cả hệ thống sẽ được cấp nguồn bởi nguồn 5V.
Dưới đây là Hình ảnh thực tế của Mô-đun điều khiển động cơ ULN2003:
Dưới đây chúng tôi đã đưa ra các kết nối chân Atmega16 với ULN2003 và L293D để quay động cơ bước. Giao diện động cơ bước với mô-đun L293D được giải thích trong phần sau, hãy nhớ rằng chỉ cần một mô-đun ULN2003 hoặc L293D để điều khiển động cơ bước.
Các kết nối chân cho INPUT như sau:
Atmega16 |
ULN2003 |
L293D |
A0 |
IN1 (PIN1) |
IN1 (PIN2) |
A1 |
IN2 (PIN2) |
IN2 (PIN7) |
A2 |
IN3 (PIN3) |
IN3 (PIN10) |
A3 |
IN4 (PIN4) |
IN4 (PIN15) |
Các kết nối chân cho OUTPUT như sau:
Động cơ bước |
ULN2003 |
L293D |
trái cam |
OUT1 (PIN16) |
OUT1 (PIN3) |
Màu vàng |
OUT2 (PIN15) |
OUT2 (PIN6) |
Hồng |
OUT3 (PIN14) |
OUT3 (PIN11) |
Màu xanh da trời |
OUT4 (PIN13) |
OUT4 (PIN14) |
Sơ đồ mạch để điều khiển Động cơ bước sử dụng Mô-đun L293D:
Điều khiển động cơ bước với AVR ATmega16
Như đã nói không giống như Động cơ Servo, Động cơ bước cần trình điều khiển bên ngoài, chẳng hạn như trình điều khiển động cơ ULN2003 hoặc L293D. Vì vậy, chỉ cần kết nối Mạch như trên và tải lên chương trình main.c được đưa ra ở cuối.
Bản phác thảo thể hiện động cơ bước quay theo cả hai phía tức là theo chiều kim đồng hồ và ngược chiều kim đồng hồ. Nếu bạn muốn xoay bước theo một hướng, chỉ cần ghi chú các dòng mã của hướng khác trong bản phác thảo.
Mã AVR hoàn chỉnh để điều khiển Động cơ bước được đưa ra dưới đây. Mã rất đơn giản và có thể hiểu một cách dễ dàng. Hai mã được đưa ra dưới đây, một mã dành cho động cơ bước quay với ULN2003 và mã thứ hai với mô-đun L293D.
Kết nối USBASP v2.0 của bạn và làm theo hướng dẫn trong liên kết này để lập trình Vi điều khiển AVR Atmega16 bằng USBASP và Atmel Studio 7.0. Chỉ cần tạo bản phác thảo và tải lên bằng chuỗi công cụ bên ngoài.
Mã hoàn chỉnh với Video trình diễn được đưa ra bên dưới.