Funcion map devuelve valores incorrectos

estoy empezando con Arduino ahora y tenia la intencion de hacer un sensor de luz para un led.
después de poner la función map y abrir el monitor me aparece valores más grandes que 1024 y 255. ya cambié el orden de esos valores en la función y pasa lo mismo. después no se que hice que me retornó valores negativos. les dejo el código que hice hasta ahora. les agradezco mucho si pueden ayudar.
#define azul 3
#define blanco 5
#define rojo 6
void setup(){
Serial.begin(9600);
pinMode(azul, OUTPUT);
pinMode(blanco, OUTPUT);
pinMode(rojo, OUTPUT);
}
void loop(){
long ldr = analogRead(A0);
long digital = map(ldr, 0, 1024, 0, 255);
Serial.println("analogico" + String(ldr) + "/digital" + String(digital));
}

y esto me esta retornando el monitor
analogico994/digital247
analogico995/digital247
analogico995/digital247
analogico995/digital247
analogico995/digital247

Por favor corrige tu post, pon el código y los resultados según las Normas del foro.

El resultado obtenido es correcto para un valor de lectura 994.

Tanto ldr como digital deberían ser tipo int ya que es el tipo que devuelven analogRead() y map().

El límite en map() debería ser 1023 ya que ese es el máximo valor que puede entregar analogRead().

Saludos