programming issue

I do not understand, what is wrong with the program of my project. here is the code. it says that the servo01SP is not declared (is marked with red)

please help me and tell what should I do.

#include <SoftwareSerial.h>
#include <Servo.h>

Servo servo01;
Servo servo02;
Servo servo03;
Servo servo04;
Servo servo05;
Servo servo06;
SoftwareSerial Bluetooth(A0, 38);
#define led 14

int servo1Pos, servo2Pos, servo3Pos, servo4Pos, servo5Pos, servo6Pos; // current position
int servo1PPos, servo2PPos, servo3PPos, servo4PPos, servo5PPos, servo6PPos;
int speedDelay = 20;
int index = 0;
int dataIn;
int m = 0;

void setup() {
// put your setup code here, to run once:
pinMode(led, OUTPUT);
servo01.attach(5);
servo02.attach(6);
servo03.attach(7);
servo04.attach(8);
servo05.attach(9);
servo06.attach(10);
Bluetooth.begin(38400); // Default baud rate of the Bluetooth module
Bluetooth.setTimeout(5);
delay(20);
Serial.begin(38400);
// Move robot arm to initial position
servo1PPos = 90;
servo01.write(servo1PPos);
servo2PPos = 100;
servo02.write(servo2PPos);
servo3PPos = 120;
servo03.write(servo3PPos);
servo4PPos = 95;
servo04.write(servo4PPos);
servo5PPos = 60;
servo05.write(servo5PPos);
servo6PPos = 110;
servo06.write(servo6PPos);
}

void loop() {
// put your main code here, to run repeatedly:
if (Bluetooth.available() > 0) {
dataIn = Bluetooth.read(); // Read the data
if (dataIn == 0) {
m = 0;
}
if (dataIn == 1) {
m = 1;
}
if (dataIn == 2) {
m = 2;
}
if (dataIn == 3) {
m = 3;
}
if (dataIn == 4) {
m = 4;
}
if (dataIn == 5) {
m = 5;
}
if (dataIn == 6) {
m = 6;
}
if (dataIn == 7) {
m = 7;
}
if (dataIn == 8) {
m = 8;
}
if (dataIn == 9) {
m = 9;
}
if (dataIn == 10) {
m = 10;
}
if (dataIn == 11) {
m = 11;
}
if (dataIn == 12) {
m = 12;
}
if (dataIn == 14) {
m = 14;
}
if (dataIn == 16) {
m = 16;
}
if (dataIn == 17) {
m = 17;
}
if (dataIn == 18) {
m = 18;
}
if (dataIn == 19) {
m = 19;
}
if (dataIn == 20) {
m = 20;
}
if (dataIn == 21) {
m = 21;
}
if (dataIn == 22) {
m = 22;
}
if (dataIn == 23) {
m = 23;
}
if (dataIn == 24) {
m = 24;
}
if (dataIn == 25) {
m = 25;
}
if (dataIn == 26) {
m = 26;
}
if (dataIn == 27) {
m = 27;
}
}
while (m == 16) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo01.write(servo1PPos);
servo1PPos++;
delay(speedDelay);
}
// Move servo 1 in negative direction
while (m == 17) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo01.write(servo1PPos);
servo1PPos--;
delay(speedDelay);
}
// Move servo 2
while (m == 19) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo02.write(servo2PPos);
servo2PPos++;
delay(speedDelay);
}
while (m == 18) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo02.write(servo2PPos);
servo2PPos--;
delay(speedDelay);
}
// Move servo 3
while (m == 20) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo03.write(servo3PPos);
servo3PPos++;
delay(speedDelay);
}
while (m == 21) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo03.write(servo3PPos);
servo3PPos--;
delay(speedDelay);
}
// Move servo 4
while (m == 23) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo04.write(servo4PPos);
servo4PPos++;
delay(speedDelay);
}
while (m == 22) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo04.write(servo4PPos);
servo4PPos--;
delay(speedDelay);
}
// Move servo 5
while (m == 25) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo05.write(servo5PPos);
servo5PPos++;
delay(speedDelay);
}
while (m == 24) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo05.write(servo5PPos);
servo5PPos--;
delay(speedDelay);
}
// Move servo 6
while (m == 26) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo06.write(servo6PPos);
servo6PPos++;
delay(speedDelay);
}
while (m == 27) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo06.write(servo6PPos);
servo6PPos--;
delay(speedDelay);
}
// If arm speed slider is changed
if (dataIn > 101 & dataIn < 250) {
speedDelay = dataIn / 10; // Change servo speed (delay time)
}
// If button "SAVE" is pressed

if (m == 12) {
}

{

servo01SP[index] = servo1PPos; // save position into the array
servo02SP[index] = servo2PPos;
servo03SP[index] = servo3PPos;
servo04SP[index] = servo4PPos;
servo05SP[index] = servo5PPos;
servo06SP[index] = servo6PPos;
index++; // Increase the array index
m = 0;
}
// If button "RUN" is pressed
if (m == 14) {
runSteps();
// If button "RESET" is pressed
if (dataIn != 14) {
stopMoving();
memset(lbw, 0, sizeof(lbw)); // Clear the array data to 0
memset(lfw, 0, sizeof(lfw));
memset(rbw, 0, sizeof(rbw));
memset(rfw, 0, sizeof(rfw));
memset(servo01SP, 0, sizeof(servo01SP));
memset(servo02SP, 0, sizeof(servo02SP));
memset(servo03SP, 0, sizeof(servo03SP));
memset(servo04SP, 0, sizeof(servo04SP));
memset(servo05SP, 0, sizeof(servo05SP));
memset(servo06SP, 0, sizeof(servo06SP));
index = 0; // Index to 0
}
}
}
void runSteps() {
while (dataIn != 13) { // Run the steps over and over again until "RESET" button is pressed
for (int i = 0; i <= index - 2; i++) { // Run through all steps(index)
if (Bluetooth.available() > 0) { // Check for incomding data
dataIn = Bluetooth.read();
if ( dataIn == 15) { // If button "PAUSE" is pressed
while (dataIn != 14) { // Wait until "RUN" is pressed again
if (Bluetooth.available() > 0) {
dataIn = Bluetooth.read();
if ( dataIn == 13) {
break;
}
}
}
}
// If speed slider is changed
if (dataIn > 100 & dataIn < 150) {
speedDelay = dataIn / 10; // Change servo speed (delay time)
}
if (servo01SP == servo01SP[i + 1]) {

  • }*
    _ if (servo01SP > servo01SP[i + 1]) {_
    _ for ( int j = servo01SP*; j >= servo01SP[i + 1]; j--) {
    servo01.write(j);
    delay(speedDelay);
    }
    }
    if (servo01SP[1] < servo01SP[i + 1]) {//here says: the servo01SP is not declared*
    for ( int j = servo01SP*; j <= servo01SP[i + 1]; j++) {
    servo01.write(j);
    delay(speedDelay);
    }
    }*_

Please take note of the advice concerning posting code in Read this before posting a programming question and edit your post to use code tags around the code

There are a lot more errors than just that one. You need to read them all and fix them.

But where exactly do you think you have declared servo01SP (and all the other xxxxxxSPs)?

Steve

When you have more than two variables the have the same name except for a sequence number, it's time to use an array. (Note that arrays indexes start at 0, not 1)

#include <SoftwareSerial.h>
#include <Servo.h>


const byte ServoCount = 6;
const byte ServoPins[ServoCount] = {5, 6, 7, 8, 9, 10};
Servo servos[ServoCount];
byte servoSPos[10][ServoCount]; // Saved positions
byte servoPPos[ServoCount];
const byte servoIPos[ServoCount] = {90, 100, 120, 95, 50, 110};


SoftwareSerial Bluetooth(A0, 38);
#define led 14


int speedDelay = 20;
int index = 0;
byte dataIn;
byte m = 0;


void setup()
{
  // put your setup code here, to run once:
  pinMode(led, OUTPUT);


  // Move robot arm to initial position
  for (int i = 0; i < ServoCount; i++)
  {
    servoPPos[i] = servoIPos[i];
    servos[i].write(servoPPos[i]);
    servos[i].attach(ServoPins[i]);
  }


  Bluetooth.begin(38400); // Default baud rate of the Bluetooth module
  Bluetooth.setTimeout(5);
  delay(20);
  Serial.begin(38400);
}


void loop()
{
  // put your main code here, to run repeatedly:
  if (Bluetooth.available() > 0)
  {
    dataIn = Bluetooth.read();  // Read the data
    if (dataIn <= 27)
      m = dataIn;
  }
  switch (m)
  {
    // Move servo 1
    case 16: servoPPos[0]++; break;
    case 17: servoPPos[0]--; break;
    // Move servo 2
    case 19: servoPPos[1]++; break;
    case 18: servoPPos[1]--; break;
    // Move servo 3
    case 20: servoPPos[2]++; break;
    case 21: servoPPos[2]--; break;
    // Move servo 4
    case 23: servoPPos[3]++; break;
    case 22: servoPPos[3]--; break;
    // Move servo 5
    case 25: servoPPos[4]++; break;
    case 24: servoPPos[4]--; break;
    // Move servo 6
    case 26: servoPPos[5]++; break;
    case 27: servoPPos[5]--; break;
  }


  // Update the arm position
  for (int i = 0; i < ServoCount; i++)
  {
    servos[i].write(servoPPos[i]);
  }
  delay(speedDelay);


  // If arm speed slider is changed
  if (dataIn > 101 && dataIn < 250)
  {
    speedDelay = dataIn / 10; // Change servo speed (delay time)
  }


  // If button "SAVE" is pressed


  if (m == 12)
  {
    // Save the current position
    for (int i = 0; i < ServoCount; i++)
    {
      servoSPos[index][i] = servoPPos[i];
    }
    index++;                        // Increase the array index
    m = 0;
  }


  // If button "RUN" is pressed
  if (m == 14)
  {
    runSteps();


    // If any other button is pressed
    if (dataIn != 14)
    {
      // stopMoving();
      index = 0;  // Index to 0
    }
  }
}


void runSteps()
{
  // Run the steps over and over again until "RESET" button is pressed
  while (dataIn != 13)
  {
    for (int i = 0; i < index; i++)    // Run through all steps(index)
    {
      if (Bluetooth.available() > 0)        // Check for incomding data
      {
        dataIn = Bluetooth.read();
        if (dataIn == 15)             // If button "PAUSE" is pressed
        {
          while (dataIn != 14)           // Wait until "RUN" is pressed again
          {
            if (Bluetooth.available() > 0)
            {
              dataIn = Bluetooth.read();
              if (dataIn == 13)
              {
                break;
              }
            }
          }
        }


        // If speed slider is changed
        if (dataIn > 100 && dataIn < 150)
        {
          speedDelay = dataIn / 10; // Change servo speed (delay time)
        }


        // Move each servo one step until they
      }
    }
  }
}