Arduino para electronica del coche, alarmas, control de luces...ect...

Iniciado por vidainutil.com, Febrero 26, 2009, 03:31:02 am

Tema anterior - Siguiente tema

0 Usuarios y 3 Visitantes están viendo este tema.

amikoj

Y aquí el que pretendo que se modifique para usar un sensor de IR MLX90614 y un display LCD de 16x2
Bueno, sin querer meter en ningún compromiso a nadie, ya iremos hablando. Saludos,



#include <i2cmaster.h>


void setup(){
Serial.begin(9600);
Serial.println("Setup...");

i2c_init(); //Initialise the i2c bus
PORTC = (1 << PORTC4) | (1 << PORTC5);//enable pullups
}

void loop(){
    int dev = 0x5A<<1;
    int data_low = 0;
    int data_high = 0;
    int pec = 0;
   
    i2c_start_wait(dev+I2C_WRITE);
    i2c_write(0x07);
   
    // read
    i2c_rep_start(dev+I2C_READ);
    data_low = i2c_readAck(); //Read 1 byte and then send ack
    data_high = i2c_readAck(); //Read 1 byte and then send ack
    pec = i2c_readNak();
    i2c_stop();
   
    //This converts high and low bytes together and processes temperature, MSB is a error bit and is ignored for temps
    double tempFactor = 0.02; // 0.02 degrees per LSB (measurement resolution of the MLX90614)
    double tempData = 0x0000; // zero out the data
    int frac; // data past the decimal point
   
    // This masks off the error bit of the high byte, then moves it left 8 bits and adds the low byte.
    tempData = (double)(((data_high & 0x007F) << 8) + data_low);
    tempData = (tempData * tempFactor)-0.01;
   
    float celcius = tempData - 273.15;
    float fahrenheit = (celcius*1.8) + 32;

    Serial.print("Celcius: ");
    Serial.println(celcius);

    Serial.print("Fahrenheit: ");
    Serial.println(fahrenheit);

    delay(1000); // wait a second before printing again
}

Mis bricos e información importante recopilada:
http://www.furgovw.org/index.php?topic=27289.msg3602910#msg3602910

"Per pacienco kaj fervoro sukcesas ĉiu laboro"
Con paciencia y fervor se termina toda labor
L. Zamenhof

Por favor, Mensajes privados sólo para asuntos personales. No responderé Mensaj. priv. sobre temas del foro.

amikoj

Pienso que si se pudiera lograr un código para usar con el MLX90614, se nos abriría un montón de posibilidades para chapucear nuestros cacharros sin tocar hardware apenas, imaginad poder leer la temperatura del aceite, la del regrigerante y otros puntos conflictivos en motores endotérmicos.

El principal enemigo de nuestros motores es el exceso de temperatura, ¡podriamos prevenir un montón de averias!

Incluso el sensor se puede usar como detector de presencia, montándolo en sitios estratégicos podría servir para automatismos varios.

Bueno, aquí queda ésto. Disfruto como un enano... y eso solo imaginando  .sombrero

Tengo previsto un viaje a Portugal de dos semanas y casi me sabe mal hacer un parón en los experimentos éstos  ;D

Salud para todos y kms!
Mis bricos e información importante recopilada:
http://www.furgovw.org/index.php?topic=27289.msg3602910#msg3602910

"Per pacienco kaj fervoro sukcesas ĉiu laboro"
Con paciencia y fervor se termina toda labor
L. Zamenhof

Por favor, Mensajes privados sólo para asuntos personales. No responderé Mensaj. priv. sobre temas del foro.

MartiBCN

Cita de: amikoj en Agosto 29, 2014, 11:24:58 am
Pienso que si se pudiera lograr un código para usar con el MLX90614, se nos abriría un montón de posibilidades para chapucear nuestros cacharros sin tocar hardware apenas, imaginad poder leer la temperatura del aceite, la del regrigerante y otros puntos conflictivos en motores endotérmicos.

El principal enemigo de nuestros motores es el exceso de temperatura, ¡podriamos prevenir un montón de averias!

Incluso el sensor se puede usar como detector de presencia, montándolo en sitios estratégicos podría servir para automatismos varios.

Bueno, aquí queda ésto. Disfruto como un enano... y eso solo imaginando  .sombrero

Tengo previsto un viaje a Portugal de dos semanas y casi me sabe mal hacer un parón en los experimentos éstos  ;D

Salud para todos y kms!


Buenas, he estado fuera unos días. Creo que lo más beneficioso para todos, y lo que se suele hacer en los foros de programación, es que intentes programar tú un código con todas las anotaciones que puedas y lo cuelgues aquí, por mal que esté. No te preocupes que no creo que nadie se vaya a reír. A partir de aquí, nos comentas los fallos que te ha dado y miramos de pulirlo. Así aprendes tú, pues te curras un código, y aprendemos todos de las correcciones o apreciaciones que hace la gente. Dicho ésto, lo único que tienes que conseguir es substituir éstas dos líneas de tu código:


sensors.requestTemperatures(); // Envío del comando para obtener temperaturas
float tempC = sensors.getTempCByIndex(0); // Obtiene el valor del sensor

por la variable "celcius" que se declara en el otro fichero. Ya verás como no es tan complicado!

Un saludo,
Martí

amikoj

Gracias Martin BCN,

De momento voy a montar lo que tengo, que es un sensor digital DS18B20, intercalado en el circuito del refrigerante.
El problema es que quiero tener ya montado algo para vigilar la temperatura del motor y con el tema de ir aprendiendo se va alargando en el tiempo y no tengo montado nada.
Hice un viaje a Portugal recientemente y me hubiera gustado tener algo montado, así es que a lo dicho, montaré lo que ya tengo comprobado que funciona.
No obstante seguiré haciendo mis pinitos con el sensor de IR.
Ya iré diciendo algo por aquí.
Saludos.
Mis bricos e información importante recopilada:
http://www.furgovw.org/index.php?topic=27289.msg3602910#msg3602910

"Per pacienco kaj fervoro sukcesas ĉiu laboro"
Con paciencia y fervor se termina toda labor
L. Zamenhof

Por favor, Mensajes privados sólo para asuntos personales. No responderé Mensaj. priv. sobre temas del foro.

mcma

Buenas a tod@s!
He encontrado algo interesante para los "frikis" de la electrónica (como yo) ! Es un kit para conectar la centralita a un arduino y poder tener acceso a todos los datos de esta mediante una pantalla.

http://freematics.com/store/index.php?route=product/product&product_id=58

Lo que me gusta mas de esto es que al estar echo con un arduino de base es totalmente personalizable y en esta misma pagina tienes todas las librerías necesarias.  .baba


A ver si ahorro un poco y puedo comprar uno, montarlo y explicaros que tal!

bitop

Yo hace un mes que ando ñapeando con la arduino a ver si aprendo un poco, pero mi furgo es una 2.4D con menos electrónica que un mechero de mecha  .meparto .meparto .meparto
Pero igual hago algo de alarma, consumos eléctricos, cierre, etc...
Ya irás poniendo historias, que es la leche de interesante y entretenido.
Saludos!

amikoj

@mcma, @bitop,

Bienvenidos al hilo, cuanto más seamos más podremos compartir conocimientos.
El link que ha puesto mcma está muy interesante, pero sólo es útil a los que teneis vehículos "modelnos" (con OBD).

Los que tenemos veteranas, como bitop y un servidor, no nos sirve. Pero precisamente porque están exentas de electrónica es por lo que siento la necesidad de colocarle cacharros que te avisen de alta temperatura (en varios puntos, detectores de IR, etc)

Yo estoy cacharreando una alarma de alta temperatura del bloque motor, configurable en el mismo código. Casi la tengo terminada, pero como ando combinando el tiempo con unas cosas y con otras se alarga en el tiempo. Ahora ya estoy deseando terminarla, pero el próximo lunes saldré hacia el Pirineo una semanita, así es que interrumpiré el cacharreo... como ya hice en Setiembre cuando viajé al Norte de Portugal.


Cuando la acabe ya pondré fotos o quizás haga un brico para que quede por aquí. Ya iremos hablando.

Salud y Kms
Mis bricos e información importante recopilada:
http://www.furgovw.org/index.php?topic=27289.msg3602910#msg3602910

"Per pacienco kaj fervoro sukcesas ĉiu laboro"
Con paciencia y fervor se termina toda labor
L. Zamenhof

Por favor, Mensajes privados sólo para asuntos personales. No responderé Mensaj. priv. sobre temas del foro.

Pape


sergio merelo

Buenas,

Estoy finalizando el proyecto de camperizacion, para lo cual estoy utilizando una pantralla grafica lcd de sparkfun, de 160x128.
Alguien conoce alguna libreria para conectarlo en paralelo, no serie????

mcma

Buenas

Del tema del sensor de temperatura DS18B20 una posible solución para para conseguir una buena superficie de contacto aun siendo redonda podría ser meterle pasta térmica de la que venden en las tiendas de informática, de esta forma conseguiríamos una buena transmisión de temperaturas asta el sensor( o eso creo...).

El tema de la pantalla Spartfunk no se que pantalla es pero tengo una librería para muchas pantallas que a lo mejor esta la que tu tienes, pero no se de donde la saque, pero si te interesa te la puedo pasar. 

Yo ahora me e liado con un lector de baterías + temperatura ambiente pero lo e echo con pic en vez de arduino ya que podía aprovechar una placa que tenia y así me ahorraba comprar-me un arduino. para la temperatura he usado el sensor DS18B20 pero sin el encapsulado impermeable ya que era mas barato y como es para el interior no era necesario.;)

Espero haber ayudado!

amikoj

@mcma,

Gracias por tu ayuda, de hecho es la pasta que utilicé. Ahora mismo no se dónde tengo la referencia, pero la compré en una tienda que reparan ordenadores. Es en realidad un adhesivo de 2 componentes y base de plata. La he probado y va perfecta.
En cuanto tenga tiempo hago un brico de lo que ya tengo montado.
Saludos y nos seguimos leyendo.
Mis bricos e información importante recopilada:
http://www.furgovw.org/index.php?topic=27289.msg3602910#msg3602910

"Per pacienco kaj fervoro sukcesas ĉiu laboro"
Con paciencia y fervor se termina toda labor
L. Zamenhof

Por favor, Mensajes privados sólo para asuntos personales. No responderé Mensaj. priv. sobre temas del foro.

Patuf

Hola a todos,me uno al grupo. Que ganas tengo de ponerme con el arduino.  :)

willem

Me apunto al hilo este que me encanta el tema!

Yo tengo una Cali T5 de 2007 y me llama mucho este tema. No he tenido ocasión de cacharrear todavía con el Arduino pero sí que he trabajado con algunos otros microcontroladores y ya se me había pasado por la cabeza la idea de hacerme una centralita que me recoja y muestre algunos valores interesantes tales como el estado de carga de las baterías.

He estado mirando un poco y creo que voy a invertir en un Arduino Mega y una pantalla LCD medio curiosa, así que tan pronto como lo tenga me pondré al lío.

Por ahora os dejo aquí una dudilla que me surge: Mi idea será tener, entre otras cosas, un indicador de carga de batería del tipo del que indica la batería del móvil, con barritas que se van borrando a medida que se descarga la batería. ¿Cómo se calcula este porcentaje de carga de la batería? He visto que con medir el voltaje ya es suficiente, siendo 12,7V el 100% de carga, y a partir de 11,9V o 11,8V se puede considerar el 0%. ¿Esto es correcto? ¿Se puede hacer así?

Bueno, sin enrrollarme más, enhorabuena por vuestros avances. Espero pronto poder poneros mis propios avances!

Saludos desde Asturies!


"El problema de tener una mente abierta es que la gente insiste en entrar dentro y tratar de poner allí sus cosas."  Terry Pratchett

MartiBCN

Cita de: willem en Noviembre 18, 2014, 17:56:40 pm
Por ahora os dejo aquí una dudilla que me surge: Mi idea será tener, entre otras cosas, un indicador de carga de batería del tipo del que indica la batería del móvil, con barritas que se van borrando a medida que se descarga la batería. ¿Cómo se calcula este porcentaje de carga de la batería? He visto que con medir el voltaje ya es suficiente, siendo 12,7V el 100% de carga, y a partir de 11,9V o 11,8V se puede considerar el 0%. ¿Esto es correcto? ¿Se puede hacer así?


Buenas willem bienvenido al cacharreo arduinil! Sobre tu duda, te diré que hay muchas maneras de saber el porcentaje de carga.

1. La más sencilla es mirar voltaje máximo, mínimo (es decir, cuando ya se te apagan los consumibles conectados a la batería) y hacer una regla de tres.

2. Una un poco más elaborada y precisa es mirar las curvas de descarga que te da el fabricante de tu batería y sacar de ahí la información, ya que la curva suele ser eso, curva, no lineal. Un ejemplo de un fabricante escogido al azar:


3. Y, por último, mirar con un shunt el consumo que vas teniendo y restar de la capacidad máxima. Es como saber cuanta agua tienes una botella contando los tragos que vas haciendo y restándolos de la capacidad total. No he experimentado con este método y me da que debe ser complicado e incluso inexacto, pero por poder, supongo que se podrá.

Yo me decanto bastante por la segunda opción, pero a ver qué comenta la gente que ha porbado varios métodos.
Un saludo!

Rafas

pillo sitio, me interesa el tema aunque no lo he tocado todavía, así aprendo algo  .meparto