Go Down

Topic: leer voltaje (Read 24079 times) previous topic - next topic

dewasha

hola, me gustaria saber como es posible mediante una entrada analogica del arduino medir voltajes superiores a 5v ya que he estado leyendo y si de 0 a 5v es capaz de leer pero si quiero leer hasta 12v como hago? y luego leyendo la variable me he dado cuenta de que te lo espresa de 0 a 1023 pero y eso como lo convierto de nuevo en voltios?

gracias

AntonioT

Tal vez te sea de utilidad este mensaje: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1289288137

ICEMAN

Hola, quizás con un divisor  de tensión ....

tipo R1 = 100 k     R2 = 200 k.....

mírate este post (es de "nuestros primos" PIC's ) quzás te sirva

http://www.ucontrol.com.ar/forosmf/proyectos-con-pic/como-medir-0-12v-con-el-adc-de-un-pic/

Únicamente decirte lo de siempre, antes de "darle" caña, prueba con un tester a ver que te sale .... después un escalar y ya está

Saludos.!!!! ;D

dewasha

he leido los dos y nada complicadisimo lo veo y encima esta el tema que incluso onque consiguiese medirlo luego nose como hacer para que el arduino no mueste de 0 a 1024 sino de 0 a 12v

chiva

Tan sencillo como esto:

byte voltaje = map(analogRead(0), 0, 1024, 0, 12);

Aunque puedes obtener una resolución 10 veces mayor con:

byte voltaje = map(analogRead(0), 0, 1024, 0, 120);

donde 120 sería 12,0 voltios

Un saludo

dewasha

sencillo???? jajajaj ni de coña no entendi el funcionamiento en absoluto xd si puedes explicarme un poko en que consiste para la proxima vez no tener que pedir ayuda please? esq si no entiendo como funciona otro dia estare = que hoy...

dewasha

de todas maneras te reiras de mi pero nose en que parte del skecht poner esa linea...

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);    // AQUI???
 Serial.println(val);             // envía el valor leido vía serial.
}

chiva

Acuérdate que tienes todas las funciones explicadas en la referencia, por eso no la expliqué:
http://arduino.cc/es/Reference/Map

Podrías poner algo así:
Code: [Select]

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 = map(analogRead(0), 0, 1024, 0, 120);
   Serial.println(val);             // envà a el valor leido và a serial.
}

Un saludo

dewasha

jajaja si en ello toi! leyendo las referencias es como he aprendido a leer el valor pero de comvertirlo no se habla nada... y creo que esto es algo basico al menso de 0 a 5v que no expliquen como hacer con mas de lo que el arduino trabaja lo entiendo pero vamos hay cosas basicas que deberian estar ya includas en las referencias para no tener que estar molestando con cosas tan basicas en el foro.

muchas gracias voi a ver que tal funciona onque no entiendo en absoluto donde se hace la conversion... solo que 0 y 1024 son minimo y maximo y luego aparece 0 y 120 que nose que demonios hacen en al variable sin decirlo que lo transforme ni multiplique ni na de na... o muy listo es o algo me perdi xd

un saludo

dewasha

#9
Nov 16, 2010, 12:26 am Last Edit: Nov 16, 2010, 12:27 am by dewasha Reason: 1
bueno para empezar por algo basico sin arriesgar el arduino comence uçcon una bateria de movil de 4,5v de litio la cual en el polimetro me da 4,50 4,49 y el arduino me dice 453 lo cual es bastante preciso. pero ahora viene otra pregunta como hago para separar los enteros de los decimales? es decir en vez de 453 que marque 4,53? y luego he intentado decirlo que detras va una v pero me da error con lo cual no se como acompañar ese valor con texto delante o detras...

el codigo que estoi usando este para la bateria de 4,5v:

Code: [Select]
int analogPin = 0;     // el pin analogico 0 conectado al dial de un potenciometro (terminal central del potenciometro)
                     // los terminales exteriores del potenciometro conectados a +5V y masa respectivamente
int val = 0;           // declaracion de la variable en la que se almacenará el valor leido por el conversor.

void setup()
{
   Serial.begin(9600);          //  Inicializacion del modulo Serial.
}

void loop()
{
   val = map(analogRead(0), 0, 1024, 0, 500);
   Serial.println(val);             // envia el valor leido via serial.
   delay(1000);
}

AntonioT

Aquí tienes un ejemplo completo para utilizar Arduino como polímetro: http://vlxs.wordpress.com/2009/12/18/arduino-lcd-battery-tester/#more-384
espero que te sea de utilidad.

ASTROCAR

Mas claro no canta un gallo asi que esta todo bien comentado y claro gracias por el link.

Saludos.
Atten.
Alexander Santana.
Venezuela-Barcelona.

dewasha

muchas gracias la verdad esq de hay se puede sacar todo lo necesario para cada uso la cuestion es xq demonios cuesta tanto encontrarlo ya que he biuscado entre cientos de webs y en español pokisimo y encima nada claro y sencillo y no entiendo xq no aparecio en la buskeda esa web....

no podria meterse en la zona playground? creo que vendria genial pero nose si es legal ni posible ni nada asiq los que entendeis un poko mas aver si me lo confirmais y si eso la subo o la subis o lo que sea pero esa web debe de ser accesible ya que creo q es de mucha utilidad y encima mucha gente pierde el tiempo preguntando lo mismo que yo.

chiva

Cambia el tipo de variable a real y divide entre 100

dewasha

chiva me kedo a cuadros... cambia la variable a real y divide entre 100 (no me entere de nada de nada) que variable y xq entre 100 y no entre 1024 que es lo que el arduino distingue.... bueno y lo de cambiar a real tampoko entiendo que es...

gracias

Go Up