Go Down

Topic: Novel con arduino y sensor de temperatura (Read 1 time) previous topic - next topic

aguirrech

Antes de todo presentarme, hace mucho que visito vuestro foro y con vosotros aprendo cada dia. Me he lanzado con un proyecto, y me gustaria me hechaseis una mano pues soy novato en esto de la electronica y de la programacion.

Me he hecho con una pantalla LED TM1638 como esta;

http://club.dealextreme.com/forums/Forums.dx/threadid.1017062

Y me gustaria poder transmitir los valores de un sensor de temperatura TMP36 a la pantalla. Os dejo el codigo para que le echeis un vistazo:

#include <TM1638.h>  // carga librerias para la pantalla LED

TM1638 module(8, 9, 7); // define el modulo de la pantalla en pin datos 8, clock en pin 9 y strobe en pin 7
int temperaturePin = 0; //pin analogico del sensor TMP36

val temperature = 0;

void setup()
{
  Serial.begin(9600);  //abre comunicacion serial con el pc

}

void loop()                     
{
int temperature = getVoltage(temperaturePin);  //lectura del sensor de temperatura en pin analogico
temperature = (temperature - .5) * 100;          //conversion para obtener valores de temperatura
Serial.println(temperature);                     //monitoriza el resultado en pc
module.setDisplayToString(temperature);   //monitoriza en pantalla LED la variable temperature
delay(1000);                                     //espera un segundo


float getVoltage(int pin){
return (analogRead(pin) * .004882814); //convierte el valro analogico de 1024 a digital 255
}


Saludos a todos y gracias por la ayuda. :D

flico

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

ToloBCN

No entiendo esto: "convierte el valro analogico de 1024 a digital 255" (valor lo entiendo)

Si quieres hacer esto ¿no es más fácil discriminar los dos últimos bits? algo asi: return (analogRead(pin) >> 2)

Además usas un float que después conviertes a int y después le restas 0.5 ¿?  :smiley-roll-sweat:

Mejor primero multiplicar por 100 y después restar 50 .¿O estoy muy espeso?

Ojo con las conversiones de tipos que dan muchos dolores de cabeza. Usa float solamente cuando sea imprescindible. Es mi experiencia.

aguirrech

No me mateis por favor que estoy aprendiendo a base de ejemplos... ;)

El datasheet lo tengo por aqui...
https://docs.google.com/open?id=0B84N2SrJaybwZTgxYjM4ZmEtY2EyZi00YjVjLWIzOTctYTlhMjJkM2MxMTBl

Como lo planteariais vosotros?

Un saludo

flico

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

aguirrech

#5
Dec 10, 2011, 09:29 pm Last Edit: Dec 10, 2011, 09:59 pm by aguirrech Reason: 1
si, pero no consigo enviar el valor analogico al display...

Edit: lo acabo de conseguir con 

module.setDisplayToString( analogRead(0));


Una ultima cuestion, como podria hacer para leer varias entradas analogicas, de distintos sensores, e irlas alternando con un pulsador?

Go Up