Lập trình Arduino không cần viết code - Phần 13: Tạo hàm điều khiển bộ phận di chuyển sử dụng L298

Đây là phần 13 của chuỗi bài viết "Lập trình Arduino không cần viết code"

- Xem lại phần 12 tại đây

Ở phần trước, mình đã hướng dẫn các bạn tạo một hàm giúp điều khiển motor dễ dàng hơn, và mục đích của phần đó chính là tạo hàm của phần này. Hôm nay mình sẽ hướng dẫn các bạn tạo hàm điều khiển bộ phận di chuyển sử dụng module L298. Với hàm này bạn có thể ứng dụng nó làm các dự án xe hay robot di chuyển bằng bánh xe sử dụng module L298 để điều khiển.

Cách thức hoạt động

Bộ phận di chuyển của chúng ta sẽ gồm 2 nhánh: nhánh trái và nhánh phải. Mỗi nhánh gồm 1 hoặc 2 motor nối vào 2 chân out của module(2 motor thì mắc song song). Muốn cho bộ phận tiến, lùi thì cho 2 nhánh cùng xoay một chiều. Muốn rẽ thì 2 nhánh xoay ngược chiều nhau. Quá đơn giản phải không :))

Thực hành

Chuẩn bị

Lắp mạch như sau:

Ok, chú ý: Nên đọc phần 12 trước khi thực hành phần này.

Lập trình với mBlock

Trước tiên ta tạo một hàm motorMove như phần trước.

Sau đó tạo một hàm tên robotMove gồm 1 thông số thuộc kiểu số để chỉ chế độ chạy (giá trị của thông số này từ 0 - 4 tương ứng với 5 chế độ chạy như hình):

Lập trình chính cho arduino, mình lập trình cho con xe của mình chạy ngẫu nhiên.

Thằng mBlock này thích bị lỗi nên mình phải chỉnh tí.

pinMode lại như hình

Úp luôn cho nóng :D

Lập trình với Arduino IDE

Code nóng hổi vừa thổi vừa úp nè.

#define inA1 10
#define inA2 9
#define inB1 8
#define inB2 7
void setup()
{
  pinMode(inA1,OUTPUT);
  pinMode(inA2,OUTPUT);
  pinMode(inB1,OUTPUT);
  pinMode(inB2,OUTPUT);
}
void loop()
{
  robotMove(random(0,5)); //Chay ngau nhien che do tu 0 - 4
  delay(3000);
}
void robotMove(int chedo)
{
  switch(chedo)
  {
    case 0: //Dung
    motorMove(inA1,inA2,0);
    motorMove(inB1,inB2,0);
    break;
    case 1: //Di thang
    motorMove(inA1,inA2,1);
    motorMove(inB1,inB2,1);
    break;
    case 2: //Lui
    motorMove(inA1,inA2,2);
    motorMove(inB1,inB2,2);
    break;
    case 3: //Xoay phai
    motorMove(inA1,inA2,2);
    motorMove(inB1,inB2,1);
    break;
    case 4: //Xoay trai
    motorMove(inA1,inA2,1);
    motorMove(inB1,inB2,2);
    break;
  }
}
void motorMove(int in1,int in2, byte action)
{
  switch(action)
  {
    case 0: //Dung
    digitalWrite(in1,0);
    digitalWrite(in2,0);
    break;
    case 1: //Chieu thu 1
    digitalWrite(in1,1);
    digitalWrite(in2,0);
    break;
    case 2: //Chieu thu 2
    digitalWrite(in1,0);
    digitalWrite(in2,1);
    break;
  }
}

Kết luận

Đây chính là con xe khủng của mình :)))))

Chúc các bạn thành công. Cảm ơn đã quan tâm theo dõi.

lên
12 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ả

Tự làm thiết bị cảnh báo khí CO với cảm biến MQ7

Chúng ta đã biết khí CO có hại cho sức khỏe con người, thậm chí đã có những vụ ngộ độc khí CO. Vì vậy hôm nay mình sẽ hướng dẫn các bạn tự làm một thiết bị cảnh báo khí CO. Đồng thời mình cũng giới thiệu với các bạn con cảm biến khí CO MQ7.

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

iNut cảm biến - Bài 1: Bước đầu tiến vào thế giới IoT

Xin chào mọi người, cùng với AI thì IoT cũng là một xu thế chắc chắn sẽ phát triển trong cuộc cách mạng công nghiệp 4.0. Ngày trước, khi mới làm quen với các dự án liên quan đến IoT, mọi người thường gặp nhiều khó khăn do phải chuẩn bị gần như mọi thứ từ server tới client và tính ổn định, bảo mật của mô hình cũng khó được đảm bảo. Kể từ khi các nền tảng IoT ra đời thì mọi thứ đã trở nên dễ dàng hơn. Sự đơn giản và tiện lợi khi làm các dự án IoT cũng ngày càng tăng theo dòng phát triển của các nền tảng ấy. Inut Platform chính là một trong những nền tảng như vậy, đây là một nền tảng do người Việt sáng lập nên chắc chắn việc hỗ trợ khi làm dự án sẽ dễ dàng hơn rất nhiều. Chính vì vậy, hôm nay mình xin giới thiệu với các bạn seri bài viết hướng dẫn sử dụng iNut Cảm Biến - Một sản phẩm đa năng của nền tảng iNut.

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