Sử dụng Arduino điều khiển xe mô hình

Mình làm luận văn thạc sĩ Hệ thống thông tin về: Xây dựng hệ thống điều khiển thiết bị bằng thiết bị Epoc Emotiv trong đó có 1 phần trong thực hành đó là dùng Arduino điều khiển xe mô hình.

Cụ thể máy tính sẽ thực hiện phát lệnh tiến lui, rẽ phải trái tới xe mô hình thông qua thiết bị Arduino.

Thiết bị mình sử dụng:

– Bo mạch Arduino hoặc là Wemos R1
– Module cầu H điều khiển 2 motor L298N
– Motor động cơ giảm tốc DC

Trong quá trình mình triển khai thì mình không tài nào có thể điều khiển được motor quay theo chiều ngược lại. Ban đầu mình đấu có phần sai nhưng đó không phải là tất cả. Đấu sai nhưng vẫn quay được motor nhưng chỉ quay 1 chiều duy nhất.

Sau đó lỗi xác định có thể do việc cắm dây không đúng. Trong quá trình hỏi ở các nhóm trên Facebook và nơi bán mạch cầu H thì mình đã khắc phục được và mọi người khẳng định có thể chạy được.

Nhưng thực sự nó vẫn không chạy được như ý muốn, nó vẫn chỉ quay 1 chiều duy nhất.
Cuối cùng buộc phải mang đến quán bán cái mạch cầu H để nhờ họ xem, xem đi xem lại mãi mới phát hiện ra là do sợi dây đực cái bị đứt ngầm. Chỉ một sợi dây đứt ngầm mà dự án bị chậm mấy tháng. Nó làm mình mất ăn mất ngủ bao nhiêu hôm, không bao giờ nghĩ được ra là do sợi dây.

Cuối cùng vấn đề đã được giải quyết, mặc dù chưa cho chạy được nhưng mấu chốt đã được giải quyết, điều khiển được motor quay ngược quay xuôi thì sẽ làm được tiếp theo.

– Cách đấu mạch

+ Hai pin Ultrafire mỗi pin 3.7V, cực dương đấu vào chân 12V của mạch cầu H, cực âm đấu vào chân GND của mạch cầu H

+ Chân +5V và chân GND của mạch cầu H đấu sang cấp nguồn cho Arduino

+ 4 đường IN 1,2,3,4 của mạch cầu H nối với cổng ra 6,7,8,9 của Arduino(có thể 3,4,5,6…)

+ 4 đường OUT của mạch cầu H nối ra các cực của 2 động cơ tương ứng

– Code test

+ Quay xuôi

void setup()
{
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop()
{
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
delay(10000);//dừng 10s
}

+ Quay ngược

void setup()
{
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop()
{
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
delay(10000);//dừng 10s
}

 

Rất cám ơn sự hỗ trợ từ cộng đồng IOT cũng như nơi bán sản phẩm linhkietviet.vn. Thực sự mình cũng chịu khó tìm tòi chứ không phải động tí là hỏi, nhưng thực sự ca này là ca thực sự khó đỡ nhất và là bài học kinh nghiệm đáng giá. Các bạn đã hỗ trợ mình hết sức nhiệt tình, từ đây mình có thêm niềm tiên và cố gắng hỗ trợ ngược lại người khác nếu có thể.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *