Arduino 4-wheel drive Bluetooth controlled car
Featues:
Battery Powered
Bluetooth control via Arduino App
Code used:
#include <Arduino.h>
int MOTORLEFT[2] = {2, 3};
int MOTORRIGHT[2] = {4, 5};
unsigned long millisflag;
boolean ismoving = false;
int baseSpeed = 255; // Base speed for forward and backward movement
float turnSpeedMultiplier = 0.5; // Speed multiplier for turning (adjust as needed)
void setup() {
[Link](9600);
[Link](50);
for (int i = 0; i < 2; i++) {
pinMode(MOTORLEFT[i], OUTPUT);
pinMode(MOTORRIGHT[i], OUTPUT);
}
}
void loop() {
if ([Link]()) {
String Serialdata = [Link]();
if ([Link]('W') > -1) {
[Link]("forward");
moveForward();
ismoving = true;
millisflag = millis();
}
else if ([Link]("S") > -1) {
[Link]("backward");
moveBackward();
ismoving = true;
millisflag = millis();
}
else if ([Link]("D") > -1) {
[Link]("right");
turnRight();
ismoving = true;
millisflag = millis();
}
else if ([Link]("A") > -1) {
[Link]("left");
turnLeft();
ismoving = true;
millisflag = millis();
}
else if ([Link]("F") > -1) {
[Link]("stop");
moveStop();
ismoving = true;
millisflag = millis();
}
delay(200);
}
if (((millis() - millisflag) > 200) && ismoving) {
moveStop();
ismoving = false;
}
}
void moveStop() {
for (int i = 0; i < 2; i++) {
digitalWrite(MOTORRIGHT[i], LOW);
digitalWrite(MOTORLEFT[i], LOW);
}
}
void moveForward() {
analogWrite(MOTORRIGHT[0], baseSpeed);
analogWrite(MOTORLEFT[0], baseSpeed);
digitalWrite(MOTORRIGHT[1], LOW);
digitalWrite(MOTORLEFT[1], LOW);
}
void moveBackward() {
digitalWrite(MOTORRIGHT[0], LOW);
digitalWrite(MOTORLEFT[0], LOW);
analogWrite(MOTORRIGHT[1], baseSpeed);
analogWrite(MOTORLEFT[1], baseSpeed);
}
void turnLeft() {
analogWrite(MOTORRIGHT[0], baseSpeed * turnSpeedMultiplier);
digitalWrite(MOTORLEFT[0], LOW);
digitalWrite(MOTORRIGHT[1], LOW);
analogWrite(MOTORLEFT[1], baseSpeed * turnSpeedMultiplier);
}
void turnRight() {
digitalWrite(MOTORRIGHT[0], LOW);
analogWrite(MOTORLEFT[0], baseSpeed * turnSpeedMultiplier);
analogWrite(MOTORRIGHT[1], baseSpeed * turnSpeedMultiplier);
digitalWrite(MOTORLEFT[1], LOW);
}
Diagram:
Members:
Aaron Hernandez
Dancel Dela Cruz
Richard Kurt Dave
Fidel Salagubang
Keni Yema
Simon Lalusis
Tristan Ulita
Vince Tagle
Zach Mercado
Khyle Japlos
Asher Paulo