no encuentro el error en la programacion

int LDR = A0;   
int boton1 = 10; 
int inicio = 0;
int estadoAC = 0;
int estadoAN = 0;
int LDRValue = 0;    
int light_sensitivity = 0;   
void beep()
{
  analogWrite(11, 20);
  delay(10);                
  analogWrite(11, 0);            
  delay(10);   
}
void setup()
 {
   Serial.begin(9600);      
   pinMode(13, OUTPUT);   
   pinMode(12, OUTPUT); 
   pinMode(11, OUTPUT);  
   pinMode(10, INPUT);

}
void loop()  {
       
   estadoAC = digitalRead(boton1);
  if (estadoAC && estadoAN == 0)
  {
   inicio = 1 - inicio;
   delay(100);
  }
  estadoAN = estadoAC;

   LDRValue = analogRead(LDR);  
   Serial.print("LDRValue :  ");   
   Serial.print(LDRValue);  
   Serial.println(""); 
   delay(50); 

   if(inicio == 1)
   {
     if (LDRValue < light_sensitivity) 
     {
       digitalWrite(13, HIGH);
       digitalWrite(12, LOW);
       digitalWrite(11, HIGH);
       beep;
     }
 else 
     {
         digitalWrite(13, LOW);
       digitalWrite(12, HIGH);
       digitalWrite(11, LOW);
     }  
   }
   else
   {
       digitalWrite(13, LOW);
       digitalWrite(12, LOW);
       digitalWrite(11, LOW);
   }

   }

lo que quiero es prender y apagar el circuito con un pulsador, cuando lo oprima funcione la fotocelda, si hay suficiente luz, prenda el led verde, pero si no hay suficiente luz, prenda el led rojo y suene el buzzer. el montaje me funciona sin el boton, pero al poner el boton se salta un if y solo prende el led verde (pin 12) y auque no alla luz el rojo(pin 13) no prende ni el buzzer suena. (aunque si lee la informacion de la fotocelda con el serial.print)

Mi amigo, bienvenido a esta comunidad pero debes seguir ciertas normas que puedes leer en las Normas del Foro.
Básicamente debes editar tu post y poner el código como corresponde.
No has mirado ningún otro Tema? No viste que los códigos estan con una leyenda que dice code?
Bueno, ve a More (abajo derecha) luego modify y podrás editarlo. Luego selecciona todo tu código y click en </>
Espero a que lo hagas para responder tu consulta y solucionar tu error.

Además explicate mejor.
**Creo que hay un error en los if pero no dices cual? **
Tu crees que podemos leer tu mente?

ya :wink:

Si no te he entendido mal creo que el fallo lo tienes aqui:

if (estadoAC && estadoAN == 0)
  {
   inicio = 1 - inicio;
   delay(100);
  }

Prueba a cambiar la comparativa de este modo:

if ((estadoAC == 0) && (estadoAN == 0))
  {
   inicio = 1 - inicio;
   delay(100);
  }

Ya dirás si esto te lo soluciona

Ese no puede ser el error.
estadoAN es el estado anterior de estadoAC asi que no puedes comparar ambos como 0 o LOW, sino como
distintos o cuando hay transiciones.

Esa comparación es correcta porque espera a que estadoAC se ponga en 1 y se consulta si el estado
anterior era 0, entonces con cada presión del pulsador tal que pase de 0 a 1, cambia el estado de
inicio.

Solo un problema de orden con las llaves. A mi me gusta indentar, y que todo sea visible y entendible para quien lo lea

const byte LDR 			= A0;   
const byte pinRojo 		= 13;
const byte pinVerde 	= 12;
const byte pinbuzzer    = 11;
const byte pinBoton     = 10;

bool inicio 			= false;

bool estadoAC 			= false;
bool estadoAN 			= false;
unsigned int LDRValue	= 0;    
unsigned int light_sensitivity = 0;   

void beep() {
  analogWrite(pinbuzzer, 20);
  delay(10);                
  analogWrite(pinbuzzer, 0);            
  delay(10);   
}

void setup() {
   Serial.begin(9600);      
   pinMode(pinRojo, OUTPUT);   
   pinMode(pinVerde, OUTPUT); 
   pinMode(pinbuzzer OUTPUT);  
   pinMode(pinBoton, INPUT);

}

void loop()  {
    estadoAC = digitalRead(pinBoton);
    if (estadoAC && estadoAN == 0) {
        inicio = !inicio;
        delay(20);
    }
    estadoAN = estadoAC;

	LDRValue = analogRead(LDR);  
	Serial.print("LDRValue :  ");   
	Serial.print(LDRValue);  
	Serial.println(""); 
	delay(50); 

	if (inicio) {
	    if (LDRValue > light_sensitivity) {
	    	digitalWrite(pinRojo, LOW);
	   		digitalWrite(pinVerde, HIGH);
	   		digitalWrite(pinbuzzer LOW);
		}
		else {
			digitalWrite(pinRojo, HIGH);
			digitalWrite(pinVerde, LOW);
			digitalWrite(pinbuzzer HIGH);
			beep;
		}
	}
	else {
	    digitalWrite(pinRojo, LOW);
	    digitalWrite(pinVerde, LOW);
	    digitalWrite(pinbuzzer LOW);
	}
}

A ver si ahora trabaja bien?