Lập trình Arduino không cần viết code - Phần 12: Tạo hàm điều khiển motor

Đây là phần 12 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 11 tại đây

Ở phần 9 mình đã hướng dẫn cách điều khiển motor với module L298, đồng thời ở phần trước mình cũng đã hướng dẫn cách tạo một hàm riêng. Hôm nay mình sẽ hướng dẫn các bạn tạo hàm điều khiển motor cho module L298. Vào luôn!

Cách làm

Chúng ta sẽ tạo một hàm gồm 3 thông số thuộc kiểu số là: in1, in2 và action. Trong đó, in1 và in2 là 2 chân điều khiển motor nối với arduino, action là trạng thái motor gồm đứng yên (0), quay theo chiều thứ nhất (1), quay theo chiều thứ hai (2).

Thực hành

Chuẩn bị

  • Arduino mình dùng con Uno
  • Module điều khiển động cơ motor L298
  • 1 con motor hoặc 2 nếu muốn

Nối mạch như sau, Vs là chân 12V, senA, senB được nối chung với GND ở module thực nên khi nhìn module thiệt đừng hỏi sao không thấy nó:

Lập trình với mBlock

Trước tiên tạo một hàm mới gồm 3 thông số như hình

Lập trình cho hàm theo sơ đồ

Lập trình chính cho arduino 

mBlock bị lỗi ở pinMode nên cần chỉnh code một tí tẹo

Ở hàm setup, chỉnh in1 thành 7 và in2 thành 8, nếu muốn điều khiển thêm 1 motor nữa thì lập trình tương tự như trên, sau đó chỉnh lại in1, in2 và thêm 2 dòng pinMode nữa cho motor 2.

Ok, úp luôn đi.

Lập trình với Arduino

Phần cứng y như đúc, phần code thì thế này nè:

#define inA1 7
#define inA2 8
void setup()
{
  pinMode(inA1,OUTPUT);
  pinMode(inA2,OUTPUT);
}
void loop()
{
  motorMove(inA1,inA2,1);
  delay(3000);
  motorMove(inA1,inA2,0);
  delay(3000);
  motorMove(inA1,inA2,2);
  delay(3000);
}
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

Như vậy là ta vừa tìm hiểu xong cách tạo hàm điều khiển motor với module L298. Vậy lí do gì mà mình lại giới thiệu về hàm này thì các bạn sẽ biết ở phần sau. Xin cảm ơn đã theo dõi. Chúc các bạn thành công.

lên
9 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

Một dự án được truyền cảm hứng với "LED RGB chung cực dương"

Sau khi đọc xong bài viết "Làm thế nào để điều khiển được LED RGB", mình cũng muốn làm thử. Tuy nhiên khi đặt mua thì lại nhận được loại LED RGB có cực dương chung. Vậy làm sao áp dụng được?

 

lên
33 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Điều Khiển Motor Brushless Bằng Arduino - Sử dụng module ESC

Xin chào các bạn bạn! Lâu nay chúng ta đã quen với loại động cơ thông thường gồm 2 dây được điều khiển bằng các module điều khiển động cơ. Nhưng  nhược điểm là công suất không được cao. Khi muốn làm các dự án cần motor công suất cao như dây phơi đồ tự thu khi trời mưa, băng tải chạy thời gian thực,..thì ta sẽ cần một loại motor khác có công suất cao hơn. Giải pháp đó chính là motor brushless hay còn gọi là motor không chổi than.

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

GPS và Arduino - Phần 1: Tìm hiểu về GPS

Xin chào các bạn! Sau khi tìm hiểu mình thấy GPS khá thú vị và ta cũng có thể sử dụng nó với arduino. Vì vậy mình sẽ viết 1 seri ngắn nói về gps. Ở phần 1 này mình sẽ giúp các bạn hiểu GPS là gì. Ok, ta bắt đầu luôn.

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