Ayuda con programa matriz

Buenas! Tengo un problema con un codigo que no lo puedo resolver, soy novato en esto :confused: .
Supuestamente el codigo es facil, tengo, en mi placa, un sensor que manda numeros constantemente a una pata analogica de mi arduino, si el numero que recibe la pata analogica esta entre determinados valores entonces se tiene que prender un led, de caso contraria no se tiene que prender o si ya estaba prendido, que se apague.

void setup(){
Serial.begin(9600);
pinMode(10,OUTPUT); --> positivo del led
pinMode(12, OUTPUT); --> Otra masa que iria a otro led (estoy usando una matriz)
pinMode(11, OUTPUT); --> Otra masa que iria a otro led
pinMode(A5, OUTPUT); --> Otra masa que iria a otro led
pinMode(A3, OUTPUT); --> Masa del led
}

void loop(){

digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
digitalWrite(A5, HIGH);
digitalWrite(A3, HIGH);

if ((analogRead(A2)) > 540 and (analogRead(A2)) < 556);
{
digitalWrite(A3, LOW);
digitalWrite(10,HIGH);
delay(1000);

}
}

El programa carga por lo que supongo que la sintaxis del codigo esta bien, pero cuando lo conecto el led se queda prendido TODO el tiempo.
-Tambien tenia otra duda, si es que se puede hacer esto con un while.

Saludos y muchas gracias de ante mano!! :grin:

驴esquema y sensor?

Se queda encendido porque se enciende cuando la condici贸n se cumple y en ning煤n sitio le dices que se apague si no se cumple

If condicion se cumple{
LED encendido}
else{
LED apagado}

tu c贸digo es muy raro y hasta no tiene sentido.
No voy a pasar por encima de Jopapa asi que solo dir茅 esto

para que en el loop poens

 digitalWrite(A3, HIGH); // Prendes led en A3
 
if ((analogRead(A2)) > 540 and (analogRead(A2)) < 556) { 
聽 digitalWrite(A3, LOW);聽 聽 聽 聽 聽 聽 聽 // si esta entre 540 y 556 lo apagas pero inmediatamente despu茅s lo enciendes
}

Luego comentes errores en tu c贸digo.
Esto no guarda relaci贸n con lo que activas luego

聽 digitalWrite(12, HIGH); 
聽 digitalWrite(11, HIGH); 
聽 digitalWrite(A5, HIGH);
聽 digitalWrite(A3, HIGH);

esto esta mal escrito

if ((analogRead(A2)) > 540 and (analogRead(A2)) < 556);

debe ir asi

if ((analogRead(A2)) > 540 && (analogRead(A2)) < 556){

y sigue con lo que tienes