Phần 4. Tiếp nối dự án Robot dò line

Tiếp nối chuỗi bài viết của bạn Đinh Hồng Thái về robot dò line...Nhưng vì lý do nào đó, bạn Thái đã ngừng chuỗi bài viết của mình một cách dở dang!!! Hôm nay, mình sẽ hướng dẫn các bạn phần cuối của Series Robot dò line của bạn Đinh Hồng Thái.

I. Giới thiệu

Tiếp nối chuỗi bài viết của bạn Đinh Hồng Thái về robot dò line...Nhưng vì lý do nào đó, bạn Thái đã ngừng chuỗi bài viết của mình một cách dở dang!!! Hôm nay, mình sẽ hướng dẫn các bạn phần cuối của Series Robot dò line của bạn Đinh Hồng Thái.

II. Chuẩn bị

III. Kết nối 

- Trước tiên, các bạn kết nối các hồng ngoại với module của nó...Nó có 4 hồng ngoại với các chân tín hiệu lần lượt là IN1, IN2, IN3, IN4

Mạch cầu H, kết nối với các động cơ...Phần các pin của Arduino kết nối với cảm biến thì như sau

Arduino UNO            L298 Module dò đường
2 IN1  
3 IN2  
4 IN3  
5 IN4  
~10 ENA  
~11 ENB  
6   IN1
7   IN2
8   IN3
9   IN4

 

 

IV. Code:

// Định ngĩa các chân điều khiển động cơ
#define inA1 2 
#define inA2 3 
#define inB1 4
#define inB2 5 
#define hongngoai1 6
#define hongngoai2 7
#define hongngoai3 8
#define hongngoai4 9
#define ENA 10
#define ENB 11
void setup() {
pinMode(inA1, OUTPUT);
pinMode(inA2, OUTPUT);
pinMode(inB1, OUTPUT);
pinMode(inB2, OUTPUT);
pinMode(hongngoai1, INPUT);
pinMode(hongngoai2, INPUT);
pinMode(hongngoai3, INPUT);
pinMode(hongngoai4, INPUT);
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
Serial.begin(9600)
analogWrite(ENA, 120);
analogWrite(ENB, 120);//đi chậm cho khỏi trượt Line
}
void loop(){
benphai = analogRead(hongngoai1)+analogRead(hongngoai2);
bentrai = analogRead(hongngoai3)+analogRead(hongngoai4);
if (benphai = 0 && bentrai = 0){lui();}//Trượt ra khỏi Line thì lùi lại
else {giatrilech = benphai - bentrai}
if (giatrilech > 0){
Serial.println("Lệch trái");
quaytrai();//Lệch trái, thỳ quay trái
}
else if ((giatrilech < 0){
Serial.println("Lệch phải");
quayphai();}//lệch phải thì quay phải
else if (giatrilech == 0){
dithang();}//Không lệch đi thẳng
}


void dithang(){
           digitalWrite(inA1,HIGH);
           digitalWrite(inA2,LOW);
           digitalWrite(inB1,HIGH);
           digitalWrite(inB2,LOW);
   
}
void lui(){
           digitalWrite(inA1,LOW);
           digitalWrite(inA2,HIGH);
           digitalWrite(inB1,LOW);
           digitalWrite(inB2,HIGH);
}
void quaytrai(){
           digitalWrite(inA1,HIGH);
           digitalWrite(inA2,LOW);
           digitalWrite(inB1,LOW);
           digitalWrite(inB2,LOW);
}
void quayphai(){
           digitalWrite(inA1,LOW);
           digitalWrite(inA2,LOW);
           digitalWrite(inB1,HIGH);
           digitalWrite(inB2,LOW);
}



V. Lời kết

Trên đây là hướng dẫn làm robot dò line...Chúc các bạn thành công!!!

Youtube: 
Những hình ảnh về dự án: 
Bài viết truyền cảm hứng: 
lên
28 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Lập trình Raspberry Pi với C++ - Ví dụ về LED và nút nhấn

Hôm nay, chúng ta sẽ tìm cách nói chuyện với Raspberry Pi bằng ngôn ngữ C++. Thay vì sử dụng các ngôn ngữ Python, NodeJS thì C++ là một ngôn ngữ rất gần gũi với những ai đã có một nền tảng Arduino vững chắc. C++ cơ bản đủ để lập trình Raspberry pi cũng rất dễ học ( C++ cơ bản thôi nha...còn chuyên nghiệp thì là ngôn ngữ khó nhất rồi ). Vì vậy, mình sẽ cùng các bạn khám phá nó!!! Nào cùng bắt đầu thôi!!!

lên
17 thành viên đã đánh giá bài viết này hữu ích.

Điều khiển động cơ bước bằng mạch cầu H

Hôm nay, mình sẽ hướng dẫn các bạn điều khiển động cơ bước cực kỳ đơn giản với mạch cầu H thông thường, sử dụng thư viện chuẩn của Arduino. Thay vì sử dụng những Driver điều khiển động cơ bước như những bài trước!!! 

lên
53 thành viên đã đánh giá bài viết này hữu ích.