/********* Pleasedontcode.com **********
Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- Terms and Conditions:
You have a non-exclusive, revocable, worldwide, royalty-free license
for personal and commercial use. Attribution is optional; modifications
are allowed, but you're responsible for code maintenance. We're not
liable for any loss or damage. For full terms,
please visit pleasedontcode.com/termsandconditions.
- Project: Arduino Motors
- Source Code NOT compiled for: Arduino Uno
- Source Code created on: 2025-10-19 22:13:50
********* Pleasedontcode.com **********/
/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
/* i dosnt work help me */
/****** END SYSTEM REQUIREMENTS *****/
/* START CODE */
#include
// Pin definitions for dual motor control (A and B) on UNO
const unsigned int EN_A = 3;
const unsigned int IN1_A = 5;
const unsigned int IN2_A = 6;
const unsigned int IN1_B = 7;
const unsigned int IN2_B = 8;
const unsigned int EN_B = 9;
// Initialize motor driver for two motors
L298NX2 motors(EN_A, IN1_A, IN2_A, EN_B, IN1_B, IN2_B);
void setup()
{
Serial.begin(9600);
// Wait for serial monitor to be opened (not strictly needed on UNO, but keeps behavior similar to other boards)
while (!Serial)
{
// do nothing
}
// Set an initial speed for both motors
motors.setSpeed(150);
Serial.println(F("L298NX2 Motor Controller Ready. Commands: F Forward, B Backward, S Stop, L Left, R Right, U/D for Motor A, 2/3 for Motor B, + / - global speed"));
}
void loop()
{
if (Serial.available() > 0)
{
char cmd = Serial.read();
switch (cmd)
{
case 'F':
motors.forward();
Serial.println(F("Forward"));
break;
case 'B':
motors.backward();
Serial.println(F("Backward"));
break;
case 'S':
motors.stop();
Serial.println(F("Stop"));
break;
case 'L':
// Turn left: left motor forward, right motor backward
motors.forwardA();
motors.backwardB();
Serial.println(F("Turn Left"));
break;
case 'R':
// Turn right: left motor backward, right motor forward
motors.backwardA();
motors.forwardB();
Serial.println(F("Turn Right"));
break;
case 'U':
// Increase speed of Motor A
{
unsigned short sA = motors.getSpeedA();
if (sA + 5 <= 255) motors.setSpeedA(sA + 5);
else motors.setSpeedA(255);
Serial.print(F("SpeedA = "));
Serial.println(motors.getSpeedA());
}
break;
case 'D':
// Decrease speed of Motor A
{
unsigned short sA = motors.getSpeedA();
if (sA >= 5) motors.setSpeedA(sA - 5);
else motors.setSpeedA(0);
Serial.print(F("SpeedA = "));
Serial.println(motors.getSpeedA());
}
break;
case '2':
// Increase speed of Motor B
{
unsigned short sB = motors.getSpeedB();
if (sB + 5 <= 255) motors.setSpeedB(sB + 5);
else motors.setSpeedB(255);
Serial.print(F("SpeedB = "));
Serial.println(motors.getSpeedB());
}
break;
case '3':
// Decrease speed of Motor B
{
unsigned short sB = motors.getSpeedB();
if (sB >= 5) motors.setSpeedB(sB - 5);
else motors.setSpeedB(0);
Serial.print(F("SpeedB = "));
Serial.println(motors.getSpeedB());
}
break;
case '+':
// Increase global (both) speed
{
unsigned short s = motors.getSpeed();
if (s + 5 <= 255) motors.setSpeed(s + 5);
else motors.setSpeed(255);
Serial.print(F("Global speed = "));
Serial.println(motors.getSpeed());
}
break;
case '-':
// Decrease global (both) speed
{
unsigned short s = motors.getSpeed();
if (s >= 5) motors.setSpeed(s - 5);
else motors.setSpeed(0);
Serial.print(F("Global speed = "));
Serial.println(motors.getSpeed());
}
break;
default:
Serial.print(F("Unrecognized command: "));
Serial.println(cmd);
break;
}
}
}
/* END CODE */