Los corchetes recurrentes solo sirven para darte errores de compilación cuando te dejas uno, no influyen en el funcionamiento del programa.
Para ver con claridad qué instrucciones están dentro de una sentencia, lo mejor es usar el tabulador (indentar o identar, nunca me acuerdo del nombre concreto). Algunos editores (IDEs incluidos) insertan 2 o 4 espacios en blanco por cada tabulación.
un ejemplo en C
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
for(i=0; i <10; i++)
{
j = random(100);
if( j % 2 == 0)
{
printf("%d: esto es un numero par\n", j);
i = i * 2;
}
else
{
printf("%d: y este es un numero impar\n", j);
i = i / 2;
}
}
return 0;
}
Así se puede ver qué instrucciones están dentro de cada anidación (entre los corchetes y los tabuladores, se hace más visual).
Lo que no entiendo es que usas el for() para solo una iteración (una vuelta).
{valor = analogRead(ldrPin);
Serial.println(valor);
delay(100); }
{for(pos = 0; pos < 1; pos += 1)
{
myservo.write(pos);
delay(100);
}
}
{valor = analogRead(ldrPin);
Serial.println(valor);
delay(100); }
{for(pos = 1; pos < 2; pos += 1)
{
myservo.write(pos);
delay(100);
}
}
Como bien dice josemanu, es más claro poner;
for(pos = 0; pos < 90; pos += 1)
{
valor = analogRead(ldrPin);
Serial.println(valor);
delay(100);
myservo.write(pos);
delay(100);
}
Con eso repites el bucle 90 veces (desde 0 a 89), te queda el código más legible, usas menos espacio en la memoria del procesador y es más fácil encontrar fallos. Consejo, repásate como funcionan los bucles.
Otra cosa, ¿en esto no se te queda el código colgado?
{while(1);}}
traducido sería, "mientras 1 sea cierto", pero no le das instrucciones para hacer nada, teoricamente, se quedaría ahí en un bucle infinito, esto no lo necesitas, las instrucciones están dentro del "void loop()", con lo que se repetirán constantemente.