Estoy leyendo dos valores de entrada analógica (sensores de luz, con resistencias desplegables) en un Arduino MEGA 2560.
Se supone que un pin informa del valor 0, mientras que otro pin reporta un valor de ~ 800. Lo sé con seguridad, porque si mi boceto lee SOLO uno de estos pines, eso es lo que obtendré.
Si intento leer ambos valores en un bucle, entonces el primer pin parece estar influenciado por el segundo pin en su lectura, y es mayor que 0. Sé que es una buena práctica llamar al comando analogRead () dos veces o para poner un pequeño retardo entre el cambio analógico- input-pin-reads para dar al ADC la oportunidad de stabilite . Pero, incluso si llamo analogRead () dos veces Y le doy un valor de retraso de 1 segundo (!!), el primer pin todavía me da una lectura más alta de lo que debería.
bucle solo leyendo el pin 1:
pin 1 = 0pin de lectura de bucle 1 + 2, sin demora entre llamadas:
pin 1 = 20, pin 2 = ~ 800lectura de bucle pin 1 + 2, llamando a analogRead dos veces:
pin 1 = 6, pin 2 = ~ 800pin de lectura de bucle 1 + 2, con retardo (1000):
pin 1 = 6, pin 2 = ~ 800
Intentando entender lo que está pasando ...
Aquí está el código más simple para probar esto
int sensor[2];
void setup() {
Serial.begin(9600);
}
void loop() {
for (int i = 0; i < 2; i++) {
analogRead(i); // read pin twice and ignore first result
sensor[i] = analogRead(i);
delay(1000); // give long delay to let ADC stabilize
}
Serial.println(sensor[0]);
Serial.println(sensor[1]);
}
Aquí hay un esquema simplificado que muestra cómo se conecta 1 sensor ( TEMT6000 foto transistor) al pin analógico . Tiene una resistencia desplegable para evitar valores flotantes aleatorios en caso de que no se conecte ningún sensor. La resistencia de bajada es tan alta (220K) para permitir lecturas con poca luz. Los cables de los sensores funcionan en paralelo con los cables que alimentan un LED. Lo he incluido, por si acaso. Pero, tenga en cuenta que en todas las pruebas enumeradas anteriormente, el LED no estaba encendido.
Ahora multiplique esa configuración por 8. Como tengo 8 unidades de sensor conectadas a 8 pines analógicos.