Go Down

Topic: leer voltajes (Read 5543 times) previous topic - next topic

jordi-exa

Hola buenas, soy nuevo con arduino y no se como hacer que arduino, me lea unos valores de voltaje, es decir, yo tengo unos voltajes que van de 0 a 5v, y necesito realizar una lectura constante de esos valores, para hacer una comparativa, ya que esos valores representan una equivalencia de watios.

chiva

Para leer voltajes usa la función analogRead conectando el cable del que quieras leer el voltaje a una de las entradas de la zona 'Analog In'
http://www.arduino.cc/es/Reference/AnalogRead

Te devuelve un valor de 0 a 1023, siendo 0->0V y 1023->5V

Un saludo y bienvenido al foro
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

jordi-exa

Muchas gracias Chiva, lo pruebo esta noche...

De verdad muchas gracias por orientarme...

chiva

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

jordi-exa

Hola Chiva, he probado lo que me has comentado y va perfecto.

Ahora tengo otra duda, tengo el lcd-keypad, utilizo la librería LCD4Bit_mod lcd, cuando intento representar el valor de la lectura del pin 3, me sale el caracter, o me dice que la variable no es char.

He probado lo siguiente:

int analogPin = 3;     // el pin analógico 3 conectado al dial de un potenciómetro (terminal central del potenciómetro)
                      // los terminales exteriores del potenciómetro conectados a +5V y masa respectivamente
int val = 0;           // declaración de la variable en la que se almacenará el valor leído por el conversor.

void setup()
{
 Serial.begin(9600);          //  Inicialización del modulo Serial.
}

void loop()
{
 val = analogRead(analogPin);    // lee el valor de tensión del pin
 Serial.println(val);             // envía el valor leido vía serial.
}

para que me lea del pin 3 el voltaje.

Para que me imprima en el lcd:

Inicio el lcd y le pongo lo sguiente:

lcd.print(val); //ME SALE EL CARACTER QUE REPRESENTE LA VARIABLE VAL, PERO NO ME SALE POR EJEMPLO 1023.

lcd.printIn(val); //CUANDO LE DIGO UPLOAD AL ARDUINO ME DICE LO SIGUIENTE:
error: invalid conversion from 'int' to 'char*

Me puedes ayudar??

Te cuento un poco mi proyecto... Estoy intentando hacer un menú, en el cual el usuario pueda seleccionar diferentes opciones, cambiar datos y leer datos, de perifericos conectados. Por ejemplo, tengo una placa de una alarma, que envía un voltaje de 0 a 5, dependiendo de los diferentes estados, pues bien la idea es que cuando, el usuario pulse en ver parametros, al cliente le aparezca el estado, consultando previamente dicha lectura.

No se si me he explicado muy bien o no, espero que me entiendas o que me entiendan.

Un saludo y gracias!!!!

chiva

Pues a mi me compila y funciona perfectamente con lcd.print(val)
Mira a ver si puedes poner todo el código, si es muy largo usa http://pastebin.com/ y luego pones aquí el link.

Un saludo
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

caramono

igual digo una tonteria, pero no sera...

has puesto:
lcd.printIn(val);         con I ?

no es print.Ln(val); ? como en serial.printLn() ?

chiva

Ya me perdonarás, no me había fijado en eso

¿El comando printIn que se supone que hace? No lo encuentro en ningún sitio.
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

jordi-exa

#8
Jun 24, 2010, 08:45 pm Last Edit: Jun 24, 2010, 08:46 pm by jordi-exa Reason: 1
Buenas... Perdonado estas, no hace falta que pidas perdón, pues por lo que he podido ver el lcd.printIn("variable") imprime solo texto o caracteres, pero no variables definidas como int, sino como char.

Pues no dices ninguna tontería, para que me represente el valor, tiene que ser "L".

Por cierto, si los valores fueran mayor que 5v por ejemplo 12, la proporción sería la misma, que cada paso sería de 0,0049 voltios. Y si fuese un voltaje negativo por ejemplo -5v sería lo mismo???

De nuevo muchas gracias!!!

jordi-exa

Lo estaba probando y me dice lo siguiente:

error: 'class LCD4Bit_mod' has no member named 'printLn'.

Me dices que a ti te funciona??


chiva

Dime que versión de Arduino estás usando y qué librería usas para comunicar con el LCD (lo que pones al principio en #include)
Aunque como te he dicho antes, te agradecería que pusieras todo el código, pero eso es ya tu decisión.

Y otra, ¿que se supone que tiene que hacer printIn y por qué lo usas?
Por lo que has escrito, printLn no existe y printIn si, y como te he dicho en el anterior post a mi me funciona lcd.print(val) y me escribe en la LCD el número de 'val', si es un int de valor 1015, escribe '1015'.

Por otra parte, las entradas del Arduino, solo aceptan hasta 5V, por lo que 12V no lo podrías poner directamente a no ser que usaras un divisor de tensión, pero perderías resolución cuanto más voltaje quieras medir.
Y lo mismo con negativos, tendrías que invertir la polaridad, pero rara vez se usan voltajes negativos a excepción de alimentaciones.

Un saludo y de nada
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

karagos

hola me acabo de comprar el mismo lcd con teclado que ustedes y no tengo ni idea de como funciona me pueden indicar donde encontrar algun manual. o como controlar los botones que bienen integrados.

Heke

Perdonar...

¿No habreis puesto   "printLn"???

Que debe ser en minusculas:

  Serial.println
 
  Serial.println(val)

Mirar este enlace o la reference del IDE:
  http://arduino.cc/en/Serial/Println
CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Go Up