Skip to content

Simple Activities - Circular Motion

Problem Statement

  • Write a code to Alphabot which has to make the robot move in a continuous right-turning circle for 5 seconds, then stop permanently..

Code

#define PWMA 5     // Right motor PWM
#define AIN1 6     // Right motor direction 1
#define AIN2 7     // Right motor direction 2
#define PWMB 8     // Left motor PWM
#define BIN1 9     // Left motor direction 1
#define BIN2 10    // Left motor direction 2

// Movement Parameters
int Speed = 150;   // Base speed (0-255)
int circleTime = 5000; // Time to complete full circle (ms)

void setup() {
  // Initialize motor pins
  pinMode(PWMA, OUTPUT);
  pinMode(AIN1, OUTPUT);
  pinMode(AIN2, OUTPUT);
  pinMode(PWMB, OUTPUT);
  pinMode(BIN1, OUTPUT);
  pinMode(BIN2, OUTPUT);
  delay(2000);     // Startup delay
}

void loop() {
  // Move in a continuous circle
  CircleRight();    // Right-turning circle
  delay(circleTime);
  Stop();
  while(1);        // Stop after one full circle
}

// Custom Circle Function (Right-turning)
void CircleRight() {
  // Right motor slower = tighter turn
  analogWrite(PWMA, Speed * 0.6);  // Right motor at 60% speed
  analogWrite(PWMB, Speed);        // Left motor at full speed
  digitalWrite(AIN1, LOW);
  digitalWrite(AIN2, HIGH);
  digitalWrite(BIN1, LOW);
  digitalWrite(BIN2, HIGH);
}

Output