Arduino Motor Shield Rev 3
là một dạng motor drive, được gọi là Lá chắn động cơ Arduino. Arduino Motor Shield Rev 3 cho phép arduino của bạn điều khiển động cơ DC và động cơ bước, rơ le và ống dẫn điện. Arduino Motor Shield Rev 3 dựa trên L298, là một trình điều khiển toàn cầu kép được thiết kế để điều khiển các tải cảm ứng như rơle, solenoid, DC và động cơ bước. Nó cho phép bạn điều khiển hai động cơ DC bằng bảng Arduino, điều khiển tốc độ và hướng của mỗi động cơ một cách độc lập. Bạn cũng có thể đo mức hấp thụ dòng điện của từng động cơ, trong số các tính năng khác. Tấm chắn tương thích với TinkerKit, có nghĩa là bạn có thể nhanh chóng tạo các dự án bằng cách cắm các mô-đun TinkerKit vào bảng.
Thông số kỹ thuật
Shield | Name | Arduino® Motor Shield Rev 3 |
SKU | A000079 | |
Compatibility | UNO | |
Motor controller | L298P | |
Power | Operating voltage | 5-12V |
Max current | 2A per channel or 4A max (with external power supply) | |
Max voltage (VIN) | 18V | |
Connectors | TinkerKit | Yes, 6x |
Screw terminals | Yes | |
Other | Status LEDs | Yes, 2x per channel |
Hướng dẫn sử dụng
Arduino Motor Shield Rev 3 tương thích với Uno R3 và UNO Wifi Rev2. Đây là sơ đồ của nó:schematics
Dưới đây chúng ta sẽ tìm hiểu cách kết nối động cơ DC với tấm chắn và cách điều khiển tốc độ và hướng của động cơ.
Giới thiệu
Trong dự án này, chúng ta sẽ học cách điều khiển động cơ DC, sử dụng Motor Shield Rev3, một tấm chắn tương thích với Arduino UNO. Chúng ta sẽ xem xét ba chốt khác nhau: phanh, pwm & hướng, nơi chúng ta sẽ tạo một bản phác thảo đơn giản sử dụng cả ba chân đó. Ngoài ra, chúng tôi cũng sẽ xem xét cách chúng tôi có thể cung cấp năng lượng cho dự án của mình, sử dụng nguồn điện bên ngoài.
Mục tiêu của dự án
- Thiết lập Motor Shield Rev3 của bạn để điều khiển động cơ DC.
- Kiểm soát phanh, pwm và hướng của động cơ.
- Cách kết nối nguồn điện bên ngoài với tấm chắn.
Phần cứng & Phần mềm cần thiết
- Arduino IDE (trực tuyến hoặc ngoại tuyến).
- Arduino Motor Shield Rev3 (liên kết đến cửa hàng)
- Arduino UNO (liên kết đến cửa hàng)
- Động cơ DC (6-12V)
- Nguồn điện (hướng dẫn này sử dụng pin 2x 3.7V Li-Ion 18650).
Điều khiển động cơ DC
Có một số cách để chúng ta có thể điều khiển động cơ DC, có lẽ cách dễ nhất là chỉ cần cấp nguồn cho nó. Những phát minh rất sớm sử dụng động cơ DC hoạt động đơn giản như vậy: thêm một nguồn điện và động cơ sẽ bắt đầu quay, chuyển đổi cực và bạn chuyển hướng.
Nhưng nếu chúng ta muốn làm nhiều hơn một chút ngoài việc chỉ làm cho một động cơ quay hết tốc độ theo hai hướng, chúng ta cần một mạch điều khiển động cơ. Cụ thể hơn là trình điều khiển toàn cầu kép L298P mà chúng ta có thể tìm thấy trên Motor Shield Rev3.
Với IC này, chúng ta có thể đặt nhiệm vụ làm việc (0-100), kích hoạt phanh (CAO hoặc THẤP) và đặt hướng (CAO hoặc THẤP). Mỗi tính năng này có thể được điều khiển bằng cách sử dụng một bộ chân cắm khác nhau. Khi chúng ta sẽ điều khiển động cơ DC trong hướng dẫn này, chúng ta hãy xem các chân được sử dụng:
Kênh A:
D12 – Hướng
D3 – PWM (nhiệm vụ công việc)
D9 – Phanh
A0 – cảm biến hiện tại.
Kênh B:
D13 – Hướng
D11 – PWM (nhiệm vụ công việc)
D8 – Phanh
A1 – cảm biến hiện tại.
Bây giờ nếu chúng ta chỉ sử dụng chip trần, nó sẽ liên quan đến mạch phức tạp hơn một chút. May mắn thay, tất cả những gì chúng ta phải lo lắng là kết nối động cơ DC với một trong các kênh, kết nối nguồn điện bên ngoài và chúng ta đã sẵn sàng!
Mạch
Chúng ta bắt đầu gắn Arduino Motor Shield Rev3 lên trên Arduino Uno.
Bây giờ, chúng ta hãy kết nối động cơ với kênh A, theo hình ảnh bên dưới. Các kênh được đánh dấu bên cạnh các đầu nối vít trên tấm chắn. Sau đó chúng ta nối cap USB với máy tính.
Lập trình cho bo mạch Arduino Uno
Bây giờ chúng ta sẽ đến phần lập trình của dự án này. Đầu tiên, chúng ta hãy xem xét một số lệnh chính trong mã. Chúng ta thực sự không sử dụng thư viện, vì hoạt động rất cơ bản.
- int directionPin = 12; gán chân định hướng( assign direction pin)
- int pwmPin = 3; -gán chân PWM (work duty).
- int brakePin = 9; -gán chân phanh.
- digitalWrite(directionPin, state)- thiết lập chiều của chân bằng HIGH or LOW states.
- digitalWrite(brakePin, state)- kích hoạt hoặc nhả phanh bằng HIGH or LOW states.
- analogWrite(pwmPin, 30) –Viết một giá trị từ 0-100 để thiết lập công việc.
- directionState = !directionState – a boolean that switches every time the loop is run.
Bản phác thảo có thể được tìm thấy trong đoạn mã dưới đây. Tải bản phác thảo lên bo mạch Arduino.
int directionPin = 12;
2int pwmPin = 3;
3int brakePin = 9;
4
5//uncomment if using channel B, and remove above definitions
6//int directionPin = 13;
7//int pwmPin = 11;
8//int brakePin = 8;
9
10//boolean to switch direction
11bool directionState;
12
13void setup() {
14
15//define pins
16pinMode(directionPin, OUTPUT);
17pinMode(pwmPin, OUTPUT);
18pinMode(brakePin, OUTPUT);
19
20}
21
22void loop() {
23
24//change direction every loop()
25directionState = !directionState;
26
27//write a low state to the direction pin (13)
28if(directionState == false){
29 digitalWrite(directionPin, LOW);
30}
31
32//write a high state to the direction pin (13)
33else{
34 digitalWrite(directionPin, HIGH);
35}
36
37//release breaks
38digitalWrite(brakePin, LOW);
39
40//set work duty for the motor
41analogWrite(pwmPin, 30);
42
43delay(2000);
44
45//activate breaks
46digitalWrite(brakePin, HIGH);
47
48//set work duty for the motor to 0 (off)
49analogWrite(pwmPin, 0);
50
51delay(2000);
52}
Sau khi chúng ta đã tải mã lên, chương trình sẽ bắt đầu chạy ngay lập tức. Nếu mọi thứ hoạt động bình thường, động cơ sẽ bắt đầu quay ngay sau khi chương trình tải lên xong.
Kết quả mong đợi là động cơ quay theo một hướng trong 2 giây, với nhiệm vụ làm việc được đặt thành 30 (khá thấp), và phanh được ngắt.
Đánh giá
Chưa có đánh giá nào.