Mục lục:

Lái động cơ bước với bộ vi xử lý AVR: 8 bước
Lái động cơ bước với bộ vi xử lý AVR: 8 bước

Video: Lái động cơ bước với bộ vi xử lý AVR: 8 bước

Video: Lái động cơ bước với bộ vi xử lý AVR: 8 bước
Video: Lập trình vi điều khiển-Phần 269-Cách điều khiển động cơ bước bằng driver tb6600 2024, Tháng bảy
Anonim
Lái động cơ bước với bộ vi xử lý AVR
Lái động cơ bước với bộ vi xử lý AVR

Có một số động cơ bước được nhặt rác từ máy in / ổ đĩa / vv nằm xung quanh?

Một số thăm dò với một ohmeter, theo sau là một số mã trình điều khiển đơn giản trên bộ vi xử lý của bạn và bạn sẽ có phong cách riêng.

Bước 1: Tìm hiểu các bước

Tìm hiểu các bước
Tìm hiểu các bước
Tìm hiểu các bước
Tìm hiểu các bước

Về cơ bản, bạn sẽ cần phải tìm ra vị trí của tất cả các dây nhỏ.

Bước đầu tiên là tìm hiểu xem đó là động cơ đơn cực hay lưỡng cực. Hãy xem Jones trên Steppers để biết thêm thông tin cơ bản, sau đó tại Trang web của Ian Harries để biết một phương pháp đơn giản để tìm ra một động cơ chưa biết. Đọc lên một chút, sau đó cùng tôi tham khảo hướng dẫn về động cơ mà tôi mua được với giá rẻ này. (Chúng đang được bán với giá 0,99 đô la ngay bây giờ. Chúng nhỏ, tương đối nhẹ, nhưng không có nhiều mô-men xoắn. Chưa biết nó sẽ tốt cho việc gì.)

Bước 2: Tìm điểm chung

Tìm mặt bằng chung
Tìm mặt bằng chung
Tìm mặt bằng chung
Tìm mặt bằng chung

Vậy là bạn đã có năm (hoặc bốn, hoặc sáu) dây. Động cơ của bạn sẽ có hai nửa, và bạn có thể thậm chí có thể biết chỉ bằng cách nhìn mỗi dây thuộc về phía nào.

Nếu bạn chỉ nhìn vào bốn dây, bạn đã gặp may - đó là một động cơ lưỡng cực. Tất cả những gì bạn phải làm là tìm ra hai cặp dây đi cùng nhau. Nếu bạn có một động cơ đơn cực, hoặc nhiều hơn 4 dây, bạn sẽ phải ngắt ohmeter của mình. Những gì bạn đang tìm kiếm là dây (nối đất) chung cho mỗi nửa. Bạn có thể biết cái nào được nối đất trong động cơ lưỡng cực vì nó có một nửa điện trở đối với một trong hai cực so với các cực đối với chúng. Trong ảnh là các ghi chú của tôi từ việc nối dây với dây và lưu ý đến điện trở (hoặc nếu chúng được kết nối với nhau). Bạn có thể thấy rằng Trắng là mặt đất cho bộ ba dưới cùng b / c nó có một nửa khả năng chống lại Đỏ hoặc Xanh mà chúng phải đối với nhau. (Động cơ này kỳ lạ và không có vòi trung tâm trên cuộn nam châm trên cùng. Nó giống như nó là nửa lưỡng cực, nửa đơn cực. Có lẽ bạn có thể sử dụng điều này để cảm nhận chuyển động quay trong cuộn dây Đỏ-Trắng-Xanh khi Đen-Vàng cuộn dây đang được điều khiển.)

Bước 3: Tìm ra thứ tự các bước

Tìm ra thứ tự các bước
Tìm ra thứ tự các bước

Tôi đã định lái động cơ này như một động cơ lưỡng cực, vì vậy tôi đang bỏ qua dây nối đất Trắng. Tôi chỉ có bốn dây để lo lắng.

Bạn có thể muốn chạy động cơ đơn cực của mình dưới dạng lưỡng cực, bởi vì nó sử dụng toàn bộ cuộn dây trong cả hai pha thay vì xen kẽ giữa hai nửa của mỗi cuộn dây. Nhiều cuộn dây hơn = nhiều mô-men xoắn hơn. Chạy dòng điện qua một cặp (lưu ý đến cực bạn đã chọn) và sau đó chạy dòng điện qua cặp kia cùng một lúc. Khi bạn nối cặp thứ hai, hãy để ý xem động cơ quay theo chiều nào. Viết cái này vào. Bây giờ đảo ngược cực trên cặp đầu tiên bạn đã chọn. Sau đó nối tiếp cặp thứ hai với cực của chúng cũng bị đảo ngược. Lưu ý hướng. Từ đó, bạn sẽ có thể tìm ra trình tự quay động cơ theo một trong hai hướng. Trong ví dụ của tôi, cả hai đều quay ngược chiều kim đồng hồ, vì vậy bước qua trình tự theo cùng cách tôi đã chọn sẽ chuyển động cơ CCW.

Bước 4: Lấy động cơ để lái thử

Lấy động cơ để lái thử
Lấy động cơ để lái thử

Nếu bạn chưa được trang bị công cụ để lập trình vi xử lý, bạn có thể làm tệ hơn Bộ phát triển Ghetto hoặc bất kỳ bộ lập trình PIC nào khác nhau. Nối dây trực tiếp với micrô của bạn và đốt nó lên bằng đoạn mã sau:

/ * Chơi với việc điều khiển các động cơ bước nhỏ. * /

/ * Bao gồm chức năng trì hoãn * / #define F_CPU 1000000UL #include / * Định nghĩa pin cho ATTiny2313 * / / * Thứ tự theo chiều kim đồng hồ * / #define BLUE _BV (PB0) #define BLACK _BV (PB1) #define RED _BV (PB2) #define YELLOW _BV (PB3) #define DELAY 200 / * mili giây giữa các bước * / int main (void) {DDRB = 0xff; / * Kích hoạt đầu ra trên tất cả các chân B * / PORTB = 0x00; / * Đặt tất cả chúng thành 0v * / while (1) {/ * vòng lặp chính ở đây * / PORTB = BLUE; _delay_ms (DELAY); PORTB = ĐEN; _delay_ms (DELAY); PORTB = ĐỎ; _delay_ms (DELAY); PORTB = VÀNG; _delay_ms (DELAY); }} Làm thế nào là đơn giản là mã đó? Thực sự đơn giản. Tất cả những gì nó làm là tạo ra một số định nghĩa tốt đẹp để tôi có thể tham khảo các dây theo màu sắc thay vì tên pin của chúng, và sau đó nó bật tắt chúng theo trình tự với độ trễ có thể điều chỉnh ở giữa. Để bắt đầu, tôi đã chọn độ trễ nửa giây giữa các bước. Xem đoạn video ngắn để biết kết quả. Nếu bạn thực sự thích trò chơi của mình, hãy đếm số bước mỗi chu kỳ để tìm ra độ phân giải góc một bước của động cơ. (Ồ đúng rồi. PS. Ổ đĩa không tải ở 3,6v dễ dàng. Xem pin trong video.)

Bước 5: Swing It Back and Forth

Vì vậy, bạn đã có nó chạy theo chiều kim đồng hồ. Còn gì thú vị hơn không? Dọn dẹp mã một chút và chúng ta có thể chạy đi chạy lại. Tôi đặt chuỗi theo chiều kim đồng hồ thành một mảng để bạn có thể chuyển qua các giai đoạn bằng một vòng lặp for đơn giản. Bây giờ bạn có thể chạy vòng lặp lên hoặc xuống để đi theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ.

int main (void) {const uint8_t delay = 50; const uint8_t clockwise = {BLUE, BLACK, RED, YELLOW}; uint8_t i; DDRB = 0xff; / * Kích hoạt đầu ra trên tất cả các chân B * / PORTB = 0x00; / * Đặt tất cả chúng thành 0v * / while (1) {/ * vòng lặp chính tại đây * / for (i = 0; i <= 3; i ++) {/ * bước qua các màu theo chiều kim đồng hồ * / PORTB = clockwise ; _delay_ms (trì hoãn); } for (i = 3; i> = 0; i -) {/ * bước qua các màu ccw * / PORTB = clockwise ; _delay_ms (trì hoãn); }}} Hãy xem video tuyệt vời để biết những điều cần thiết.

Bước 6: Tôi không bao giờ nửa bước, vì tôi không phải là kẻ nửa bước…

Lời bài hát của nhiệm vụ sang một bên, động cơ của bạn chỉ cần nửa bước là nó đang ở. Bạn nhận được nhiều dòng điện cực đại hơn, mô-men xoắn tức thời nhiều hơn và độ phân giải góc gấp đôi. Tóm lại: Thay vì Xanh, Đen, Đỏ, Vàng, bạn lái động cơ với Xanh lam, Xanh lam + Đen, Đen, Đen + Đỏ, Đỏ, Đỏ + Vàng, Vàng, Vàng + Xanh lam. Kết quả là trong một nửa thời gian bạn sử dụng cả hai nam châm cùng một lúc. Và trong thời gian cả hai bộ đều hoạt động, động cơ hướng vào nửa giữa hai bộ, thu nhỏ góc giữa các "bước" và làm cho động cơ quay trơn tru hơn. Bạn có thể cho biết từ video? Tôi không chắc… Bây giờ phần mã thực hiện nửa bước trông như thế này:

void HalfStepping (uint16_t delay, uint8_t direction ) {uint8_t i; for (i = 0; i <= 3; i ++) {PORTB = direction ; / * phần cuộn dây đơn * / _delay_ms (độ trễ); PORTB | = hướng [i + 1]; / * thêm nửa bước * / _delay_ms (delay); }} Lệnh PORTB đầu tiên đặt một cực duy nhất thành dương và tất cả các cực còn lại thành cực âm. Sau đó, nó chờ đợi. Sau đó, lệnh PORTB thứ hai đặt cực thứ hai (trên cuộn dây kia) thành cực dương, sử dụng cả hai cuộn dây để tạo ra 1,4 lần mô-men xoắn (và 2 lần dòng điện). Dưới đây là một danh sách đầy đủ của chương trình. Hai mảng hiện đã được xác định (theo chiều kim đồng hồ, ngược chiều kim đồng hồ) và cả hai đều có 5 phần tử mỗi mảng để cho phép nhập i + 1 trong hàm halfStepping.

Bước 7: Thêm trình điều khiển động cơ

Thêm một trình điều khiển động cơ
Thêm một trình điều khiển động cơ
Thêm một trình điều khiển động cơ
Thêm một trình điều khiển động cơ
Thêm một trình điều khiển động cơ
Thêm một trình điều khiển động cơ

Càng xa càng tốt.

Vấn đề duy nhất là động cơ dường như không có nhiều mô-men xoắn như vậy, điều này có thể là do bộ vi xử lý sẽ chỉ đưa ra ~ 50mA cho mỗi chân. Bước tiếp theo rõ ràng là kết nối nó với một trình điều khiển động cơ để cung cấp cho nó nhiều nước trái cây hơn. Nhưng sau đó suy nghĩ một chút: Tôi chỉ lái nó với 5v và điện trở cuộn dây là ~ 125 ohms. Có nghĩa là động cơ chỉ vẽ 40mA trên mỗi chân và nó sẽ được điều khiển tốt bởi chip AVR (mạnh mẽ!). Vì vậy, để có thêm điện áp điều khiển động cơ, tôi đã kết nối nó với chip cầu H SN754410. Mạch khá đơn giản. Mỗi chân từ AVR đi đến một đầu vào và các chân đầu ra tương ứng đi đến động cơ. Chip cần 5v cho phần logic, và có thể mất nhiều điện áp hơn trong phần động cơ. Chạy nó trên 11,25v (ba pin 3,6v) đã giúp một chút. Có nhiều mô-men xoắn hơn đáng kể đối với ngón tay của tôi, nhưng nó vẫn không phải là một cỗ máy mạnh mẽ. Tuy nhiên, không tệ đối với động cơ nhỏ hơn niken. Và bây giờ mạch trở thành một trình điều khiển động cơ bước lưỡng cực có mục đích chung. Thêm vào ngày 29 tháng 11: Chạy động cơ đêm qua ở 12v một lúc và nó bắt đầu nóng. Tôi không chắc đó có phải là vấn đề tần số cộng hưởng hay chỉ đơn giản là dòng điện quá lớn đối với các cuộn dây. Dù bằng cách nào, hãy cẩn thận một chút nếu bạn đang lái động cơ nhỏ này với điện áp lớn hơn.

Bước 8: Kết thúc

Vậy tôi đã học được gì? Việc điều khiển động cơ bước với AVR (và chip cầu H) khá dễ dàng, ngay cả ở chế độ nửa bước "lạ mắt".

Tuy nhiên, không chắc tôi sẽ làm gì với động cơ bước nhỏ. Bất kỳ đề xuất?

Đề xuất: