Khác biệt giữa các bản “ShieldMotorL298”

Từ ChipFC Wiki
Bước tới: chuyển hướng, tìm kiếm
(Sử dụng)
(Chương trình 1: DC Motor)
Dòng 119: Dòng 119:
 
* Cấp nguồn cho Shield, trước khi cấp nguồn nhớ chú ý jump Vin, khi jump này nối nghĩa là nguồn nuôi động cơ cuãng là nguồn nuôi arduino, nếu không nối jump thì nguồn cho động cơ và nguồn cho arduino riêng biệt (nên tách riêng như vậy)
 
* Cấp nguồn cho Shield, trước khi cấp nguồn nhớ chú ý jump Vin, khi jump này nối nghĩa là nguồn nuôi động cơ cuãng là nguồn nuôi arduino, nếu không nối jump thì nguồn cho động cơ và nguồn cho arduino riêng biệt (nên tách riêng như vậy)
 
* Nạp chương trình test motor, trong đó có một số hàm sau:
 
* Nạp chương trình test motor, trong đó có một số hàm sau:
** Hàm khởi tạo CFC_DCMotor(uint8_t motornum, uint8_t pwmpin) khởi tạo motor, trong đó
+
** Hàm khởi tạo '''CFC_DCMotor(uint8_t motornum, uint8_t pwmpin)''' khởi tạo motor, trong đó
 
_ motornum là thứ tự motor, trên mỗi Shield có 2 cổng để gắn động cơ
 
_ motornum là thứ tự motor, trên mỗi Shield có 2 cổng để gắn động cơ
 
_ pwmpin là chân điều xung cho động cơ, motor 1 mặc định là D13 và motor 2 mặc định là D3
 
_ pwmpin là chân điều xung cho động cơ, motor 1 mặc định là D13 và motor 2 mặc định là D3
 
{| style="border-radius: 6px 6px 6px 6px;border: 1px dotted"
 
{| style="border-radius: 6px 6px 6px 6px;border: 1px dotted"
 
|<syntaxhighlight lang="cpp">
 
|<syntaxhighlight lang="cpp">
 
+
CFC_DCMotor motor1(1, 11); // Motor 1, PWMpin = D11
 
</syntaxhighlight>
 
</syntaxhighlight>
 
|}
 
|}
 +
** Hàm chạy '''void run(uint8_t)''' để cho phép motor chạy, thông số truyền vào là:
 +
*** '''FORWARD''' tiến
 +
*** '''BACKWARD''' lui
 +
*** '''BRAKE''' thắng
 +
*** '''RELEASE''' thả
  
 
=== Chương trình 2: RC Servo ===
 
=== Chương trình 2: RC Servo ===

Phiên bản lúc 23:48, ngày 7 tháng 10 năm 2014

Editor.png

Bài viết này đang được phát triển hoặc chỉnh sửa lớn.
Bạn có thể đóng góp để bài viết hoàn thiện hơn.
Sau khi chỉnh sửa xong thông báo này sẽ được gỡ bỏ.

Giới thiệu

  • Shield Motor L298 là một board mạch mở rộng cho Arduino, tương thích hoàn toàn với Arduino và cả ChipPRO, ChipUNO của ChipFC.
  • Shield Motor cung cấp cho board Arduino của bạn một bộ driver để có thể điều khiển cùng lúc 2 động cơ, hệ thống mạch bảo vệ giúp 2 động cơ chạy trơn tru, đảo chiều nhẹ nhàng, tránh các sự cố về điện
  • Nếu cần nhiều hơn 2 động cơ thì sao, bạn hoàn toàn có thể ghép chồng 2 shield motor này để có thể điều khiển tận 4 động cơ với đầy đủ các chức năng riêng biệt
  • Ngoài ra Shield Motor của chipfc còn cung cấp cho các bạn tối đa số đầu nối cho RC servo để bạn có thể dễ dàng thực hiện thêm những chức năng khác
  • Một số ứng dụng với Shield motor như: điều khiển động cơ xe đua, làm robot, làm máy, điều khiển step motor, cánh tay máy ...

Motor298ShieldTop.jpg

Đặc điểm

  • Điện thế hoạt động: mức logic hoạt động ở 5V giống Arduino, nguồn cho motor có domino kết nối riêng, từ 5-36V
  • Hoàn toàn tương thích Arduino
  • Gồm 4 nữa cầu H, Có thể điều khiển 2 động cơ thường hoặc 1 step motor
  • Có đèn báo hiệu tín hiệu điều khiển
  • Cảm biến dòng cho động cơ
  • Có tối đa 6 kênh điều khiển RC Servo
  • Có thể ghép nối tới 2 shield motor này lên Arduino, tất nhiên cần một vài điều chỉnh nhỏ sẽ nói ở phần sử dụng bên dưới
  • Có thể cấp nguồn cho Arduino bằng nguồn nuôi motor bằng cách đặt jump

Mô tả các chân kết nối

ShieldMotor298 Sodochan.jpg ShieldMotor298 Sodonguyenly.png

Kết nối chân tới Arduino
Thứ tự chân Tên gọi Loại Mô tả
1 Dir_Data Input Tín hiệu data của spi cho điều khiển hướng
2 Dir_Clk Input Tín hiệu clock cua spi cho điều khiển hướng
3 Dir_Latch Input Tín hiệu latch của spi cho điều khiển hướng
4 Dir_En Input Tín hiệu enable của spi cho điều khiển hướng
5 PWM A Input Tín hiệu điều xung cho motor kênh A
6 PWM B Input Tín hiệu điều xung cho motor kênh B
7 Sense A Output Tín hiệu giá trị cảm biến dòng điện của kênh A
8 Sense B Output Tín hiệu giá trị cảm biến dòng điện của kênh B

Kết nối chân ra nguồn và động cơ

Kết nối chân của domino
Thứ tự chân Tên gọi Loại Mô tả
1 MB1 Output Tín hiệu điều khiển motor B, kênh 1
2 MB2 Output Tín hiệu điều khiển motor B, kênh 2
3 GND Power Mức đất, dùng cho stepmotor có chân chung nối GND
4 MA1 Output Tín hiệu điều khiển motor A, kênh 1
5 MA2 Output Tín hiệu điều khiển motor A, kênh 2
6 + Power Nguồn cung cấp cho motor, nên từ 6.5-12 V
7 - Power Nguồn cung cấp cho motor, mức tín hiệu đất

Nếu bạn không dùng với Arduino thì có thể dùng shield motor này như một module driver để điều khiển động cơ, cách kết nối cũng khá đơn giản và thiết lập cũng dễ dàng. Trước tiên bạn hãy chỉnh lại mối hàn chỗ thiết lập chế độ là non-Arduino, hàn hàng rào chỗ còn trống để điều khiển qua hàng rào này. Thứ tự của các chân trên hàng rào được ghi trên mạch và có chức năng như sau:

Chân điều khiển khi không dùng với Arduino
Thứ tự chân Tên gọi Loại Mô tả
1 PWMA Input Tín hiệu điều xung motor A
2 DirA Input Tín hiệu điều khiển hướng motor A
3 PWMB Input Tín hiệu điều xung motor B
4 DirB Input Tín hiệu điều khiển hướng motor B
5 GND Power Mức nguồn đất
6 VCC Power Mức nguồn cung cấp cho ic, 5V

Sử dụng

Cách nối với bo Arduino đơn giản như sau

ShieldMotor ketnoiarduino.jpg 400px

Để sử dụng shield motor này với Arduino, đầu tiên bạn phải tải về thư viện mà chipfc đã chuẩn bị sẵn tại trang giới thiệu của sản phẩm. Sau đó bạn chép và giải nén tại thư mục libraries của Arduino, mở chương trình lên lại và sử dụng.

Để tham khảo các chức năng hoạt động, bạn có thể mở từng ví dụ trong mục example của thư viện shield motor này

Chương trình 1: DC Motor

400px

  • Kết nối Shield Motor với Arduino
  • Kết nối động cơ với Shield
  • Cấp nguồn cho Shield, trước khi cấp nguồn nhớ chú ý jump Vin, khi jump này nối nghĩa là nguồn nuôi động cơ cuãng là nguồn nuôi arduino, nếu không nối jump thì nguồn cho động cơ và nguồn cho arduino riêng biệt (nên tách riêng như vậy)
  • Nạp chương trình test motor, trong đó có một số hàm sau:
    • Hàm khởi tạo CFC_DCMotor(uint8_t motornum, uint8_t pwmpin) khởi tạo motor, trong đó

_ motornum là thứ tự motor, trên mỗi Shield có 2 cổng để gắn động cơ _ pwmpin là chân điều xung cho động cơ, motor 1 mặc định là D13 và motor 2 mặc định là D3

CFC_DCMotor motor1(1, 11); // Motor 1, PWMpin = D11
    • Hàm chạy void run(uint8_t) để cho phép motor chạy, thông số truyền vào là:
      • FORWARD tiến
      • BACKWARD lui
      • BRAKE thắng
      • RELEASE thả

Chương trình 2: RC Servo

400px

Chương trình 3: StepMotor

400px

Hình ảnh kết nối thực tế và hoạt động thực tế sẽ được cập nhật sau

Các rắc rối có thể bạn gặp phải

Không có đèn nào sáng => kiểm tra kết nối nguồn, xem có đảm bảo đủ điện áp hoạt động không, kiểm tra dây nối xem có bị hở mạch không

Động cơ không quay nhưng code mẫu thì chạy được => kiểm tra lại chương trình

Giá trị sensor quá nhỏ hoặc thường xuyên không lấy được => cảm biến dòng có giá trị khi động cơ hoạt động, nên cho chu kì lấy mẫu nhỏ lại, hoặc muốn mịn hơn thì có thể chỉnh lại giá trị điện trở theo datasheet của driver ic L298

Tham khảo thêm

Bạn có thể làm xe đua lập trình chạy tự động với arduino và shield motor này

Bạn có thể làm robot với khả năng di chuyển và kết hợp với servo làm cánh tay máy

Điều khiển các loại động cơ ...