Lectura de valor Sonda Lambda(AFR) y muestra en LCD

Buenas a todos!

Este es mi primer post en este foro, para mí es un placer pertenecer a esta comunidad ,espero ser bien acogido jejej.

Me presento un poco , soy estudiante de ingeniería industrial y al mismo tiempo un amante de los motores de combustión . Hace tiempo, un amigo me comentó y me habló sobre arduino y me pareció bastante interesante y me compré un kit de iniciación de arduino UNO.

Así que me propuse crear mi nuevo proyecto de tener la lectura de la sonda AFR (Air Fuel Ratio) para los que no sepan lo que es eso os lo voy a explicar.´
Nuestros coches en el escape llevan un sensor denominado "sonda lambda" que hace una lectura sobre cuantos oxígeno hay en los gases de combustión .
Para ello hace una comparación del oxigeno teorico y real que hay en el escape y este dato nos sabe para conocer la mezcla de gasolina con el aire .Porque como sabemos la mezcla estequiométrica es 14,7 gotas de aire por cada 1 gota de gasolina para que se produzca una combustión perfecta .

Entonces dicho sensor varía entre 0 y 5 voltios.

indiando así la relación estequiométrica instantanea .

Posteriormente me gustaría mostrarlo en un LCD por el coche y vigilar dicha pantallita de vez en cuando para hacer posibles reparaciones en el coche

Poco a poco empezaré a escribir el código y lo pasaré por aquí para que ustedes puedan ayudarme!

Espero que les guste el proyecto!

Saludos

1 Like

Hola @juanantonio_belmez, bienvenido al foro Arduino.
Felicitaciones por haber posteado debidamente tu presentación de proyecto, en estos días es tan raro que cuando ocurre debo mencionarlo para que alguno entienda que esta es la forma correcta de manejarse.

En principio lo que planteas comenzaría con leer un simple potenciómetro, de hecho tienes un ejemplo en IDE y muchos tutoriales que te pueden ayudar.
Para incorporar un LCD sea I2C o paralelo tienes la librería LCD en sus dos variantes, que de igual modo te permite hacer y presentar lo que gustes.
Ya que estas empenzando te recomiendo que lo hagas evitando el uso de delay(). En algún momento será un callejón sin salida asi que mejor que aprendas ya a no usar delay().
Ve a Documentación => indice de temas tutoriales => millis() y máquinas de estados. Ambos te serán de ayuda en tu tarea.

Hola Juan Antonio, interesante tu proyecto, pero antes de continuar creo conveniente que sepas que esto es un error:

Entonces dicho sensor varía entre 0 y 5 voltios.

Voy a ser breve en esto y te tocara a ti informarte bien, bueno para comenzar existen 2 tipos de sensores de oxigeno, el primero es el de banda angosta o banda estrecha, este es el que se ha usado por décadas en los automóviles para fines practicos lo llamaremos el sensor común, este sensor genera un voltaje que va desde 0 a 1 volt, y no de 0 a 5 , siendo 0.450v indicación de una mezcla estequiometrica, un valor >450mv una mezcla rica y un valor <450mv una mezcla pobre y con estos valores el PCM modifica el tiempo de inyección de combustible para estar siempre lo mas próximo a la mezcla ideal

El segundo tipo es el llamado sensor A/F o también conocido como sensor de oxigeno de banda ancha, el cual fue diseñado por la necesidad de medir mezclas muy pobres generadas por los motores modernos de inyección estratificada, el cual trabaja de una forma mas compleja que el anterior, a grandes rasgos este es un sensor común, mas una bomba de oxigeno, mas un amplificador operacional, y el PCM ya no medirá el voltaje que sale del sensor, si no que mide la corriente y la polaridad que se necesita para mantener el sensor dentro de esos 450mV de la mezcla ideal por medio del circuito de bombeo de oxigeno.

Entonces primero tienes que determinar el tipo de sensor que vas a usar en tu proyecto, y en caso de ser de banda ancha las cosas se complican y te tocara informarte mucho mas ya que también dependiendo de la marca del vehículo tienen formas distintas de trabajar.

Si es un sensor común la cosa es mas sencilla, como te dijo @surbyte puedes simular el sensor usando un poteciometro

Saludos
** PCM = Powertrain Control Module

Buenas noches Amigos!

Gracias a @surbyte y @RYG por constestar .

Así es @RYG , existen dos tipos de sondas lambda : banda ancha y banda estrecha .Sus principales diferencias esque la sonda de banda estrecha tiene muy poco rango de medición por lo tanto no es muy preciso , sin embargo la sonda de banda ancha nos da unos valores más exactos .

A continuación os pongo unas imágenes de la sonda de banda ancha y la sonda de banda estrecha:

La siguiente es una de banda ancha :

Gracias al comentario del compañero del foro me dí cuenta de que utilizar una sonda de banda ancha tiene muchas complicaciones en el tema electrónica por el tema del amplificador operacional , así que ya que es mi primer proyecto de importancia con Arduino , voy a utilizar una sonda de banda entrecha por su precio y por tener menos complejidad.

En el tema del modelo del coche , tengo libre elección ya que quiero montarlo en un coche de carburación que anteriormente no la llevaba .

Otra cosa que quiero comentaros es que me he estado informando y esque dicha sonda empieza a funcionar a partir de 300 grados . Que es lo que pasa? que algunas sondas modernas llevan una resistencia interna para calentarla y obtener una lectura lo antes posible . En mi caso como no quiero complicar mucho el tema y como no me urge la rapidez de la lectura utilizaré una sonda que no necesite calentarla y que empiece a funcionar cuando los gases de escape calienten la sonda a la temperatura optima.

Para quien no sepa cual es la finalidad de este sensor en los coches modernos es hacer correciones sobre la inyención intentando ajustar el valor lambda a 1 para conseguir una mayor eficiencia .

Y por último como decía el admin voy a elaborar el código que estoy muy pegado aunque tuve una asignatura que estudiábamos c++ y se parece mucho

Os voy contando nuevos avances+

Saludos