Recibo datos extraños de mi sensor LDR.
Sin cambios significativos en la luz, pasa constantemente de 0 a su valor máximo de 1023 y viceversa.
¿Cual podría ser el problema? ¿Es posible que mi sensor LDR esté roto?
Código:
int ldr = 0; //analog pin to which LDR is connected
int ldr_value = 0; //variable to store LDR values
void setup()
{
Serial.begin(9600); //start te serial monitor
}
void loop()
{
ldr_value = analogRead(ldr); //reads the LDR values
Serial.println(ldr_value); //prints the LDR values to serial monitor
delay(1000); //wait
}
Producción:
0
0
0
0
0
26
102
206
349
505
643
813
957
1023
1023
1023
964
821
633
434
249
83
0
0
0
0
etcétera
Esto sugiere que no lo conectó correctamente. Supondré que tiene su LDR conectado a tierra y la resistencia en serie que forma el divisor a Vcc. Si el valor es cero, eso significaría que la resistencia del LDR es menos de 1/1000 de la resistencia en serie. Eso es posible. Pero entonces el 1023 no es posible, porque eso significaría que la resistencia del LDR es mayor que 1000 veces la resistencia en serie, y los LDR no tienen un rango de > 1000 000 entre la resistencia clara y oscura.
Si tiene un multímetro, mida la resistencia a la luz y la oscuridad del LDR y elija una resistencia en serie entre esos valores. La resistencia en serie va entre Vcc y la entrada del ADC, la LDR entre la entrada del ADC y tierra.
editar
Dices que el pin no estaba conectado, y aun así tienes estas variaciones de entrada. Si los graficas, obtienes un seno perfecto:
No es imposible que el ADC recogiera esto del ruido que irradia la red eléctrica. El seno es mucho más lento que la frecuencia de la red, pero ese es un artefacto que puede obtener con el submuestreo.
stevenvh
niño