This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino Yun LM35
#1
Buenas, estoy haciendo un aplicación para medir la temperatura, que la muestre en un display y lo mande a un servicio web.

Todo de momento esta funcionando sin problemas excepto el coger la temperatura...

Estoy usando un LM35 que es el que siempre he utilizado y mi sorpresa ha sido al ver que mide como 2grados de mas y siempre me ha gustado este sensor por su precisión, justo lo que ahora no tiene... He conectado el circuito tal cual a mi antiguo Arduino Uno y el sensor ha vuelto a medir con precisión correcta.

No se muy bien como puedo solucionar, yo entiendo que el problema puede estar en el regulador de 5v del Arduino interno que este mal y el sensor mida mal pero no tengo mucha idea de esto.

Alguien puede ayudarme?

He probado a bajar las entradas analógicas a 1.1v y sigue siendo impreciso.

Muchas gracias.

Un saludo,


Enviado desde mi iPhone utilizando Tapatalk
  Responder
#2
Y si lo corriges por código? creas otra variable y al resultado de la lectura le restas esos 2 grados de mas, y a partir de ahí usas esa nueva variable para las comparaciones Guiño

Por ej:

int sensorPin = A0; // select the input pin for the LM35 temperature sensor
int redLedPin = 0; // select the LEDs' pins
int greenLedPin = 1;
int blueLedPin = 2;
int prevLedPin = redLedPin; // used to turn off previous LED used
float temp;
float temp2;
 
void setup() {
   // declare all LEDs' pins as OUTPUT:
   pinMode(redLedPin, OUTPUT);
   pinMode(greenLedPin, OUTPUT);
   pinMode(blueLedPin, OUTPUT);
   Serial.begin(9600);
}
 
void loop()
{
   // compute the temperature
   temp = 100 * 5.0 * analogRead(sensorPin) / 1024.0;
   temp2 = temp -2;
   // turn off the previous used LED
   digitalWrite(prevLedPin, LOW);
   // turn one LED on
   if(temp2 < 19)
      prevLedPin = blueLedPin;
   else if (temp2 < 26)
      prevLedPin = greenLedPin;
   else
      prevLedPin = redLedPin;
   digitalWrite(prevLedPin, HIGH);
 
   Serial.println(temp2);
   // to avoid serial overload
   delay(1000);
}
  Responder
#3
(28-11-2015, 01:56 AM)biketrial981 escribió: Y si lo corriges por código? creas otra variable y al resultado de la lectura le restas esos 2 grados de mas, y a partir de ahí usas esa nueva variable para las comparaciones Guiño

Por ej:

int sensorPin = A0; // select the input pin for the LM35 temperature sensor
int redLedPin = 0; // select the LEDs' pins
int greenLedPin = 1;
int blueLedPin = 2;
int prevLedPin = redLedPin; // used to turn off previous LED used
float temp;
float temp2;
 
void setup() {
   // declare all LEDs' pins as OUTPUT:
   pinMode(redLedPin, OUTPUT);
   pinMode(greenLedPin, OUTPUT);
   pinMode(blueLedPin, OUTPUT);
   Serial.begin(9600);
}
 
void loop()
{
   // compute the temperature
   temp = 100 * 5.0 * analogRead(sensorPin) / 1024.0;
   temp2 = temp -2;
   // turn off the previous used LED
   digitalWrite(prevLedPin, LOW);
   // turn one LED on
   if(temp2 < 19)
      prevLedPin = blueLedPin;
   else if (temp2 < 26)
      prevLedPin = greenLedPin;
   else
      prevLedPin = redLedPin;
   digitalWrite(prevLedPin, HIGH);
 
   Serial.println(temp2);
   // to avoid serial overload
   delay(1000);
}

Esto es como lo he dejado, pero si ya se ha desviado 2 grados (sin saber el porqué) quien me dice que mañana no sean 4?

Esta "trampa" ya la tengo hecha pero me gustaría saber que hacer para que tanto el Arduino Uno y el Yun den el mismo valor (el real).

Muchas gracias por la respuesta.


Enviado desde mi iPhone utilizando Tapatalk
  Responder
#4
Yo creo que va a ser por la diferencia de versiones. El yun es un leonardo como base, con un ATmega32u4, y por ahí pueden venir las diferencias de lectura.

Para la búsqueda es mejor que busques con leonardo en lugar de yun, que por el momento no tienen tanta comunidad detrás aunque es un pepino.... xD
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Arduino yun y Souliss mlago 0 1,152 29-06-2016, 01:51 PM
Último mensaje: mlago
  LM35 y Contador binario Mentus 3 2,333 11-04-2015, 10:03 PM
Último mensaje: paredesivan4
  Arduino Yún poco a poco silth 1 1,284 11-09-2014, 04:20 PM
Último mensaje: sistemasorp
  [Hilo Oficial] Arduino Yún, la revolución de la conectividad biketrial981 32 6,676 11-08-2014, 12:04 PM
Último mensaje: silth
  ¿Arduino MEGA o Arduino ADK? igargi 7 3,274 25-08-2013, 04:58 PM
Último mensaje: cansi22