Arduino lecturas incorrectas de pin analógico

5

Uno de mis pines analógicos, A0, en mi Arduino Uno, no está dando resultados totalmente precisos. Cuando uno de los otros pines hará un 0-1023 completo en un caso de uso determinado, el pin del problema solo parece tener una salida de alrededor de 50-730.

¿Este pin está recibiendo interferencia de alguna manera, o quizás está defectuoso?

    
pregunta Adam Dally

6 respuestas

4

El chip es defectuoso, diría yo. Todos los pines de entrada analógicos unidos entre sí producen resultados consistentes, excepto para A0. Los chips se calientan cuando se enfocan en la lectura A0; esto podría ser un voltaje excesivo / insuficiente en la entrada, pero esto se ha descartado en la prueba anterior. Esto podría haber ocurrido a través de una descarga estática o podría ser un fallo aleatorio: estas cosas son muy raras en mi experiencia, pero sucederán de vez en cuando para alguien.

Si anteriormente ese pin se usaba como salida (no estoy muy familiarizado con Arduinos) tal vez se estresó demasiado de alguna manera. Siendo que es A0 (y no A1, 2, 3, etc.) lo que ha fallado, me hace sospechar una encarnación previa de su uso, pero esto también es una posibilidad remota.

Compre uno nuevo, creo que es el mejor consejo o conviva con el pin defectuoso si puede evitar usarlo. Si también se duplica como una salida digital, ¿quizás puedas probar si ese lado de las cosas todavía funciona?

    
respondido por el Andy aka
4

Me encontré con el mismo problema, intenté leer la entrada de voltaje en A0 y A1 (solo para ver si A0 era malo) y obtenía valores más altos de lo esperado.

3.6 en lugar de 3.4

entonces la línea

voltage = sensorValue * (5.0 / 1023.0);

no generaba el valor correcto

Mi Arduino mega 2560 estaba siendo alimentado por Rasberry Pi a través de USB

Solución:

Suministre a su tarjeta arduino una entrada de CC regulada y no confíe en la alimentación USB para sus tarjetas de 5v o 3.3v.

    
respondido por el jacobsgriffith
1

El problema puede estar relacionado con su placa Arduino Uno específica, no con el microcontrolador.

Con la alimentación apagada, verifique la resistencia entre el pin A0 y el pin GND, y el pin A0 y Vcc, respectivamente.

Si cualquiera de los dos parece ser corto o (lo más probable) es una resistencia baja, examine la traza A0 con una lupa o un microscopio para detectar una soldadura corta en algún lugar.

El calentamiento de la placa, y las lecturas inferiores a las esperadas, llevan a una posible conclusión de algún tipo.

    
respondido por el Anindo Ghosh
1

Tuve algo similar. Una entrada analógica mostraba un valor constantemente extraño en comparación con las otras tres entradas analógicas que estaba usando. Todas las medidas de resistencia están bien.

Utilicé una resistencia de ajuste (control deslizante) que aplica el voltaje de referencia ATmega2560 a las entradas ADC. No tengo idea de por qué, pero esto solo funcionó en 3 de los 4 ADC.

Luego utilicé el suministro de 5 V en el control deslizante y, por sorpresa, todas las lecturas fueron como se esperaba. No tengo idea de lo que salió mal allí. Leeré la especificación del Vref, pero tal vez no encuentre esta página más adelante ... por si acaso ...

    
respondido por el Mike Rabit
1

Tuve un problema con el arduino uno donde el valor bruto de A / D solo iría a 1022. La placa estaba alimentada por USB. Cuando cambié a una fuente de alimentación externa configurada a 6 V, se solucionó el problema.

    
respondido por el Jim T
0

El condensador de desacoplamiento lo arreglará por usted. Coloque uno a través de los rieles + y - en la placa de pruebas antes de los pines que utiliza para accionar el joystick. Cuidado con la polaridad para que no te des un booboo. 100uF por lo general hace el truco y el truco es que suaviza los picos de voltaje, por lo que su joystick disparará lecturas basadas en el voltaje normalizado.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el yazjack

Lea otras preguntas en las etiquetas