Lector de potenciometro.

Hola a todos :D! Estoy haciendo algunos enredos mezclando arduino y delphi (bendito sea el blog de thePinguinCult) y haciendo un programa que me lea los datos de un potenciometro variable tengo el problema de que no se exactamente que informacion me manda el potenciometro. Mi codigo es el siguiente: int pin = 0; // analog pin int valor = 0; void setup() {

Serial.begin(9600); // start serial communication }

void loop() { valor = analogRead(pin); Serial.print(valor,DEC); valor = 0; delay(250); // delay before loop }

Exactamente, con el analogRead: ¿Que estoy leyendo y despues enviando en notacion decimal?

http://www.arduino.cc/es/Reference/AnalogRead

sube el delay a 2000, y abre el serial monitor del ide arduino. ;)

Hola,

Los puertos analógicos del Arduino tienen una resolución de 10 bits, es decir, si en las conexiones de la resistencia del potenciómetro pones 5V y masa lo que estás leyendo en la conexión del centro es un valor numérico que es cero para cero voltios (potenciometro en el extremos de la masa) y 1024 para 5V (potenciómetro en el extremo de 5V)

Si multiplicas el valor que te da el Arduino *5/1024 tienes el voltaje en la pata central.

Si el potenciómetro es de 270 grados si multiplicas el valor por 270/1024 tienes los grados desde el origen.

http://www.zigbe.net/

Siento la tardia respuesta, muchisimas gracias por vuestra ayuda :D. Mañana por la mañana lo pongo en practica sin falta. Por cierto zigbe31416: ¿Por que hay que multiplicarlo por cinco? Lo siento si es una evidencia, pero no la veo :S.

Al dividirlo por 1024 tienes el tanto por 1, pero como el máximo voltaje de conversión es de 5V, lo multiplicas por 5

Ej.

512/1024 = 0,5 = 50% 0,5 * 5 = 2,5V O el 50% de 5V = 2,5V

Un saludo

Vale, ahora tiene sentido, es que habia entendido que el valor 1024 se daba cuando se llegaban a los 5V... y yo comiendome la cabeza... :P.

Gracias por la respuesta :P.

Cuando pones 0V, lees un 0 y cuando pones 5V lees 1024 Los valores intermedios, sabiendo que es lineal, los sacas por interpolación

Siguiendo con el ejemplo de mi anterior post:

1024/1024 = 1 ó 100% 1 * 5 = 5V 100% de 5V = 5V

Perdon, se me va la cabeza. Basicamente es una regla de tres ¿no?
Si a 5V le corresponden 1024 (lo que sea, no se si tiene unidad) a xV le corresponden Y (lo que sean). Ej:

5V → 1024
2.5V → X

X = 2.5 * 1024 / 5 = 512

¿Cierto?

Si, parece que estoy hoy un poco espeso :-/

No te equivoques, aqui el espeso mental soy yo ;P. Ya esta todo arreglado y funciona perfecto :D.

Gracias a todos por la ayuda ;P.

Aunque ya llego tarde y veo que te han respondido hago un pequeño apunte por si posteriormente alguien tiene el mismo problema y busca en los foros.

hay dos tipos de potenciómetros, lineales y logarítimicos, en un potenciómetro lineal la tensión varía linealmente con la posición, pero en un logarítmico no.

http://www.zigbe.net/

Ok, me lo anoto :P. No se que tipo de potenciometro tengo la verdad.. ¿Hay alguna manera de saberlo (sin tener que ir a la tienda a preguntarlo)?

Si a la mitad de recorrido, te da la mitad de voltaje de alimentación, es lineal, si no, es logarítmico. Si no dices nada al comprarlo te los dan lineales, por lo que casi seguro tendrás uno de ellos.

Puede que de la casualidad de que en ambos casos el 50% esté en la mitad del recorrido, pero no creo que estén diseñados así. De todas maneras, para estar seguro, conéctale un voltímetro y varía la posición y así ya casi seguro que sales de dudas.