0
Offline
Newbie
Karma: 0
Posts: 6
Arduino rocks
|
 |
« on: June 23, 2010, 09:33:37 am » |
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.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 22
Posts: 1373
|
 |
« Reply #1 on: June 23, 2010, 09:47:28 am » |
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/AnalogReadTe devuelve un valor de 0 a 1023, siendo 0->0V y 1023->5V Un saludo y bienvenido al foro
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 6
Arduino rocks
|
 |
« Reply #2 on: June 23, 2010, 10:47:32 am » |
Muchas gracias Chiva, lo pruebo esta noche...
De verdad muchas gracias por orientarme...
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 22
Posts: 1373
|
 |
« Reply #3 on: June 23, 2010, 11:23:23 am » |
De nada hombre!
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 6
Arduino rocks
|
 |
« Reply #4 on: June 23, 2010, 06:15:31 pm » |
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!!!!
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 22
Posts: 1373
|
 |
« Reply #5 on: June 24, 2010, 02:27:45 am » |
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
|
|
|
|
|
Logged
|
|
|
|
|
Valencia, España
Offline
Newbie
Karma: 0
Posts: 49
Arduinomaniaco
|
 |
« Reply #6 on: June 24, 2010, 07:51:14 am » |
igual digo una tonteria, pero no sera...
has puesto: lcd.printIn(val); con I ?
no es print.Ln(val); ? como en serial.printLn() ?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 22
Posts: 1373
|
 |
« Reply #7 on: June 24, 2010, 08:48:09 am » |
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.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 6
Arduino rocks
|
 |
« Reply #8 on: June 24, 2010, 01:45:16 pm » |
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!!!
|
|
|
|
« Last Edit: June 24, 2010, 01:46:30 pm by jordi-exa »
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 6
Arduino rocks
|
 |
« Reply #9 on: June 24, 2010, 01:53:09 pm » |
Lo estaba probando y me dice lo siguiente:
error: 'class LCD4Bit_mod' has no member named 'printLn'.
Me dices que a ti te funciona??
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 22
Posts: 1373
|
 |
« Reply #10 on: June 24, 2010, 06:50:19 pm » |
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
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Jr. Member
Karma: 0
Posts: 68
Arduino rocks
|
 |
« Reply #11 on: October 30, 2010, 05:01:29 am » |
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.
|
|
|
|
|
Logged
|
|
|
|
|
Spain
Offline
God Member
Karma: 16
Posts: 829
Arduino rocks
|
 |
« Reply #12 on: October 30, 2010, 05:15:58 am » |
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
|
|
|
|
|
Logged
|
|
|
|
|
|