Cientificosaficionados.com

Los foros de los científicos aficionados de la red.
Fecha actual Jue Nov 21, 2019 12:59 am

Todos los horarios son UTC [ DST ]




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
NotaPublicado: Jue May 30, 2019 6:28 pm 
Desconectado
Avatar de Usuario

Registrado: Jue Dic 03, 2009 3:46 pm
Mensajes: 225
País: España
Ciudad: Sevilla
Hola buenas tardes,

Estoy con un proyecto donde mido dos señales una de temperatura y otro de un alcoholimetro (MQ3), y quisiera sabes si desde arduino puedo emplear dos tensiones de ref, es decir la INTERNAL (1,1v) Y DEFAULT (5v).

He probado con algo parecido a esto.
void mide(){
analogReference(INTERNAL);
delay(100);
VAL = analogRead(SENSOR);
delay(100);
tempSENSOR = analogRead(TEM);
MAPEO = VAL;
if(MAPEO < MAYOR){// esto sirve para que el valor nunca descienda
Serial.print("% Máximo Alcohol detectado: ");
Serial.print(MAYOR);
Serial.print(" temperatura: ");
Serial.println(temperatura);
MAYOR = MAPEO;
}else{
Serial.print("% Máximo Alcohol detectado:: ");
Serial.print(MAPEO);
Serial.print(" temperatura: ");
Serial.println(temperatura);
MAYOR = MAPEO;
}
delay(1000);
}

Solo considera el primero ( analogReference(INTERNAL)), es decir los 1.1V.

Alguna recomendación????, gracias.

Saludos.


Arriba
 Perfil  
 
NotaPublicado: Jue May 30, 2019 8:58 pm 
Desconectado
Avatar de Usuario

Registrado: Mar May 26, 2009 9:39 pm
Mensajes: 6269
Ubicación: Palma de Mallorca (España)
Creo recordar que puedes usar las dos internas y una externa, pero no simultaneamente; además puedes sacar los 5V del regulador o 3v3 según el caso, si usas la externa, tienes mas opciones que esas, por ejemplo todos llevan un led; ahí tienes una tensión relativamente estable. Todo esto sin componentes adicionales.

_________________
Constitución Española:
Todos los españoles tienen el deber de trabajar y el derecho al trabajo.
Todos los españoles tienen derecho a disfrutar de una vivienda digna y adecuada.
y ...han pasado del gris al amarillo, con la mala suerte que trae este color.


Arriba
 Perfil  
 
NotaPublicado: Jue May 30, 2019 9:45 pm 
Desconectado
Avatar de Usuario

Registrado: Mié Sep 06, 2006 7:28 am
Mensajes: 1453
Ubicación: Alcala de Henares (Madrid, España)
País: España
Ciudad: Alcalá de Henares
En principio puedes cambiarlas al vuelo, pero en el programa que has puesto SOLO usas una, la de 1.1V.

Lo mejor es que uses solo esa referencia y escales la entrada de 5V a 1.1V con un divisor reistivo.

En general, para los convertidores A/D, lo mejor es usar una referencia de tensión lo más baja posible para no tener que amplificar entradas.
Luego las entradas que tienen niveles superiores al de referencia se escalan mediante divisores resistivos. Además así aumentas la impedancia de entrada del A/D (los de arduino tienen una impedancia bastante baja y he tenido probemas con sensores que entregan poca corriente).

_________________
¡No es imposible, lo que pasa es que no sabes como hacerlo!
Aka: no es difícil si sabes como.
http://heli.xbot.es


Arriba
 Perfil  
 
NotaPublicado: Vie May 31, 2019 12:04 am 
Desconectado
Avatar de Usuario

Registrado: Jue Dic 03, 2009 3:46 pm
Mensajes: 225
País: España
Ciudad: Sevilla
Gracias Heli y Rovellat, comentaros que me confundí este era el programa que solo me coge

void mide(){
analogReference(EXTERNAL);
delay(100);
VAL = analogRead(SENSOR);
delay(100);
analogReference(INTERNAL);
tempSENSOR = analogRead(TEM);
MAPEO = VAL;
if(MAPEO < MAYOR){// esto sirve para que el valor nunca descienda
Serial.print("% Máximo Alcohol detectado: ");
Serial.print(MAYOR);
Serial.print(" temperatura: ");
Serial.println(temperatura);
MAYOR = MAPEO;
}else{
Serial.print("% Máximo Alcohol detectado:: ");
Serial.print(MAPEO);
Serial.print(" temperatura: ");
Serial.println(temperatura);
MAYOR = MAPEO;
}
delay(1000);
}

Me interesa que la temperatura tenga la VREF de 1,1V y para el sensor MQ3 5V, ya que no quiero que sea demasiado sensible.

Necesito que durante el programa primero tenga un Vref de 5v y luego para la temperatura 1.1V.

Gracias.


Arriba
 Perfil  
 
NotaPublicado: Vie May 31, 2019 5:16 pm 
Desconectado
Avatar de Usuario

Registrado: Lun Mar 29, 2010 10:47 am
Mensajes: 1822
País: España
Ciudad: Alcorcón Madrid
Al usar una tensión de referencia primero hay que medirla, ya que podemos llevarnos sorpresas.
Por ejemplo, la tensión de 3,3V en tres arduinos distintos alimentados con la misma tensión en un Diecimilla mide 3,31V, en un Uno mide 3,27V y en un Nano mide 3,67V.
También varían mucho según el método de alimentación. En un Nano, la tensión de referencia interna de 1,1V si lo alimentamos con un puerto USB mide 1,089V. Con una pila de 9V mide 1,079V.
Si variamos la alimentación externa entre 7 y 12 voltios también varían las tensiones de 1,1V, 3,3V y 5V.
Supongo que también variarán estas tensiones según la carga que le metamos a las salidas del Arduino.
O al menos eso es lo que pasa en mis arduinos chinos baratos.

Si la medida es crítica habría que usar una referencia buena externa.

_________________
Qué bien y qué pronto, le dijo la tonta al tonto.


Arriba
 Perfil  
 
NotaPublicado: Vie May 31, 2019 8:32 pm 
Desconectado
Avatar de Usuario

Registrado: Jue Dic 03, 2009 3:46 pm
Mensajes: 225
País: España
Ciudad: Sevilla
Gracias Troglodita,
Ya lo tengo más o menos orientado lo que voy hacer es una mezcla de lo que me han comentado Heli y Rovellat, voy a usar tensión referencia externa para obtener 1 voltio, y luego para obtener los 5V aproximados, voy a inyectar desde algún pin del Arduino los X voltios al divisor de tensión para obtener casi 5v.

Nada más que tenga el circuito y programa os lo muestro, saludos y gracias.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 6 mensajes ] 

Todos los horarios son UTC [ DST ]


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 10 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com