Cách làm xe điều khiển từ xa bằng Arduino

Bạn là một người bắt đầu tìm hiểu về arduino đơn giản và đangcần một dự án đơn giản để thực hành mà chưa biết lựa chọn dự án nào để thực hành thì hôm nay Linh Kiện Điện Tử 3M sẽ giới thiệu đến các bạn một project đơn giản là làm một chiếc xe điều khiển từ xa bluetooth bằng smartphone, kháhay ho để bạn vừa có thể vọc vạch vựa học và vừa chơi.

Bạn đang xem: Hướng dẫn làm xe điều khiển từ xa bằng điện thoại

Cùng bắt tay vào làm luôn nhé:

Chuẩn Bị Linh Kiện Làm Xe Điều Khiển Từ Xa Bluetooth:

01Động cơ giảm tốc vàng01Arduino uno R301Module Bluetooth HC0501Module L298 Mạch Cầu H Điều Khiển Động Cơ DC01Mica, 04 bánh xe02pin 18650

Hình 1: Sơ đồ mạch điều khiển xe bluetooth

Bước 1: lắp động cơ giảm tốc vào bánh xe

Bước 2: Gắn bánh xe đã được lắp động cơ giảm tốc vào khung xe.

Xem thêm: Danh Sách 5 Mẫu Xe Moto Giá Rẻ Dưới 30 Triệu Đồng Dân Việt Phát Thèm

Bước 3:Lắp encoder vào động cơ giảm tốc như hình bên dưới

Bước 4: Hàn dây cho động cơ giảm tốc, hàn 2 đầu dây và 2 là đồng trên động cơ

Bước 5: lắp Arduino uno R3, Module Bluetooth HC05, Module L298 Mạch Cầu H Điều Khiển Động Cơ DC lên khung xe và kết nối dây như hình 1.

Bước 6: Nạp code cho arduino

Download code tại đây:

Lưu ý: Khi nạp chương trình cho Arduino, cầnphải gỡ 2 dây gắn vào Tx và Rx trên board Arduino. Sau khi nạp code xong bạncắm 2 dây kia vào vị trí Rx và Tx vào lại.

Vậy là đã xong rồi. Chúc các bạn thành công!Hyvọng qua bài này, các bạn sẽ có thể tự mình sáng tạo thêm những chiếc xe, robot điều khiển bằng bluetooth hay ho và hoành tráng hơn nhiều nữa nhé

Combo xe 3 bánh điều khiển bluetooth, thường được sử dụng trong dạy học STEM, thi đấu, giải trí, mạch khả năng hoạt động lên tới 3h, khi không còn sử dụng vào mục đích chính người dùng có thể thay đổi sang combo khác như: kết hợp với module dò line làm xe dò line, dò line tránh vật cản, kết hợp với cảm biến siêu âm làm cảm biến tránh vật cản,..

Danh sách sản phẩm sử dụng trong combo

  • Khung xe robot 3 bánh
  • Arduino UNO R3 SMD chip dán [kèm cáp]
  • Mạch Điều Khiển Động Cơ DC L298N
  • Module thu phát bluetooth HC-05
  • Hộp Pin 18650 2 cell có nắp và công tắc
  • Pin cell 18650 2000mAh x2
  • Jack DC đực có dây
  • Dây Cắm Test Board Đực Đực 20cm [ 10 sợi ]
  • Dây Cắm Test Board Đực Cái 20cm [ 20 sợi ]
  • Dòng tiêu thụ trung bình: 0.5A
  • Dòng chờ: 0.06A
  • Số giờ hoạt động: liên tục 3h trong điều kiện pin được sạc đầy
  • Trọng lượng: 500g

Lưu ý: combo này là tự ráp, quý khách chỉ cần đấu nối và nạp code theo đúng sơ đồ là chạy, quý khách có thể chỉnh sửa lại code để tối ưu hơn

Sơ đồ đấu nối của Combo tự làm xe 3 bánh bluetooth Arduino

Đấu nguồn

  • L298N & Arduino lấy nguồn 8.4v ở hộp 2 pin 18650
  • Hai động cơ lấy nguồn ở L298N
  • HC-05 lấy nguồn 5v ở L298N

Sơ đồ đấu nối nguồn Combo tự làm xe 3 bánh bluetooth Arduino

Đấu tín hiệu:

  • Chân ENA  đấu chân D6 của Arduino
  • Chân ENB đấu chân D5 của Arduino
  • Chân IN1 đấu chân D13 của Arduino
  • Chân IN2 đấu chân D12 của Arduino
  • Chân IN3 đấu chân D11 của Arduino
  • Chân IN4 đấu chân D10 của Arduino

Sơ đồ đấu nối tín hiệu Combo tự làm xe 3 bánh bluetooth Arduino

App hỗ trợ

Car Bluetooth RC

Một số lỗi khi test:

Hỏi: Đã kết nối bluetooth trên app, đèn rx trên arduino có nháy liên tục nhưng điều khiển không chạy?

Tl: Thử điều chỉnh lại tốc độ trên app

Hỏi: Nếu bấm chạy tới mà xe chạy lùi?

Tl:  Ta đảo cực của 2 động cơ lại

Hỏi: Nếu bấm qua trái mà xe chạy qua phải hoặc bấm qua phải mà xe chạy qua trái ?

Tl:  Ta đổi bên của động cơ

Video demo:

Code test:

#include int bluetoothTx = 2; // định nghĩa chân 2 là chân truyền tín hiệu int bluetoothRx = 3;// định nghĩa chân 3 là chân nhận tín hiệu SoftwareSerial bluetooth[bluetoothTx, bluetoothRx];    //định nghĩa chân motor trái #define enA 6 #define in1 13 #define in2 12 //định nghĩa chân  motor phai #define enB 5 #define in3 11 #define in4 10 char blue;// là vùng nhớ để so sánh kí tự trả về từ app. int spd; // giá trị băm xung[ tay ga]. void setup[] {   bluetooth.begin[115200];       bluetooth.print["$$$"];       delay[100];       bluetooth.println["U,9600,N"];       bluetooth.begin[9600];   Serial.begin[9600];       // định nghĩa chân tín hiệu in & out  pinMode[in1, OUTPUT];  pinMode[in2, OUTPUT];  pinMode[in3, OUTPUT];  pinMode[in4, OUTPUT];   } // dieu khien motor trai void motor_left[int spd, byte dir] {   if [dir == 0] // motor trái quay tới   {     digitalWrite[in2, LOW];     digitalWrite[in1, HIGH];   }   else if [dir == 1] // motor trái quay lùi   {     digitalWrite[in2, HIGH];     digitalWrite[in1, LOW];   }   else if [dir == 2]// motor trái đứng yên   {    digitalWrite[in1, LOW];    digitalWrite[in2,LOW];    }   analogWrite[enA, spd ];// băm xung cho motor trái } // dieu khien motor phai void motor_right[int spd, byte dir] {   if [dir == 0] // motor phải quay tới   {     digitalWrite[in4, LOW];     digitalWrite[in3, HIGH];   }   else if [dir == 1]//motor phải quay lùi   {     digitalWrite[in4, HIGH];     digitalWrite[in3, LOW];   }   else if [dir ==2]//motor phải dứng lùi   {    digitalWrite[in3, LOW];    digitalWrite[in4, LOW];    }   analogWrite[enB, spd ]; } void forw [] // chay {  Serial.println["motor di thang"];    motor_right[spd , 0];    motor_left[ spd , 0]; } void back [] // chay lui {  Serial.println["motor di lui"];    motor_right[spd , 1];    motor_left[ spd , 1]; } void right [] // quay trai {  Serial.println["motor cua trai"];    motor_right[spd , 0];    motor_left[ spd , 2];     } void left [] // quai phai {  Serial.println["motor cua phai"];    motor_left[ spd , 0];    motor_right[ spd , 2]; } void leftforw [] // quai phai cham {  Serial.println["motor cua phai nhanh"];    motor_left[ spd-20 , 0];    motor_right[ spd , 0]; } void rightforw [] // quai phai nhanh {  Serial.println["motor cua trai nhanh "];    motor_left[ spd , 0];    motor_right[ spd-20 , 0]; } void rightback [] // quai phai nhanh {  Serial.println["motor cua trai nhanh "];    motor_left[ spd , 1];    motor_right[ spd-20 , 1]; } void leftback [] // quai phai nhanh {  Serial.println["motor cua trai nhanh "];    motor_left[ spd-20 , 1];    motor_right[ spd , 1]; } void tack[] {  motor_left[ spd , 2];  motor_right[ spd , 2];  } void robot_android[] { if [ bluetooth.available[] ]  {      blue =bluetooth.read[];      Serial.println["gia tri cua blue la   "];      Serial.println[blue];  }   switch [blue ]{  case['0']:  spd = 70;  case['1']:  spd = 80;  break;  case['2']:  spd = 100;  break;  case['3']:  spd = 110;  break;  case['4']:  spd = 127;  break;  case['5']:  spd = 140;  break;  case['6']:  spd = 160;  break;  case['7']:  spd = 200;  break;  case['8']:  spd = 230;  break;  case['9']:  spd = 255;  break;    case ['S']:   tack[];   break;  case ['F']:   forw[];   break;   case ['B']:   back[];   break;   case ['L']:   left[];   break;   case ['R']:   right[];   break;   case ['H']:   leftback[];   break;   case ['J']:   rightback[];   break;   case ['I']:   rightforw[];   break;   case ['G']:   leftforw[];   break;   } } void loop[] {   robot_android[];  // put your main code here, to run repeatedly: }

Video liên quan

Chủ Đề