Por favor ayuda con este código | Was not declare in this scope

Hola que tal, soy novato en este ámbito de la programación, la verdad no sé que hice o en qué esté mal, es un juego de Simón dice con blueetooth, pero no encuentro la solución, agradezco de antemano la ayuda.

#include <SoftwareSerial.h>
#include <inttypes.h>
#include <stdio.h>
#define Rojo 2
#define Verde 3
#define Amarillo 4
#define Azul 5
#define Campana 7
#define In_Rojo A0
#define In_Verde A1
#define In_Amarillo A2
#define In_Azul A3
int btn=0;
int i;
int nivelActual=1;
int velocidad=500;
int descuento=0;
const int MaximiNivel=50;
int secuencia[MaximiNivel];
int SecuenciaLeida[MaximiNivel];


void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
pinMode(Amarillo, OUTPUT);
pinMode(Azul, OUTPUT);
pinMode(Rojo, OUTPUT);
pinMode(Verde, OUTPUT);
inicio();
}

void loop() {
  // put your main code here, to run repeatedly:
if(nivelActual==1){
  Nivel();
  Serial.print(nivelActual-1);
  generaSecuencia();
  muestraSecuencia();
  leeSecuencia();
}
if(nivelActual != 1){
  muestraSecuencia();
  leeSecuencia();
}
}
void Nivel();
int duration=0;
int flag=0;
while(flag==0){
  if(Serial.available()>0){
    btn=Serial.read();
  }
  if((digitalRead(In_Azul)== HIGH) || (btn==Azul)){
    digitalWrite(Azul,HIGH);
    delay(350);
    digitalWrite(Azul,LOW);
    velocidad=500;
    flag=1;
    duration=300;
  }
    if((digitalRead(In_Verde)== HIGH) || (btn==Verde)){
    digitalWrite(Verde,HIGH);
    delay(350);
    digitalWrite(Verde,LOW);
    velocidad=300;
    flag=1;
    duration=500;
  }
    if((digitalRead(In_Rojo)== HIGH) || (btn==Rojo)){
    digitalWrite(Rojo,HIGH);
    delay(350);
    digitalWrite(Rojo,LOW);
    velocidad=150;
    flag=1;
    duration=400;
  }
    if((digitalRead(In_Amarillo)== HIGH) || (btn==Amarillo)){
    digitalWrite(Amarillo,HIGH);
    delay(350);
    digitalWrite(Amarillo,LOW);
    velocidad=50;
    flag=1;
    duration=200;
  }
}
btn=0;
tone(Campana,duration);
delay(200);
noTone(Campana);
inicio();
delay(800);
}
void inicio(){
  for(i=1; i<=6; i++){
    digitalWrite(Verde, HIGH);
    delay(100);
    digitalWrite(Verde, LOW);
    digitalWrite(Amarillo, HIGH);
    delay(100);
        digitalWrite(Amarillo, LOW);
    digitalWrite(Azul, HIGH);
    delay(100);
        digitalWrite(Azul, LOW);
    digitalWrite(Rojo, HIGH);
    delay(100);
        digitalWrite(Rojo, LOW);
  }
}
void Marcador(){
  nivelActual=nivelActual - 1;
  int unidad=(nivelActual/4);
  imp_unidad(unidad);
    int residuo=(nivelActual%4);
  imp_residuo(residuo);
  delay(500);
}
void imp_unidad(int n){
  for(int x=1;x<=n;x++){
    digitalWrite(Verde,1);
    digitalWrite(Amarillo,1);
    digitalWrite(Azul,1);
    digitalWrite(Rojo,1);
    delay(800);
    apagados();
    delay(300);
  }
  }
  void imp_residuo(int n){
    apagadon();
    if(n==1){
      digitalWrite(Verde,1);
    }
       if(n==2){
      digitalWrite(Verde,1); 
      digitalWrite(Amarillo,1); 
  }
  if(n==3){
      digitalWrite(Verde,1); 
      digitalWrite(Amarillo,1); 
      digitalWrite(Azul,1);
  }
delay(800);
apagados();
delay(300);
  }
  void apagados(){
    digitalWrite(Verde,LOW);
    digitalWrite(amarillo,LOW);
    digitalWrite(Azul,LOW);
    digitalWrite(Rojo,LOW);
    delay(300);
  }
  void muestraSecuencia(){
    apagados();
    for(int i=0; i<nivelActual;i++){
      if(secuencia[i]==Amarillo){
        tone(Campana, 200);
        delay(200);
        noTone(Campana);
      }
      if(secuencia[i]==Azul){
        tone(Campana, 300);
        delay(200);
        noTone(Campana);
      }
      if(secuencia[i]==Rojo){
        tone(Campana, 400);
        delay(200);
        noTone(Campana);
      }
      if(secuencia[i]==Verde){
        tone(Campana, 500);
        delay(200);
        noTone(Campana);
      }
      digitalWrite(secuencia[i],HIGH);
      delay(Velocidad);
      digitalWrite(secuencia[i],LOW);
      delay(200);
    }
  }

void leeSecuencia(){
  int flag=0;
  for(int i=0;i<nivelActual;i++){
    flag=0;
    while(flag==0){
      if(Serial.available()>0){
        btn=Serial.read();
      }
      if((digitalRead(In_Verde)==HIGH) || (btn==Verde)){
        digitalWrite(Verde,HIGH);
        tone(Campana, 500);
        delay(300);
        noTone(Campana);
        SecuenciaLeida[i]=Verde;
        btn=0;
        flag=1;
        delay(200);
        if(SecuenciaLeida[i] != secuencia[i]){
          secuenciaError();
          return;
        }
        digitalWrite(Verde, LOW);
      }
      if((digitalRead(In_Rojo)==HIGH) || (btn==Rojo)){
      digitalWrite(Rojo, HIGH);
      tone(Campana, 400);
      delay(300);
      noTone(Campana);
      SecuenciaLeida[i]=Rojo;
      btn=0;
      flag=1;
      delay(200);
      if(SecuenciaLeida[i] != secuencia[i]){
      secuenciaError();
      return;
      }
      digitalWrite(Rojo, LOW);
      }
      if((digitalRead(In_Azul)==HIGH) || (btn==Azul)){
      digitalWrite(Azul, HIGH);
      tone(Campana, 300);
      delay(300);
      noTone(Campana);
      SecuenciaLeida[i]=Azul;
      btn=0;
      flag=1;
      delay(200);
      if(SecuenciaLeida[i] != secuencia[i]){
      secuenciaError();
      return;
      }
      digitalWrite(Azul, LOW);
      }
            if((digitalRead(In_Amarillo)==HIGH) || (btn==Amarillo)){
      digitalWrite(Amarillo, HIGH);
      tone(Campana, 200);
      delay(300);
      noTone(Campana);
      SecuenciaLeida[i]=Amarillo;
      btn=0;
      flag=1;
      delay(200);
      if(SecuenciaLeida[i] != secuencia[i]){
      secuenciaError();
      return;
      }
      digitalWrite(Amarillo, LOW);
      }
    }
  }
  secuenciaCorrecta();
}
 void generaSecuencia(){
  randomSeed(analogRead(5));
  for(int i=0; i<MaximiNivel;i++){
    secuencia[i]=random(2,6);
    }
  }
void TonoError(){
  int Tono[]={260,200,200,220,200,0,250,260};
  int duracionNotas[]={4,8,8,4,4,4,4,4};
  for(int i=0;i<8;i++){
  int duracionNotas=1000/duracionNotas[i]);
  tone(Campana,Tono[i],duracionNotas);
  int pausaEntreNotas=duracionNota * 1.30;
  delay(pausaEntreNotas);
  noTone(Campana);
  }
  }
 void secuenciaError(){
  digitalWrite(Amarillo,HIGH);
  digitalWrite(Azul,HIGH);
  digitalWrite(Rojo,HIGH);
  digitalWrite(Verde,HIGH);
  delay(400);
  digitalWrite(Amarillo,LOW);
  digitalWrite(Azul,LOW);
  digitalWrite(Rojo,LOW);
  digitalWrite(Verde,LOW);
  delay(250);
  TonoError();
  velocidad=500;
  Marcador();
  nivelActual=1;
  inicio();
  }
  void secuenciaCorrecta(){
    nivelActual++;
    Serial.print(nivelActual-1);
    delay(350);
    }

Debido a que el código no tiene un sólo comentario y que es dependiente del hardware, sería muy conveniente que indicases qué te sucede, de lo contrario hay que fabricar el mismo hardware sólo para probar el software

Tenés un montón de errores de tipeo.

Hay un par de ";" perdidos, ")" que sobran, un par de variables que declaraste empezando con mayúsculas y después las usas en minúsculas o al revés, y prestá atención en TonoError() porque estas usando el mismo nombre para una variable entera y para un array de enteros (y tal vez veas el paréntesis que sobra).

Con ir leyendo los errores que te marca el compilador lo resolvés solo, así lo hice yo.

Saludos

Moderador:
En el título no debe usarse la palabra Ayuda. Edita!!
Usa un titulo que explique lo que consultas.
Ej: Error en código: "Was not declare in this scope".

Lee las Normas del foro