CCCPaste

Arduino Motors rev_01

/********* 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 */