Tải bản đầy đủ (.docx) (45 trang)

Arduino điều khiển tốc độ và hướng của động cơ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.09 MB, 45 trang )

Chương 3:
ROBOT KỸ THUẬT VỚI YÊU CẦU :
Kiểm soát chuyển động
Vâng, bạn cuối cùng đã có thể làm cho nó trở thành những thứ tốt hơn. Trong
chương này, chúng ta sẽ thảo luận về điều khiển động cơ, một phần rất quan trọng
của thiết kế robot sẽ được dùng trong cuốn sách này. Điều khiển động cơ cho phép
chúng ta cung cấp cho cuộc sống robot, nhưng chúng tôi sẽ không chỉ đơn giản
được nhấn nhím để điều khiển ra robot. Thay vào đó, theo yêu cầu của một khách
hàng giả định, chúng tôi sẽ kiểm soát tốc độ động cơ và định hướng qua truyền
thông nối tiếp.
Chúng ta có thể thực hiện điều này bằng cách sử dụng một H-bridge và một
biến tần hex. Các H-bridge sẽ được sử dụng để điều khiển hai động cơ và biến tần
hex sẽ được sử dụng để chuyển đổi một tín hiệu từ 0 sang 1 (từ 1 sang 0). Công ty
muốn từng tham số được tách để đi đến những chân cụ thể. Một yêu cầu nữa công
ty đó là các mẫu thử nghiệm cuối cùng cần phải được cấu hình trên một khung-
nhưng không phải cho đến khi các phần cứng và phần mềm đã được thử nghiệm.
Để tận dụng tối đa trong dự án này, bạn sẽ cần một sự hiểu biết cơ bản của tiến
trình kỹ thuật và ngôn ngữ lập trình Arduino như đã nói trong hai chương đầu tiên.
Nếu bạn chưa đọc bài viết nào, xin vui lòng làm điều đó trước khi tiếp tục. Trước
khi giải quyết yêu cầu của khách hàng, tuy nhiên, bạn sẽ cần một số thông tin cơ
bản cung cấp cho bạn những cơ sở cần thiết để tạo ra các dự án cuối cùng. Để bắt
đầu mọi thứ, chúng ta sẽ thảo luận về H-bridge và mục đích sử dụng khác nhau của
nó tiếp theo là một đánh giá về phần cứng cần dùng trong chương này. Sau đó
chúng ta sẽ tạo ra 4 dự án nhỏ mà sẽ dạy bạn làm thế nào để bật và tắt một động cơ
với một nút bấm. Tiếp theo, bạn sẽ tìm hiểu làm thế nào để sử dụng một chiết áp để
kiểm soát tốc độ trên một động cơ. Sau đó, bạn sẽ học cách điều khiển nhiều động
cơ với H-bridge và làm thế nào để kiểm soát cả tốc độ và hướng với một chiết áp
và một nút bấm. Trang bị kiến thức mới học của bạn, bạn sẽ tạo ra một robot có sử
dụng H-bridge để điều khiển chuyển động của nó.
Giải thích phần cứng: Các H-bridge
Các H-bridges là mạch tích hợp rất hữu dụng (IC); chúng cho phép điện áp cao


hơn để được kết nối với động cơ mà không cần sử dụng nguồn 5V yếu của
Arduino. Với một số Các H-cầu, bạn có thể sử dụng lên đến 30V. Hình 3-1 cho
thấy ba ví dụ về một H-bridge; cho chương này, chúng ta sẽ dùng lá chắn động cơ
từ Spark Fun được hiển thị phía trên bên phải.

Hình 3-1. Một vài H-bridges (từ trái sang phải: bề mặt gắn kết H-bridge, thông
qua hố H-bridge, và động cơ từ lá chắn SparkFun)
Các motor Sparkfun lá chắn có hai cổng motor, cổng A và cổng B; các cổng tương
ứng với bốn chân trên lá chắn động cơ từ Sparkfun. Chúng là chân digital 3:
PWMA, cái mà kiểm soát tốc độ của motor A, chân digital 12: DIRA, cái mà điều
khiển hướng của motor A, chân digital 11: PWMB, cái mà kiểm soát tốc độ của
motor A, và chân digital 13: DIRB , cái mà điều khiển hướng của motor B. Chúng
ta sẽ dùng một H-bridge để điều khiển tốc độ và hướng của động cơ. Các lá chắn
động cơ từ Sparkfun có được xây tích hợp trong L298P H-bridge, có thể xử lý lên
đến 18V và sử dụng các chân digital 3, 11, 12, và 13 để điều khiển tốc độ và
hướng. Bạn cũng có thể sử dụng một H-bridge độc lập như L293D, thiết bị có một
điện áp đầu vào lên tới 37V. Trong chương này, chúng ta sẽ sử dụng trình điều
khiển motor để điều khiển động cơ với một chiết áp và một nút bấm, kiểm soát tốc
độ và hướng điều khiển những thứ khác.
Tập hợp các phần cứng cho Chương này
Chúng ta sẽ sử dụng Dagu 2WD Beginner Robot Chassis V2 từ Robotshop.com.
Sau đó trong chương này, các yêu cầu tài liệu trình bày sẽ có một chuẩn cho khung
này. Phần này của phần cứng sẽ được sử dụng để giữ mạch, chẳng hạn như
Arduino và lá chắn motor. Bạn có thể tìm thấy khung này ở
www.robotshop.com/dagu-2wd-beginner-robot-chassis-v2-2.html.
Tôi đã chọn khung này cho thiết kế hai bánh xe của nó và không gian rộng rãi trên
đó nó có mẫu thử nghiệm. Nếu bạn đã có một khung hoặc bạn muốn mua một cái
khác, chỉ cần đảm bảo nó là một khung xe hai bánh, như chúng ta sẽ dùng hệ thống
hai bánh suốt phần còn lại của cuốn sách này.
Hình 3-2. Trong chương này, chúng ta sẽ sử dụng Dagu 2WD Beginner Robot

Chassis V2.
Sự hiểu biết các vấn đề cơ bản của điều khiển động cơ
Trong phần này, chúng ta sẽ thảo luận về các vấn đề cơ bản của điều khiển động cơ
trong bốn dự án riêng biệt: bật một động cơ với một nút bấm, kiểm soát tốc độ của
một động cơ với chiết áp, kiểm soát nhiều động cơ với Arduino, và cuối cùng,
kiểm soát tốc độ và hướng . Những điều này sẽ tạo nên nền tảng chúng ta dùng để
xây dựng dự án chúng ta khi chúng ta có các tài liệu yêu cầu cho một robot sau
chương này.
Dự án 3-1: Bật một động cơ với một Switch
Dự án này sẽ chủ yếu tập trung vào các chân digital và sẽ sử dụng một H-bridge vì
vậy chúng ta có thể sử dụng điện áp cao hơn để chạy các động cơ với Arduino. Dự
án 3-1 sẽ cho phép chúng tôi bật một động cơ trên chuyển động theo một chiều
kim đồng hồ.
Tập hợp các phần cứng
Hình 3-3 cho thấy phần cứng cho dự án này, trừ pin 9V, kết nối 9V, và solderless
breadboard:
• Arduino Duemilanove (hoặc UNO)
• lá chắn động cơ từ Sparkfun
• nút bật / tắt
• motor 6V
• bảng Solderless
• pin 9V
• đầu nối pin 9V
• Hai khối thiết bị đầu cuối từ Sparkfun
• Dây phụ
Hình 3-3. Phần cứng cho dự án này
Cấu hình phần cứng
Đầu tiên, hàn các header cái vào lá chắn motor và nối lá chắn động cơ đến header
cái trên Arduino Duemilanove. Tiếp theo, cắm đầu cuối trên một lá chắn motor cho
động cơ 6V bằng cách hàn một khối đầu cuối để lá chắn motor và động cơ của bạn

kết nối với khối đầu cuối (Hình 3-4 cho thấy cấu hình này). Cuối cùng, kết nối bật /
tắt chuyển đổi từ chân nối đất đến digital 10 trên Arduino, như Hình 3-5 cho thấy.
Hình 3-6 và 3-7 minh họa cho cấu hình phần cứng cho dự án này.

Hình 3-4. Khối đầu cuối thêm vào lá chắn motor

Hình 3-5. Công tắc được kết nối với chân digital 10 và nối đất trên Arduino.

Hình 3-6. Động cơ được kết nối với cổng motor A trên lá chắn motor, và chuyển
đổi được kết nối với chân digital 10 và nối đất trên Arduino.

Hình 3-7. Các sơ đồ cho dự án này
Bây giờ bạn đã kết nối các nút nhấn và động cơ, bạn cần phải kết nối Arduino của
bạn để máy tính của bạn để cho phần mềm có thể được upload vào Arduino. Chúng
tôi sẽ viết chương trình cho dự án này trong phần tiếp theo.
Viết phần mềm
Các phần mềm cho dự án này sẽ tương tự như các dự án LED nhấp nháy mà chúng
ta tạo ra trong Chương 1. Nó sẽ có một đầu vào digital, một đầu ra digital, và một
câu lệnh có điều kiện kiểm soát đầu ra. Listing 3-1 cung cấp mã cho dự án này.
Listing 3-1. Turning on a Motor
const int buttonPin = 10; // Sets buttonPin to digital pin 10
const int motorPin = 3; // Sets motorPin to digital pin 3
int buttonVal = 0; // Will pass button value here
void setup()
{
pinMode(buttonPin, INPUT); // Makes buttonPin an input
pinMode(motorPin, OUTPUT); // Makes motorPin an output
digitalWrite(buttonPin, HIGH); // Activates the pull up resistor
// If we did not have this, the switch
// would not work correctly.

}
void loop()
{
buttonVal = digitalRead(buttonPin); // Whatever is at buttonPin is
// sent to buttonVal
if (buttonVal == 1)
{
digitalWrite(motorPin, HIGH); // Turn motor on if buttonVal equals one
}
else
{
digitalWrite(motorPin, LOW); // Turns motor off for all other values
}
}
Mã này đầu tiên khởi buttonPin vào pin 10, motorPin vào pin 3, và buttonVal vào 0
(không phải chân 0, chỉ là số 0). Tiếp theo trong cấu trúc thiết lập, buttonPin được
làm một đầu vào; motorPin được làm một đầu ra, và quan trọng nhất, chúng tôi
kích hoạt trở kéo lên chân 10 ; đây là một điện trở trên bo mạch có thể gọi trong
phần mềm bằng cách sử dụng một hàm digitalWrite (). Ví dụ, đặt digitalWrite (10,
HIGH) bên trong cấu trúc thiết lập kích hoạt trở kéo lên chân 10 (chúng ta có thể
sử dụng một điện trở bên ngoài thay thế, nhưng cách này dễ dàng hơn). Cuối cùng,
khi chúng ta có bên trong cấu trúc vòng lặpchúng ta gán giá trị buttonPin đến
buttonVal. Sau đó, chúng ta dùng một câu lệnh if có điều kiện (buttonVal == 1).
Nếu là giá trị thực hiện bằng 1, viết HIGH đến motorPin, và cho bất kỳ giá trị
khác, viết LOW trên motorPin.
Bây giờ, chúng ta có thể chuyển sang một dự án khác sẽ giúp bổ sung kiến thức
của bạn về điều khiển động cơ. Phần tiếp theo sẽ thảo luận về kiểm soát tốc độ của
một động cơ với chiết áp.
Dự án 3-2: Kiểm soát tốc độ của một động cơ với một chiết áp
Sử dụng một chiết áp là một kỹ năng cơ bản của điều khiển động cơ, và nó sẽ giúp

bạn hiểu làm thế nào để điều khiển tốc độ trong các dự án cuối cùng của chương
này. Dự án ví dụ này cũng sẽ giải thích một chức năngchúng ta không đi qua được
nêu ra - các chức năng bản đồ. Chúng ta kiểm soát tốc độ của động cơ bằng cách
sử dụng các đầu vào analog trên Arduino và nhân rộng các giá trị của một chiết áp
(0-1024) đến được sử dụng với điều chế độ rộng xung (PWM) chân lá chắn motor
sử dụng để kiểm soát tốc độ của động cơ. Phần tiếp theo sẽ thảo luận về phần cứng
chúng ta cần.
Tập hợp các phần cứng
Hình 3-8 cho thấy các phần cứng được sử dụng cho dự án này, trừ pin 9V, kết nối
9V, và bảng solderless:
• Arduino Duemilanove (hoặc UNO)
• lá chắn động cơ
• motor 6V
• Chiết áp 10 kΩm
• pin 9V
• đầu nối pin 9V
• bảng Solderless
• Dây phụ (nếu cần thiết)

Hình 3-8. Các phần cứng cho dự án này
Cấu hình phần cứng
Trước tiên, bạn sẽ muốn kết nối đến lá chắn động cơ đến phía trên cùng của
Arduino. Tiếp theo, chúng ta cần phải cắm chiết áp để Arduino. Dây giữa chiết áp
sẽ kết nối với chân analog 0, và các dây đầu tiên và cuối cùng sẽ được kết nối với
pin + 5V và nối đất tương ứng. Sau khi bạn có chiết áp kết nối, kết nối động cơ đến
cổng A trên Motor Shield. Cuối cùng, kết nối cáp USB từ máy tính tới các Arduino.
Xem Hình 3-9 và 3-10 để đảm bảo bạn có tất cả mọi thứ kết nối đúng. Nếu vậy,
bạn đã sẵn sàng chuyển sang việc tạo ra phần mềm cho dự án này.

Hình 3-9. Motor được kết nối với cổng motor A trên lá chắn động cơ, và chiết áp

được kết nối với chân analog 0, nguồn (+ 5V) pin, và nối đất trên Arduino.
Hình 3-10. Sơ đồ cho dự án này
Viết phần mềm
Chúng ta sẽ dùng các chân analog và chân PWM digital cho dự án này, vì vậy
chúng ta sẽ sử dụng hàm analogRead() và analogWrite() để cho phép truyền thông
từ cổng đến động cơ. Listing 3-2 cung cấp mã cho dự án này.
Listing 3-2. Contolling the Speed of the Motor
const int potPin = A0; // A0 refers to analog pin 0 const
int motorPin = 3;
int potVal = 0;
int mappedPotVal = 0;
void setup()
{
pinMode(potPin, INPUT);
pinMode(motorPin, OUTPUT);
}
void loop()
{
potVal = analogRead(potPin);
mappedPotVal = map(potVal, 0, 1023, 0, 255);
analogWrite(motorPin, mapedPotVal);
}
Mã này bắt đầu với các tờ khai potPin = A0, motorPin = 3, potVal = 0, và
mappedPotVal = 0. Tiếp theo, chúng ta chuyển sang cơ cấu thiết lập, trong đó
potPin được thiết lập là một đầu vào, và motorPin được thiết lập là một đầu ra. Sau
đó, trong cấu trúc vòng lặp, potVal được thiết lập để bằng với potPin chân analog.
Cuối cùng, chúng ta mở rộng số liệu chiết áp bằng cách sử dụng hàm map ():
map(potVal, 0,1023,0,255);
Hàm này thu nhỏ giá trị chiết áp từ 0 đến 255, đó là những gì PWM sử dụng như
giá trị của nó để kiểm soát tốc độ của động cơ.

Sau khi mã hóa hoàn tất mở rộng các giá trị chiết áp, các giá trị thu nhỏ được gửi
đến PWM pin 3, được khởi tạo như motorPin. Phần tiếp theo sẽ thêm vào các dự
án đầu tiên mà bạn tạo ra trong chương này. Chúng ta sẽ điều khiển nhiều motor
với các nút.
Dự án 3-3: Kiểm soát nhiều Motor với Arduino
Trong phần này, chúng ta sẽ thảo luận về việc áp dụng điều khiển hai động cơ với
Arduino và lá chắn motor. Điều này sẽ giúp chúng ta hiểu Arduino giao tiếp như
thế nào với nhiều motor sử dụng công tắc (hoặc nút). Chúng ta sẽ dùng nhiều
motor trong dự án cuối cùng của chương này; sự khác biệt duy nhất là chúng ta sẽ
sử dụng các nút để điều khiển motor trong dự án này.
Tập hợp các phần cứng
Hình 3-11 cho thấy các phần cứng được sử dụng cho dự án này, trừ pin 9V, kết nối
9V, và bảng solderless:
• Arduino Duemilanove (hoặc UNO)
• lá chắn động cơ
• Hai motor 6V
• Hai nút hoặc chuyển mạch
• bảng Solderless
• pin 9V
• đầu nối pin 9V
• Dây phụ
Hình 3-11. Phần cứng cho dự án này
Cấu hình phần cứng
Như trong hai ví dụ đầu tiên, đầu tiên kết nối lá chắn động cơ đến các Arduino.
Trong ví dụ này, có hai nút bấm. Việc đầu tiên của các nút của bạn cần phải có một
dây kết nối với chân digital 9 và đầu kia với đất. Tiếp theo, kết nối một trong các
dây từ nút thứ hai hoặc chuyển sang digital chân 10 trên Arduino; dây đầu kia nên
kết nối với đất. Các động cơ được kết nối với chân digital 3 và 11 để tận dụng tối
đa các chân PWM (chúng tôi sẽ không sử dụng các chân PWM trong phần này, tất
cả các bạn cần phải biết là các động cơ được kết nối với cổng A và B trên lá chắn

motor ). Hình 3-12, 3-13, 3-14 và minh họa các thiết lập phần cứng.
Hình 3-12. Các nút nhấn được kết nối với chân số 9 và 10; sau đó, chúng kết nối
với đất trên Arduino.
Hình 3-13. Các motor được kết nối với cổng motor A và B, và công tắc được kết
nối với chân số 9 và 10 và đất.
Hình 3-14. Sơ đồ của dự án này
Viết phần mềm
Chương trình này sẽ phải làm việc với hai nút chúng ta kết nối ở các phần trước;
chúng ta sẽ sử dụng digitalRead () hàm digitalWrite () và giao tiếp với Arduino.
Một nút sẽ bật động cơ ở cổng A trên lá chắn motor, và các nút khác sẽ bật động cơ
ở cổng B của lá chắn đó. Bảng liệt kê 3-3 cung cấp code của dự án này.
Listing 3-3. Controlling Multiple Motors
const int button1Pin = 10; // Sets buttonPin to digital pin 10
const int motor1Pin1 = 3; // Sets motorPin to digital pin 3
const int button2Pin = 9; // Sets buttonPin to digital pin 9
const int motor2Pin = 11; // Sets motorPin to digital pin 11
int buttonVal1 = 0; // Will pass button value here
int buttonVal2 = 0; // Will pass button value here
void setup()
{
pinMode(button1Pin, INPUT); // Makes buttonPin an input
pinMode(motor1Pin, OUTPUT); // Makes motorPin an output
pinMode(button2Pin, INPUT); // Makes buttonPin an input
pinMode(motor2Pin, OUTPUT); // Makes motorPin an output
digitalWrite(button1Pin, HIGH); // Activates the pull-up resistor
// If we did not have this, the switch would not work
// correctly.
digitalWrite(button2Pin, HIGH); // Activates the pull-up resistor
// If we did not have this, the switch would not
work

// correctly.
}
void loop()
{
buttonVal1 = digitalRead(button1Pin); // Whatever is at buttonPin is sent to
// buttonVal1
buttonVal2 = digitalRead(button2Pin); // Whatever is at buttonPin is sent to
// buttonVal2
if (buttonVal1 == 1)
{
digitalWrite(motor1Pin, HIGH); // Turn motor on if buttonVal equals one
}
else
{
digitalWrite(motor1Pin, LOW); // Turns motor off for all other values
}
if (buttonVal2 == 1)
{
digitalWrite(motor2Pin, HIGH); // Turns motor off for all other values
}
else
{
digitalWrite(motor2Pin, LOW); // Turns motor off for all other values
}
}
Mã này khởi tạo tất cả các chân và các buttonVal1, buttonVal 2 về 0. Trong cấu
trúc thiết lập, chúng ta thiết lập mỗi chân như một đầu vào nếu nó là một nút và
một đầu ra nếu nó là một motor. Sau khi chúng ta thiết lập các chân, chúng ta cần
phải kích hoạt cả hai kéo lên điện trở cho các nút trên Arduino:
digitalWrite (buttonPin1, HIGH);

digitalWrite (buttonPin1, HIGH);
Tiếp theo, chúng ta bước vào một cấu trúc vòng lặp mà chúng ta thiết lập
buttonVal1 với giá trị trên buttonPin1 và các buttonVal2 với giá trị trên buttonPin2.
Sau đó chúng ta tạo ra hai câu lệnh có điều kiện sẽ gửi một giá trị mức cao cho
motorPin1 nếu buttonVal1 có giá trị bằng 1 Cuối cùng, trong câu lệnh if kia, chúng
ta nói rằng nếu buttonVal2 bằng một, motorPin2 sẽ bật. Đó là nó; Dự án này sẽ cho
phép chúng ta điều khiển nhiều motor với sự hỗ trợ của H-bridge.
Lúc này chúng ta đã hoàn thành dự án này, chúng ta có thể tạo ra một dự án khác
mà sẽ giúp bạn hiểu làm thế nào để kiểm soát cả tốc độ và hướng của một động cơ.
Dự án 3-4: Điều khiển tốc độ và hướng
Trong số các những lý do một cầu H là rất hữu ích là nó cho phép chúng ta chuyển
hướng của động cơ và điều khiển tốc độ của động cơ. Dự án này sẽ cho bạn thấy
làm thế nào để kiểm soát tốc độ và hướng của động cơ với một chiết áp và một nút
nhấn.
Tập hợp các phần cứng
Hình 3-11 cho thấy các phần cứng được sử dụng của dự án này, trừ pin 9V, đầu nối
9V, và bảng solderless:
• Arduino Duemilanove (hoặc UNO)
• lá chắn motor
• biến trở 10kohm
• Nút nhấn
• motor 6V
• pin 9V
• đầu nối pin 9V
• Dây phụ (nếu cần thiết)
Hình 3-15. Các phần cứng của dự án này
Cấu hình phần cứng
Điều đầu tiên bạn cần làm là kết nối các lá chắn động cơ cho các Arduino. Thứ hai,
bạn sẽ cần phải kết nối các chiết áp để chân analog 0, chân + 5V, và nối đất, giống
như chúng ta đã làm trong dự án thứ hai của chương này. Tiếp theo, bạn sẽ cần

phải kết nối các công tắc on / off từ digital pin 10 với đất như bạn đã làm trong dự
án 3-1; công tắc này phải là một đơn cực-single-ném (SPST) công tắc. Cuối cùng,
kết nối USB từ máy tính tới các Arduino. Hình 3-16, 3-17, 3-18 và hiển thị các cấu
hình của dự án này.
Hình 3-16. Công tắc được kết nối với pin digital 10 và nối đất trên Arduino.
Hình 3-17. Motor kết nối với cổng motor A, và chiết áp được kết nối với pin
analog 0, pin + 5V, và đất. Ngoài ra, công tắc được kết nối với pin digital 10 và
đất.
Hình 3-18. Sơ đồ của dự án này
Viết phần mềm
Trong dự án này, chúng ta cần phải sử dụng cả hai chân analog và digital. Các pin
analog sẽ được sử dụng để kiểm soát tốc độ của động cơ, và pin digital để điều
khiển hướng của động cơ (thông qua H-bridge và biến tần hex). Các biến tần hex
đảo ngược tín hiệu của một trong những chân, cái mà sẽ chuyển đổi sự phân cực
của motor. Ví dụ, nếu các H-bridge được gửi một giá trị là 1, biến tần hex đọc theo
một 0 và gửi đó để pin đầu vào khác trên H-bridge gây ra động cơ cho quay theo
một chiều kim đồng hồ (để biết thêm thông tin về điều này tiến trình, vui lòng xem
Listing 3-4 cung cấp code của dự án này.
Listing 3-4. Controlling Speed and Direction
const int switchPin = 10;
const int potPin = A0;
const int motorPin = 3;
int switchVal = 0; int potVal = 0;
int mapedPotVal = 0;
void setup()
{
pinMode(switchPin, INPUT);
pinMode(potPin, INPUT);
pinMode(motorPin, OUTPUT);
digitalWrite(switchPin, HIGH);

}
void loop()
{
switchVal = digitalRead(switchPin);
potVal = analogRead(potPin);
mapedPotVal = map(potVal, 0, 1023, 0, 255);
analogWrite(motorPin, mapedPotVal);
if (switchVal == 1)
{
digitalWrite(12, HIGH); // direction (clockwise) of motor A port
}
else
{
digitalWrite(12, LOW); // direction (counter-clockwise) of motor A port
}
}
Đầu tiên, mã này khởi tạo switchPin, potPin, motorPin, switchVal, potVal, và
mappedPotVal. Sau đó, trong cơ cấu thiết lập, chúng ta cài đặt switchPin và potPin
đầu vào và motorPin cho một đầu ra. Tiếp theo, chúng tôi kích hoạt trở kéo lên với
digitalWrite () hàm. Sau đó, trong cấu trúc vòng lặp, chúng ta cài đặt switchVal
bằng việc đọc trên switchPin và đặt giá trị của potVal để đọc trên potPin. Tiếp theo,
chúng ta thiết lập mappedPotVal bằng với giá trị có kích cỡ 0 đến 255 bằng cách sử
dụng map() hàm; sau đó mappedPotPin được gửi tới motorPin. Cuối cùng, chúng
ta điều khiển động cơ với một có điều kiện nếu câu lệnh. Nếu switchVal bằng 1,
motor sẽ chuyển sang chiều kim đồng hồ; nếu không, động cơ sẽ quay ngược chiều
kim đồng.
Dự án 3-5: Điều khiển Motors với Các lệnh nối tiếp
Bây giờ bạn hiểu những điều cơ bản của điều khiển động cơ, chúng ta có thể tham
quan công ty thí dụ của chúng tôi để xem nếu có bất kỳ dự án cho chúng tôi để
hoàn thành yêu cầu sử dụng các Arduino để điều khiển động cơ. Nó không! Vì vậy,

bước đầu tiên của chúng tôi đang thu thập những yêu cầu và tạo ra các tài liệu theo
yêu cầu.
Tập hợp yêu cầu

×