Aquí está la situación: tengo un Arduino mega 2560 y estoy tratando de hacerlo analogRead
desde 2 pines diferentes.
código:
void setup()
{
pinMode(A0, INPUT);
pinMode(A15, INPUT);
Serial.begin(9600);
}
void loop()
{
Serial.print("0:");
Serial.print(analogRead(A0));
Serial.print(" 15:");
Serial.println(analogRead(A15));
}
El voltaje que estoy tratando de medir es el suministro de arduino de 3.3V conectado directamente al pin de entrada del ADC y el resultado que obtengo varía según la conexión de las entradas:
Ambas entradas flotantes:
A0 : 376
, A15 :376
A0 conectado, A15 flotante:
A0 : 771
, A15 :655
A0 flotante, A15 conectado:
A0 : 409
, A15 :696
A0 conectado, A15 conectado:
A0 : 782
, A15 :780
¿Cuál es la causa de esta fluctuación?
Como dijo el usuario alexan_e en los comentarios, tienes estos problemas porque tus pines de entrada analógica están flotando.
Nunca deje ningún pin de entrada flotando si es posible. Con E/S digital, esto podría conducir a un mayor consumo de energía. Este problema no aparece con la E/S analógica, sin embargo, se encontrará con otros problemas como el que describió. Eche un vistazo a esta pregunta para ver otras razones para evitar dejar que los pines de entrada floten.
Lo que le sugiero es que todas sus entradas, especialmente las que le interesan, tengan un camino a un voltaje conocido a través de alguna resistencia; a menudo, una resistencia desplegable es la respuesta, pero eso generalmente depende de lo que está tratando de hacer. lograr. El tamaño de esta resistencia depende de la impedancia del circuito de conducción y el ruido, pero generalmente entre 10K y 1M ohmios; los valores más bajos son buenos para el ruido, los valores más altos son buenos para maximizar la impedancia de entrada y la respuesta de baja frecuencia para los circuitos acoplados de CA.
usuario36976
joe hass
usuario36976
alexan_e
usuario36976
alexan_e
usuario36976
pedro bennett
usuario36976
alexan_e
usuario36976
pedro bennett
usuario36976
alexan_e
johan
usuario36976