Hướng dẫn ardino xe điều khiển bluetooth

Combo xe đa hướng Arduino – Điều khiển bluetooth là combo đầy đủ để các bạn có thể tự tạo cho mình một chiếc xe đa hướng điều khiển bằng bluetooth đơn giản. Combo sử dụng mạch L293D điều khiển 4 động cơ cùng lúc, 4 bánh xe mecanum giúp di chuyển dễ dàng theo hướng mà bạn mong muốn. Combo đi kèm với module bluetooth HC-05 giúp các bạn có thể điều khiển xe bằng các app có sẵn trên hệ thống hoặc có thể tự thiết kế cho mình một app riêng biệt. Combo tích hợp 2 pin 18650 và bộ sạc tiện lợi cho người sử dụng.

Thông số kỹ thuật

  • Dòng điện chờ: 0.07A
  • Thời gian liên tục: ~ 2 tiếng
  • Trọng lượng combo: 588g

Trọn bộ sản phẩm combo xe đa hướng Arduino – Điều khiển bluetooth

  • Arduino UNO R3 DIP (kèm cáp)
  • Arduino Motor Shield L293D
  • Bộ khung xe 4 bánh Mecanum 25.5 x 15cm, 4 động cơ vàng
  • Pin cell 18650 2600mAh 5C
  • Bộ sạc 2 pin 18650
  • Hộp Pin 18650 2 cell có nắp và công tắc
  • Module thu phát bluetooth HC-05
  • 10 sợi dây cắm testboard đực cái

Sơ đồ kết nối tham khảo

Hướng dẫn ardino xe điều khiển bluetooth
Sơ đồ đấu nối tham khảo cho Combo xe đa hướng Arduino – Điều khiển bluetooth

App tham khảo: https://drive.google.com/file/d/1X5e2UKI23lYK6-rQIiaDAed8A1m72ZD4/view?usp=sharing

—————————-Code tham khảo—————————–

include

include

include

SoftwareSerial Bluetooth(13, 2); // Arduino(RX, TX) - HC-05 Bluetooth (TX, RX) AF_DCMotor motor(1, MOTOR12_64KHZ); AF_DCMotor motor1(2, MOTOR12_64KHZ); AF_DCMotor motor2(3, MOTOR12_64KHZ); AF_DCMotor motor3(4, MOTOR12_64KHZ); int wheelSpeed; int dataIn, m; void setup() { Serial.begin(9600); Bluetooth.begin(9600); Bluetooth.setTimeout(1); delay(20); } void loop() { // Check for incoming data if (Bluetooth.available() > 0) {

dataIn = Bluetooth.read();  // Read the data  
Serial.println(dataIn);  
if (dataIn == 0) {  
  m = 0;  
}  
if (dataIn == 1) {  
  m = 1;  
}  
if (dataIn == 2) {  
  m = 2;  
}  
if (dataIn == 3) {  
  m = 3;  
}  
if (dataIn == 4) {  
  m = 4;  
}  
if (dataIn == 5) {  
  m = 5;  
}  
if (dataIn == 6) {  
  m = 6;  
}  
if (dataIn == 7) {  
  m = 7;  
}  
if (dataIn == 8) {  
  m = 8;  
}  
if (dataIn == 9) {  
  m = 9;  
}  
if (dataIn == 10) {  
  m = 10;  
}  
if (dataIn == 11) {  
  m = 11;  
}  
if (dataIn == 12) {  
  m = 12;  
}  
if (dataIn == 14) {  
  m = 14;  
}  
// Set speed  
if (dataIn >= 16) {  
  wheelSpeed = dataIn;  
  Serial.println(wheelSpeed);  
}  
} if (m == 5) {
moveSidewaysLeft();  
} if (m == 4) {
moveSidewaysRight();  
} if (m == 2) {
moveForward();  
} if (m == 7) {
moveBackward();  
} if (m == 1) {
moveRightForward();  
} if (m == 3) {
moveLeftForward();  
} if (m == 6) {
moveRightBackward();  
} if (m == 8) {
moveLeftBackward();  
} if (m == 9) {
rotateLeft();  
} if (m == 10) {
rotateRight();  
} if (m == 0) {
stopMoving();  
} //Serial.println(dataIn); // If button "SAVE" is pressed if (m == 12) { } } void moveForward() { motor.setSpeed(wheelSpeed); motor1.setSpeed(wheelSpeed); motor2.setSpeed(wheelSpeed); motor3.setSpeed(wheelSpeed); motor1.run(FORWARD); motor.run(FORWARD); motor3.run(FORWARD); motor2.run(FORWARD); } void moveBackward() { motor.setSpeed(wheelSpeed); motor1.setSpeed(wheelSpeed); motor2.setSpeed(wheelSpeed); motor3.setSpeed(wheelSpeed); motor1.run(BACKWARD); motor.run(BACKWARD); motor3.run(BACKWARD); motor2.run(BACKWARD); } void moveSidewaysRight() { motor.setSpeed(wheelSpeed); motor1.setSpeed(wheelSpeed); motor2.setSpeed(wheelSpeed); motor3.setSpeed(wheelSpeed); motor1.run(BACKWARD); motor.run(FORWARD); motor3.run(BACKWARD); motor2.run(FORWARD); } void moveSidewaysLeft() { motor.setSpeed(wheelSpeed); motor1.setSpeed(wheelSpeed); motor2.setSpeed(wheelSpeed); motor3.setSpeed(wheelSpeed); motor1.run(FORWARD); motor.run(BACKWARD); motor3.run(FORWARD); motor2.run(BACKWARD); } void rotateLeft() { motor.setSpeed(wheelSpeed); motor1.setSpeed(wheelSpeed); motor2.setSpeed(wheelSpeed); motor3.setSpeed(wheelSpeed); motor1.run(FORWARD); motor.run(BACKWARD); motor3.run(BACKWARD); motor2.run(FORWARD); } void rotateRight() { motor.setSpeed(wheelSpeed); motor1.setSpeed(wheelSpeed); motor2.setSpeed(wheelSpeed); motor3.setSpeed(wheelSpeed); motor1.run(BACKWARD); motor.run(FORWARD); motor3.run(FORWARD); motor2.run(BACKWARD); } void moveRightForward() { motor.setSpeed(wheelSpeed); motor1.setSpeed(0); motor2.setSpeed(wheelSpeed); motor3.setSpeed(0); motor3.run(RELEASE); motor1.run(RELEASE); motor.run(FORWARD); motor2.run(FORWARD); } void moveRightBackward() { motor1.setSpeed(wheelSpeed); motor.setSpeed(0); motor3.setSpeed(wheelSpeed); motor2.setSpeed(0); motor.run(RELEASE); motor2.run(RELEASE); motor1.run(BACKWARD); motor3.run(BACKWARD); } void moveLeftForward() { motor.setSpeed(0); motor1.setSpeed(wheelSpeed); motor2.setSpeed(0); motor3.setSpeed(wheelSpeed); motor2.run(RELEASE); motor.run(RELEASE); motor1.run(FORWARD); motor3.run(FORWARD); } void moveLeftBackward() { motor.setSpeed(wheelSpeed); motor1.setSpeed(0); motor2.setSpeed(wheelSpeed); motor3.setSpeed(0); motor3.run(RELEASE); motor1.run(RELEASE); motor.run(BACKWARD); motor2.run(BACKWARD); } void stopMoving() { motor.run(RELEASE); motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor1.setSpeed(0); motor2.setSpeed(0); motor3.setSpeed(0); motor.setSpeed(0); }