código ..... ARRAYS!!!!!!!

Hola amigos,

tras revisar la documentación, tengo problemas con un código el cual me da errores. La cuestión es que si pongo un ejemplo de arrays simple, me compila, pero el código final no… ¿Alguien me puede ayudar con este tema por favor?

El código ejemplo que funciona es:

int MiArray[2] = {300, 190};

void setup() {
  

}

void loop() {

    RecibeDatos(MiArray);

}

void RecibeDatos(int Array[2]) {
  int Variable = Array[0];
  int Variable2 = MiArray[1];
}

El código que me da problemas al compilar es:

// Definición de variables para la función

String Motor;
int Vueltas;
int Pasos;

// Definición de puertos para salida de motores

int m_1 = 3;
int m_2 = 5;
int m_3 = 6;
int m_4 = 9;
int m_5 = 10;
int m_6 = 11;
int m_7 = 13;

// Definición de vueltas por motor

int vuelta_m1 = 10;
int vuelta_m2 = 5;
int vuelta_m3 = 13;
int vuelta_m4 = 14;
int vuelta_m5 = 15;
int vuelta_m6 = 17;
int vuelta_m7 = 19;

// Definición de pasos por bucle

const int paso_m1 = 11;
const int paso_m2 = 12;
const int paso_m3 = 13;
const int paso_m4 = 12;
const int paso_m5 = 15;
const int paso_m6 = 17;
const int paso_m7 = 19;

// Definición de arrays para motores

int m1_array[paso_m1] = {80, 97, 115, 132, 150, 168, 186, 203, 220, 238, 255};
int m2_array[paso_m2] = {80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 255};
int m3_array[paso_m3] = {80, 95, 110, 125, 140, 155, 170, 185, 200, 215, 230, 245, 255};
int m4_array[paso_m4] = {80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 255};
int m5_array[paso_m5] = {80, 92, 105, 117, 130, 142, 155, 167, 180, 192, 205, 217, 229, 242, 255};
int m6_array[paso_m6] = {80, 91, 102, 113, 124, 135, 146, 157, 168, 179, 190, 201, 212, 223, 234, 245, 255};
int m7_array[paso_m7] = {80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 255};

// Definición de arrays de tiempos para pausas

int p1_array[2] = {300, 190};
int p2_array[2] = {267, 169};
int p3_array[2] = {233, 155};
int p4_array[2] = {200, 166};
int p5_array[2] = {166, 169};
int p6_array[2] = {133, 157};
int p7_array[2] = {150, 110};

// Función de programación del procesador
void setup() {

  // Establecimiento de pines como salida
  pinMode(m_1, OUTPUT);
  pinMode(m_2, OUTPUT);
  pinMode(m_3, OUTPUT);
  pinMode(m_4, OUTPUT);
  pinMode(m_5, OUTPUT);
  pinMode(m_6, OUTPUT);
  pinMode(m_7, OUTPUT);
}

// Función loop del procesador
void loop() {
  
  ActivaMotor ("m_1", vuelta_m1, paso_m1, m1_array, p1_array);
  ActivaMotor ("m_3", vuelta_m3, paso_m3, m3_array, p3_array);
  ActivaMotor ("m_5", vuelta_m5, paso_m5, m5_array, p5_array);
  ActivaMotor ("m_7", vuelta_m7, paso_m7, m7_array, p7_array);
  ActivaMotor ("m_2", vuelta_m2, paso_m2, m2_array, p2_array);
  ActivaMotor ("m_4", vuelta_m4, paso_m4, m4_array, p4_array);
  ActivaMotor ("m_6", vuelta_m6, paso_m6, m6_array, p6_array);

}

// Función única para la activación de los motores según variables pasadas
void ActivaMotor (Motor, Vueltas, Pasos, int M_array[20], int P_array [2])
{
  for(int count = 0; count < Vueltas; count++)
  {
    for(int cont = 0; cont < Pasos; cont++)
    {
      analogWrite(Motor, M_array[cont]);
      delay(P_array[0]); 
      analogWrite(Motor, 0);
      delay(P_array[1]);
    }
  }
}

La versión del IDE que estoy usando es 1.6.8

Gracias de antemano

modifica esta línea

void ActivaMotor (int  Motor, int Vueltas, int Pasos, int M_array[20], int P_array [2]){

y ya deberia compilar

Partiendo de que no tengo ni la menor idea de lo que estás intentando, pero traduciendo sobre la marcha tu código, tal vez con un array de estructuras esté un poco más organizado (o no):

struct StructMotor {
  int pin;
  int numVueltas;
  int numPasos;
  int *paso;
  int pausa[2];
} motor[]={
  {3, 10, 11, (int []){80, 97, 115, 132, 150, 168, 186, 203, 220, 238, 255}, {300, 190}},
  {5, 5, 12, (int []){80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 255}, {267, 169}},
  {6, 13, 13, (int []){80, 95, 110, 125, 140, 155, 170, 185, 200, 215, 230, 245, 255}, {233, 155}},
  {9, 14, 12, (int []){80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 255}, {200, 166}},
  {10, 15, 15, (int []){80, 92, 105, 117, 130, 142, 155, 167, 180, 192, 205, 217, 229, 242, 255}, {166, 169}},
  {11, 17, 17, (int []){80, 91, 102, 113, 124, 135, 146, 157, 168, 179, 190, 201, 212, 223, 234, 245, 255}, {133, 157}},
  {13, 19, 19, (int []){80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 255}, {150, 110}}
};

void setup() {
  for (int i=0; i<7; i++) {
    pinMode(motor[i].pin, OUTPUT);
  }
}



void loop() {
  ActivaMotor (0);
  ActivaMotor (2);
  ActivaMotor (4);
  ActivaMotor (6);
  ActivaMotor (1);
  ActivaMotor (3);
  ActivaMotor (5);
}

void ActivaMotor (int numeroMotor)
{
  for(int count = 0; count < motor[numeroMotor].numVueltas; count++)
  {
    for(int cont = 0; cont < motor[numeroMotor].numPasos; cont++)
    {
      analogWrite(motor[numeroMotor].pin, motor[numeroMotor].paso[cont]);
      delay(motor[numeroMotor].pausa[0]);
      analogWrite(motor[numeroMotor].pin, 0);
      delay(motor[numeroMotor].pausa[1]);
    }
  }
}

Perfecto GRACIAS!!!!!!