Problema con la lectura Analógica enArduino Uno de una funte de 12V(Solucionado)

Hola buenas, soy nuevo en el foro, e estado buscando por google y por aquí y e encontrado algunas soluciónes que e probado, pero no me han solucionado el problema.
El problema que tengo es que, desde una fuente de alimentación de 12v y realizando un divisor resistivo, consigo una salida de 4,8 V que va a la entrada analogica de arduino. Hasta aquí bien, pero, el problema lo tengo cuando intento ver el monitor serial de esa entrada analógica que me varía mucho pero sobre todo se queda en 0 y en 1024... no se que hacer. Saludos y gracias de antemano.

Si al menos pones el código tendremos algo por donde empezar a investigar.

¿Los 4.8 que obtienes los has conectado al AREF?

PD: ¿Estás usando un potenciómetro también cierto?

Hola disculpad soy nuevo y aun no tengo claro como se hacen las preguntas aquí. Seguramente habrá un post sobre eso.
Aquí os dejo el código usado, como vereis es el mas simple para ver que leo en la entrada analógica.

int analogPin = 4;

int val;
void setup()
{
Serial.begin(9600);
}

void loop()
{
val = analogRead(analogPin);
Serial.println(val);
delay(1000);

}

En el monitor serial los valores que me da son:

1023
1023
1023
1023
1023
1023
0
0
0
0
0
0

Estos valores me los dá teniendo una tensión en la entrada analógica 4,8v medidos en el divisor resistivo.
Los 4,8v no los e conectado a AREF, ya que va a variar todo el rato porque la fuente externa que uso es de 2 a 30 v regulado por un potenciometro.

Aquí os dejo un esquema de como está conectado.

Hola, Arduino convierte las entradas analógicas a digital, para poder leerlas, con una resolución de 1024, así que el valor de entrada analógico, el sólo lo convierte a digital
para poder leerlo tú, es decir, para que tu entiendas lo que te está mostrando, tienes que convertir ese valor digital (de 0 a 1023) a un valor comprendido entre 0 y 5 , para hacerlo nada más sencillo que esto

int analogPin = A4;

int val;
float vIn;
void setup()
{
Serial.begin(9600);
pinMode (analogPin = INPUT);
}

void loop()
{
val = analogRead(analogPin);
vIn = val * (5/1024);
Serial.println(vIn);
delay(1000);

}

Así debería de funcionarte, bueno yo también estoy recien empezando con ésto, y lo mismo me equivoco en algo :wink:

Saludos

Hola. Entiendo que no te aparecen valores intermedios entre 0 y 1023. Conecta un potenciómetro de 10K entre +5v de ARDUINO y masa y pon la patilla central del potenciómetro en A4 que parece que es la que estas usando .Muévelo y comprueba si aparecen o no dichos valores intermedios. Si no es así probablemente tengas averiada dicha entrada. Verifícalo haciendo la misma prueba con otras entradas analógicas. A mi me paso algo parecido con A0 y A1, (de 0 a 8 bien, de 9 a 750 no existían, de 751 a 1023 bien). DESCONECTA SIEMPRE ARDUINO ANTES DE MANIPULAR CONEXIONES CONECTADAS A TENSION, AUNQUE SEAN INFERIORES A 5 V. El divisor que planteas parece correcto para 12 v. pero dices que utilizas una fuente variable entre 2 y 30 v. En algún momento has superado los 12v a la entrada del divisor de tensión ? Calcula siempre los divisores de tensión para que den 5v contando siempre CON LA MAXIMA TENSION QUE PODRIA RECIBIR la entrada de dicho divisor, y luego la adaptas matemáticamente mediante el software.
Saludos.

has unido el negativo de la fuente con el negativo del arduino?
Foto del montaje?

Respondiendo a Esdaba, sí e realizado el proceso con el potenciómetro conectado a los 5v de arduino y funcionan todas las entradas analógicas bien, el tema de unir el negativo de la fuente con la de arduino no lo tengo tan claro, yo tengo el arduino uno y no se en que pátillas deberia meter el negativo. saludos.

iceray:
Respondiendo a Esdaba, sí e realizado el proceso con el potenciómetro conectado a los 5v de arduino y funcionan todas las entradas analógicas bien, el tema de unir el negativo de la fuente con la de arduino no lo tengo tan claro, yo tengo el arduino uno y no se en que pátillas deberia meter el negativo. saludos.

Si estás probando las cosas en un protoboard, conecta un cable de tu negativo de la fuente hacia el canal negativo del protoboard y al mismo tiempo, uno del GND del Arduino, al mismo carril.

Sino simplemente un cable desde tu negativo en la fuente hasta GND en el arduino, o desde el mismo potenciometro, como te quede más cómodo.

1 Like

Vale finalemente ya se lo que me pasaba. Lo unico que tenía que hacer es como a dicho american2020, es meter un cable desde el negativo de la fuente de alimentación hasta el GND de arduino, en el arduino UNO, es el pin que está justo al lado de Aref.

Así ya no se vuelve loco y siempre tiene una lectura correcta.

Gracias a todos.

1 Like