Pages: [1]   Go Down
Author Topic: Pregunta facil...leen mal los analog pins??  (Read 1323 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1413
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola a todos, he perdido muchas horas peleando con un proyecto y creo que todas la lecturas estan mal porque los analog pins de mi arduino estan estropeados.

Me muestran esto, estando la placa sin nada conectado, solo el USB:

high
A0   999.00    A1   997.00    A2   41.00    A3   995.00    A4   988.00    A5   988.00
LOW
A0   872.00    A1   767.00    A2   41.00    A3   127.00    A4   988.00    A5   987.00

y esto conectado el negativo a cada uno de los analog pins:

LOW
A0   0.00    A1   0.00    A2   30.00    A3   0.00    A4   975.00    A5   971.00

creo que los unicos que funcionan son A0,A1 y A3.

que pensais?


puedo cambiar el chip por uno nuevo y meterle el bootloader facilmente? solucionaria algo?

ah y otra cosa, cual es la web mas recomendada para comprar arduinos y placas sensores para arduino? con el menor gasto de envio posible.
muchas gracias
« Last Edit: January 19, 2011, 01:15:04 pm by Gixxer » Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

0
Offline Offline
Newbie
*
Karma: 0
Posts: 5
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Muy buenas,
eso es normal si la alimentación se hace por USB o con una fuente no estabilizada, vamos que no sea conmutada.
Prueba a darle tensión con una bateria o tensión conocida, no tendras ese problema.
Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1413
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas tocayo!

tengo el arduino conectado con una fuente de alimentación externa.

ademas, porque hay 3 pines que muestran lo que toca, y los demas "haciendo lo mismo" muestran valores intermedios?

si conecto 5v a los pines analogicos, 3 de ellos muestran 1023 (como toca) y el resto muestra numeros intermedios. idem conectando a negativo da 0.

no es muy normal,no?
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

0
Offline Offline
Jr. Member
**
Karma: 5
Posts: 72
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

En el blog de Adafruit comentan algo sobre esto, de ahí enlazan a su foro (http://forums.adafruit.com/viewtopic.php?f=25&t=11597#p55185) y dicen:

The problem is that the Atmega on the Arduino has one ADC that is multiplexed for all the analog pins.
When you do an analogRead(), a multiplexer connects the pin you are reading to the ADC. This works fine for low impedance voltage sources.

It takes time for a high impedance sensor like your temperature sensor to change the voltage at the ADC after this switch of pins. Temperature sensors must use low power and thus be high impedance to avoid IR heating.

Try the following:


Code:


      analogRead(5);
      delay(10);
      nTemp = analogRead(5) * 5000L / 1024L  / 10;
The first analogRead(5) will switch the pin to the ADC. The delay will allow the voltage at the ADC to stabilize and the second analogRead(5) should get a stable value.

Traducido: haz dos lecturas por puerto y un delay entre ambas, el valor que debes quedarte es el de la segunda.
Logged

Pages: [1]   Go Up
Jump to: