void loop erro --> function-definition is not allowed here before '{' token

Olá sou novo com arduino e estava realizando um projeto simples, de quando o arduino(MEGA) receber um dado via bluetooth executar um loop. Porem ao colocar o void loop dentro do void loop responsável pelos dados ocorre o seguinte erro:

sketch_nov06a.ino: In function 'void loop()':
sketch_nov06a:14: error: a function-definition is not allowed here before '{' token

int led = 40;

void setup(){
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}

void loop(){
  
  char caracter = Serial.read();
  
  
    if(caracter == 'a'){
      void loop(){
      digitalWrite(led, HIGH);
      delay(75);
      digitalWrite(led, LOW);
      delay(75);
    }
   }
  
  
  delay(1000);
}

Cada sketch apenas pode ter 1 void loop(). No seu sketch esta função (função é o nome dado a este tipo de estruturas) está definido aqui:

void setup(){
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}

void loop(){                            //<<<<< A Q U I 
  
  char caracter = Serial.read();

Sendo assim, não pode utilizar em mais local nenhum esta função.

Aquilo que quer fazer, na realidade, não é utilizar uma função loop, mas sim uma das seguintes estruturas de repetição (repetição ou ciclo em inglês escreve-se loop também):

for
while
do-while

Se quiser que um ciclo se repita para sempre, pode fazer:

while(1) {}

e colocar dentro das chavetas aquilo que quer repetir.

Depois desta breve explicação, se quiser que após receber o dado repetir para sempre o "pisca-pisca" do LED, pode fazer:

int led = 40;

void setup(){
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}

void loop(){
  
  char caracter = Serial.read();
  
  
    if(caracter == 'a'){
      while(1) {
      digitalWrite(led, HIGH);
      delay(75);
      digitalWrite(led, LOW);
      delay(75);
    }
   }  
  delay(1000);
}

Se quiser repetir 3 vezes o "pisca-pisca", pode fazer:

int led = 40;

void setup(){
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}

void loop(){
  
  char caracter = Serial.read();
  
  
    if(caracter == 'a'){
      for (int i=0; i<3; i++) {
      digitalWrite(led, HIGH);
      delay(75);
      digitalWrite(led, LOW);
      delay(75);
    }
   }
  
  
  delay(1000);
}

Ok, funcionou perfeitamente. É a primeira vez que publico no fórum e a resposta foi excelente. Obrigado!!!!

No entanto o teu erro vem do facto de estares a tentar definir uma funcao dentro de outra. Uma funcao e algo que tem de estar separado.

void loop(){  // aqui comeca a definicao da funcao loop.
  
  char caracter = Serial.read();
  
  
    if(caracter == 'a'){
      void loop(){                           // Tu aqui tentas definir a mesma funcao dentro de outra. 
      digitalWrite(led, HIGH);
      delay(75);
      digitalWrite(led, LOW);
      delay(75);
    }
   }
  
  
  delay(1000);
}

Isto nao quer dizer que o luis nao tenha razao. Apenas que aquele erro em especifico e provocado por este pormenor. Se definisses loop fora da funcao, terias um erro dizendo que havia uma definicao em duplicado ou algo do genero.