Gỡ lỗi mạch điều khiển động cơ Stepper của tôi


7

Tôi đang sử dụng Trình điều khiển động cơ bước Pololu DRV8825 để điều khiển Nema 17 Steppermotor bằng Arduino Uno. Theo trang web Pololu, mạch điện phải được nối dây như sau:

nhập mô tả hình ảnh ở đây

Tôi đã làm, tuy nhiên, đi chệch khỏi bản phác thảo chính xác này một chút:

  1. Arduino (vi điều khiển) được cung cấp bởi cáp USB được kết nối với máy tính
  2. Tôi đã kết nối chân 5V trên arduino với đường ray + trên bảng mạch. Sau đó, tôi đã kết nối hai dây trên đường ray này với các chân RESETSLEEP trên trình điều khiển.
  3. Tôi đang sử dụng pin 9V để cấp nguồn cho động cơ.
  4. Tôi đã kết nối các chân DIRBƯỚC với các chân Arduino Uno 12 & 13, tương ứng.

Do đó, tôi đã mã hóa và tải lên bản phác thảo sau:

int stp = 13;  //connect pin 13 to step
int dir = 12;  // connect pin 12 to dir
int a = 0;     //  gen counter

void setup() 
{                
  pinMode(stp, OUTPUT);
  pinMode(dir, OUTPUT);       
}

void loop() 
{
  if (a <  200)  //sweep 200 step in dir 1
   {
    a++;
    digitalWrite(stp, HIGH);   
    delay(10);               
    digitalWrite(stp, LOW);  
    delay(10);              
   }
  else 
   {
    digitalWrite(dir, HIGH);
    a++;
    digitalWrite(stp, HIGH);  
    delay(10);               
    digitalWrite(stp, LOW);  
    delay(10);

    if (a>400)    //sweep 200 in dir 2
     {
      a = 0;
      digitalWrite(dir, LOW);
     }
    }
}

KẾT QUẢ
Động cơ bước không quay. Thay vào đó, nó chỉ rít lên ở một âm vực cao. Sau một thời gian ngắn, tài xế trở nên rất nóng.

Những điều tôi đã từng thử

  1. Tôi đã kiểm tra lại để đảm bảo rằng các cặp dây bước được kết nối được kết nối đúng với các chân "A" và chân "B" trên trình điều khiển.
  2. Tôi đã thử đảo ngược cặp A1-A2 và cặp B1-B2 trong tất cả các kết hợp có thể. Tất cả các kết hợp tạo ra kết quả tương tự như trên.
  3. Tôi đã thử tăng nguồn cung cấp động cơ lên ​​12 V (8 pin kiềm kiềm). Kết quả tương tự xảy ra.
  4. Tôi đã kiểm tra hai lần để chắc chắn rằng tụ điện điện cực 100microF được kết nối với đầu dài với nguồn cung cấp động cơ dương và đầu ngắn với nguồn cung cấp động cơ âm (dĩ nhiên, trên một đường ray bánh mì khác với nguồn điện logic).
  5. Tôi đã thử sử dụng chân 3,3V thay cho chân 5V để kết nối với SLEEP và RESET trên trình điều khiển. Một lần nữa, kết quả tương tự xảy ra.

Tôi không thực sự chắc chắn những gì cần thử tiếp theo để gỡ lỗi mạch của tôi.

Linh cảm của tôi:

Tuy nhiên, tôi có một sự nghi ngờ dựa trên một hộp cảnh báo nhỏ trên trang web pololu có nội dung:

Thận trọng: Cài đặt các chân tiêu đề sao cho phía màn hình lên và các thành phần xuống có thể giới hạn phạm vi chuyển động của trimpot được sử dụng để đặt giới hạn hiện tại. Nếu bạn có kế hoạch cài đặt các chân tiêu đề theo hướng này, vui lòng đặt giới hạn hiện tại trước khi hàn trong các chân.

Cách tôi hàn các tiêu đề vào trình điều khiển trông giống như góc dưới bên trái của hình dưới đây:

nhập mô tả hình ảnh ở đây

Câu hỏi của tôi:
Cho rằng động cơ bước của tôi cần dòng điện 1.7A, tôi có thể làm gì để cải thiện mạch này để làm cho nó hoạt động không? Tôi đã phạm sai lầm nào chưa? Có điều gì khác tôi nên thử hoặc kiểm tra? Tôi đã hàn tiêu đề sai cách?


2
Hướng của các chân không quan trọng .. chỉ cần nói rằng có thể khó xoay thùng trang trí với phần nhựa màu đen của tiêu đề ngay sát nó để khuyên bạn nên làm theo cách bạn đã làm.
sachleen

@sachleen Tôi đoán rằng trimpot là phần tròn nhỏ trông giống như một cái ốc vít. Tôi có cần phải xoay nó để điều chỉnh mức vẽ hiện tại không? Nếu vậy, làm thế nào tôi có thể nói chính xác tôi thực sự nhận được bao nhiêu?
Paul

Vâng, đó là điều tròn ở góc trên bên trái của hình ảnh phía dưới (phía thành phần lên). Không chắc chắn nếu bạn cần thay đổi nó. Đọc phần "Giới hạn hiện tại" của pololu.com để xem cách xem loại bản vẽ hiện tại của nó.
sachleen

@sachleen: Ok. Tôi hiểu rồi. Nó nói "để đo dòng điện chạy qua một cuộn dây động cơ duy nhất mà không cần đồng hồ đầu vào BƯỚC". Nhưng tôi không chắc "không theo dõi đầu vào BƯỚC" nghĩa là gì ... Bạn có hiểu điều đó có nghĩa là gì không?
Paul

2
Tôi chưa bao giờ sử dụng một bước, vì vậy tôi có thể không biết tôi đang nói về cái gì. buuut ... Xem nơi bạn làm digitalWrite(stp, HIGH);và thấp? đó là đồng hồ nó. Tôi nghĩ rằng nó muốn bạn để nó cao.
sachleen

Câu trả lời:


4

Tôi gặp vấn đề tương tự khi thiết lập mạch này với mã và trình điều khiển này trên Arduino Uno. Tất cả những thứ khác đều ổn, nhưng dòng điện cho động cơ đã được đặt CÁCH quá cao đối với người lái xe từ nhà máy. VREF là 1,7 volt và cần khoảng 0,5 cho động cơ tôi đang sử dụng. Khi tôi đặt VREF về điện áp phù hợp, động cơ bắt đầu quay như bình thường và ngừng rít.

Tôi biết bài này đã cũ, nhưng tôi hy vọng rằng bài này sẽ giúp người khác. Pololu có một video tuyệt vời (và tài liệu nói chung) để đặt điện áp phù hợp trên hầu hết các trình điều khiển của họ trên trang sản phẩm tại đây: DRV8825 Stepper Motor Driver Carrier, High Current .


2

Một vài điều tôi nhận thấy đầu tiên: Đây là một trong những câu hỏi được định dạng tốt nhất mà tôi từng thấy ... :) Dù sao, mạch của bạn có vẻ tốt với tôi ngoại trừ một vài điều:

Cảnh báo: Bảng mạch mang này sử dụng tụ gốm ESR thấp, khiến nó dễ bị đột biến điện áp LC phá hủy, đặc biệt là khi sử dụng dây dẫn điện dài hơn một vài inch. Trong điều kiện phù hợp, các xung này có thể vượt quá định mức điện áp tối đa 45 V cho DRV8825 và làm hỏng bảng vĩnh viễn, ngay cả khi điện áp cung cấp động cơ thấp đến 12 V. Một cách để bảo vệ người lái khỏi các xung đó là đặt tụ điện điện phân lớn (ít nhất 47 phaF) trên toàn bộ công suất động cơ (VMOT) và tiếp đất ở đâu đó gần bảng.

(Đã thêm một số chữ nghiêng / đậm, trích dẫn từ trang sản phẩm.)

Tụ điện có giá rẻ (1,50 đô la trên eBay từ Mỹ) và mặc dù các trình điều khiển mới cũng vậy, nói chung nên xây dựng nó đúng cách. Không có gì khó chịu hơn việc chờ đợi vận chuyển trên một cái gì đó bạn không cần phải sửa chữa.

Ngoài ra, năng lượng pin (đặc biệt là pin AA) có thể cồng kềnh nếu không được thực hiện đúng và có thể không cung cấp đủ dòng điện. Lưu ý rằng trong một cấu hình loạt, nó sẽ cung cấp điện áp của 8 AA, nhưng chỉ có dòng điện một. Bạn không thể chạy một động cơ 1.7 Một dòng điện của một AA. Đâm trong dự đoán đen tối: bạn sẽ cần ~ 80-100 AA để cung cấp đủ dòng điện và điện áp. Tôi quá lười để đo điện trở trong và thực sự tính toán nó.

Đề xuất giải pháp: Có một triệu điều có thể đi sai. Không có mặt ở đó, tôi cá rằng chức năng trì hoãn của bạn quá ngắn. Điều này sẽ làm là không cung cấp đủ thời gian cho động cơ di chuyển, do đó nó đứng yên. Điều này vẫn sẽ sử dụng rất nhiều dòng điện (50% thời gian nó là dòng điện đầy đủ cho cuộn dây động cơ), do đó nó sẽ làm cho trình điều khiển nóng. ( Lưu ý về nhiệt: ... để cung cấp nhiều hơn khoảng 1,5 A cho mỗi cuộn dây, cần có một bộ tản nhiệt hoặc phương pháp làm mát khác ...Trang sản phẩm: bạn sẽ cần một bộ tản nhiệt để làm mát chip của bạn.) Cũng lưu ý rằng một số nhiệt là bình thường; Một nguyên tắc chung của ngón tay cái là nếu nó quá nóng để giữ ngón tay cái của bạn trên đó trong vài giây, bạn cần làm mát nhiều hơn. Hãy nhớ rằng nó càng được sử dụng, nó sẽ càng nóng hơn, vì vậy hãy ghi nhớ điều này khi quyết định nếu bạn muốn thêm một bộ tản nhiệt.

tl; dr: Bạn cần tăng thời gian trì hoãn và cung cấp nhiều hơn hiện tại so với hiện tại.


Tôi vừa thử tăng thời gian trễ lên 1000ms (1 giây) mà vẫn không thay đổi hành vi. Tôi đoán tôi sẽ phải thử pin có thể cung cấp cường độ dòng điện cao hơn. Tôi đã tra cứu pin AA của mình và thấy rằng chúng cung cấp khoảng 900 milliamp-giờ. Tôi có nên tìm kiếm pin cung cấp ít nhất 1700 milliamp-giờ (tương ứng với mức rút ra 1.7amp từ động cơ bước)?
Paul

@Paul Không, đây là một quan niệm sai lầm phổ biến. Một mAH có nghĩa là nó có khả năng giải phóng sức mạnh đó, không phải là nó có thể giải phóng tất cả cùng một lúc. Vì thật khó để nói dòng điện tối đa trên hầu hết các loại pin một lần, tôi khuyên bạn nên sử dụng "pin RC" có thể sạc lại 9,6V có thể cung cấp 1,8 + A (ampe, không phải amp giờ). Họ có thể nhận được một chút tốn kém, nhưng bạn cần sức mạnh đó. Lời khuyên: đừng thử thêm pin sạc nối tiếp. Chúng rất nguy hiểm nếu không hoàn toàn "cân bằng!"
Chim cánh cụt ẩn danh

Hãy ngừng đưa ra lời khuyên sai lầm về pin. Hầu hết các tế bào có thể cung cấp dòng điện nhiều lần so với xếp hạng mAh của chúng, với hệ số từ 10 trở lên (xếp hạng C). "Cân bằng" phần lớn là mối quan tâm về sạc , và chủ yếu là với các hóa chất lithium - thứ mà cả gói RC 9,6v và các tế bào AA 1,2 - 1,5v riêng lẻ đều sử dụng.
Chris Stratton

Đã có một nắp 100uF được hiển thị trên mạch, vậy tại sao lại đề cập đến việc thêm nắp là cần thiết?
jfpoilpret

@Chris Bằng cách cân bằng Tôi có nghĩa là nếu bạn kết hợp hai pin lithium hơi khác nhau, chúng có thể rất nguy hiểm. Từ những gì tôi có thể nói, OP đang sử dụng pin kiềm AA tiêu chuẩn mà tôi khẳng định rằng một người không thể hỗ trợ hai ampe cùng một lúc. Ngay cả nếu có thể, rất có thể nó sẽ không kéo dài hai mươi phút vì mất điện áp trong pin. Không có chip để quản lý mất điện áp. OP cũng không chỉ định thành phần pin mà họ đang sử dụng, do đó, nó có thể cung cấp đủ dòng điện, nếu được sạc đủ.
Chim cánh cụt ẩn danh

1

Tôi không nghĩ rằng pin của bạn quá thấp trong dung lượng hiện tại, thời gian trễ của bạn không quá ngắn, ở mức 10 +10 ms trên mỗi xung đồng hồ, bạn chỉ nói về 50 bước mỗi giây, điều đó không nhanh như vậy. Tôi đã viết các chương trình mà tôi đã phải đi đến micro giây để có đủ số vòng / phút từ bước của tôi.

Đầu tiên, lấy mọi thứ ra khỏi vòng lặp của bạn ngoại trừ dòng kỹ thuật số cao, độ trễ ghi dòng kỹ thuật số thấp và độ trễ. Sau đó, chương trình "nên" chỉ quay động cơ liên tục theo một hướng. Bằng cách đó, bạn chắc chắn rằng bạn không có vấn đề logic. Thứ hai, bạn đã kiểm tra xem liệu bạn đã không cắm ngược pin 12 và 13 về phía sau chưa, sao cho bạn đang bảo tài xế thay đổi hướng cứ sau 10 ms thay vì bước? Âm thanh mà nó tạo ra sẽ giống như tiếng vo vo hoặc rung, thường là tiếng rít mềm, tĩnh là khi động cơ được bật, nhưng không nhận được xung bước.

Cuối cùng, bài đăng này khoảng 18 tháng tuổi, nó rất chu đáo và hữu ích cho người khác để giải thích cách bạn giải quyết vấn đề (giả sử bạn đã tìm ra nó).


0

Một điều giúp tôi là KHÔNG kết nối GND với bảng bước từ vi điều khiển (dòng màu đen phía dưới từ sơ đồ được đăng trong bài đầu tiên).

Nếu nó được kết nối, trình điều khiển sẽ rút ra điện áp 12V @ 3A ngay lập tức và bị nóng. Ngoài ra động cơ didn Lần lượt ở tất cả.


Không, bạn đang nhầm. Một điểm chung là hoàn toàn cần thiết để điều này hoạt động, và nếu bạn không nhận được ở đó thì có lẽ bạn đang nhận được thông qua hệ thống dây điện AC. Dù nguyên nhân quá nóng của bạn là một vấn đề khác nhau. Những gì bạn đã đăng ở đây là lời khuyên tồi .
Chris Stratton
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.