Arduino SumoRobot
It is incredible to make a Bluetooth controlled sumo robot using Arduino. This model is both easy to print and easy to assemble. The robot, which consists of 7 parts, gets its power from excellent power n20 motors. Combine the wheels using 2 688zz bearings. Don't forget to add non-slip to the wheels. This project, which uses an Arduino Uno Bluetooth module and L298n motor driver, is very fun and easy to do. Use 2 18650 lipo batteries and a tp4056 charging module to charge the energy. Here are the connection diagrams and Arduino codes
define ENA 10
define IN1 9
define IN2 8
define ENB 5
define IN3 7
define IN4 6
void setup() {
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
Serial.begin(9600);
Serial.println("Arduino Başladı");
}
void loop() {
if (Serial.available()) {
char command = Serial.read();
Serial.print("Komut: ");
Serial.println(command);
if (command == 'w') { moveForward65();} else if (command == 's') { moveBackward65();} else if (command == 'a') { turnLeft65();} else if (command == 'd') { turnRight65();} else if (command == 'W') { moveForward100();} else if (command == 'S') { moveBackward100();} else if (command == 'A') { turnLeft100();} else if (command == 'D') { turnRight100();} else { stopMotors();}}
}
void moveForward65() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, 166);
analogWrite(ENB, 166);
}
void moveBackward65() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENA, 166);
analogWrite(ENB, 166);
}
void turnLeft65() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, 166);
analogWrite(ENB, 166);
}
void turnRight65() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
analogWrite(ENA, 166);
analogWrite(ENB, 166);
}
void moveForward100() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, 255);
analogWrite(ENB, 255);
}
void moveBackward100() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENA, 255);
analogWrite(ENB, 255);
}
void turnLeft100() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, 255);
analogWrite(ENB, 255);
}
void turnRight100() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENA, 255);
analogWrite(ENB, 255);
}
void stopMotors() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
analogWrite(ENA, 0);
analogWrite(ENB, 0);
}