desktop

¿Acondicionar señal del potenciometro de combustible?

Muy buena idea. No olvidar que el propio potenciómetro que solemos conectar a los IC o Arduino son de tres pines como estos.

article-2021may-the-fundamentals-of-digital-fig1.jpg

El aforador, solo tiene dos pines, en el cual, es como si usaras el pin 1 y pin 2 del dibujo de arriba.

Y si, funciona del 0 al 1023, o lo que es lo mismo, del 0V a 5V, o lo que es lo mismo, del 0% al 100 %. Ahí no hay problema. Ya que funciona el potenciómetro de 0 Ohmios hasta donde llegue. En este caso el mínimo es de 23 Ohmios y con el programa que hice se representa así:

23 Ohmos = 100 %.
278 Ohmios = 0 %.

Si quieren, les paso el ejecutable.
 
"En cuanto a la función map, a parte que no tiene decimales, solo puro enteros, tiene otra fórmula y por supuesto, no sirve."

No entiendo porqué decís esto, la fórmula que aplica la función map() es la misma que estás usando. Está escrita diferente, pero con un poco de álgebra pasás de una a otra. O mas fácil, testeala numéricamente.

La única diferencia es que trabaja con números enteros y la tuya en punto flotante.
En un caso como éste, donde la forma del tanque es lo que se le cantó al fabricante y donde si el auto está un poco inclinado el nivel es distinto, no le veo sentido a mostrar decimales.

Donde fuese necesario mostrar 1 decimal, se puede hacer: resultado_float=map(valor,23,278,0,1000)/10.
De todas formas como la fórmula es muy sencilla da lo mismo usar map() o escribir la función.
 
Siempre, siempre y siempre, dependiendo de la inclinación, la bolla varía, eso si, me he dado cuenta, que los vehículos modernos, desde hace tiempo, que, cuando la bolla se inclina, no lo indica en el cuadro de instrumento, de forma inmediata, cada variación, tiene un tiempo, luego cambia.

Es decir, por cada 10 segundos o más, se actualiza en el cuadro la información del depósito.

En caso de no usar float o te gusta más en decimal, pues vale.

Ahora mismo me interesa hacer esto.

Desde el Monitor Serie de Arduino IDE tengo contectado Arduino UNO.

Pasos:


1) Al iniciar Arduino. Busca si hay dos datos guardados en la EEPROM. Si no lo hay, al paso 2) y pregunta introducción de datos.
2) Introduce valor mínimo:
3) 23
4) Introduce valor máximo:
5) 278
6) Guarda los valores en una EEPROM y al reiniciar o iniciar de nuevo Arduino, no te pide introducción de los datos otra vez.
7) En un pulsador como entrada digital, si lo pulsas durante tres segundos, automáticamente te pide introducción de datos como en el principio. Si no lo pulsas o lo ignoras, paso 8).
8) Lee entrada analógica donde está el potenciómetro. Lee valores del 0 al 1023, total 1024. Las resistencias de 23 a 278 Ohmios.
9) 23 = 100 % y 278 = 0%.
10) Si detecta en la entrada analógica 0 Ohmios, indica a Arduino que se encienda el Led 13. Si tienes un LCD insertado, pues lo indica en la pantalla también.


Parece el programa sencillo de hacer. ¿Verdad?

Este tipo de depósito ya es lineal, desde el suelo hasta la parte más alta, su forma es regular.
 
Última edición:
@cosmefulanito04 Lo había en ese aspecto. En mi caso me refiero conseguir que se muestre 0 % al 100 % en un LCD entre valores de 23 a 278 ya que los potenciómetros son de 0 Ohmios hasta donde llegue. Eso es lo que me refería desde el principio, ejejejej.
 
Buenas de nuevo:

Por lo que cuentan.

Mi idea es, depósito irregular vacío, es 278 Ohmios, lleno un 0.5 Litros y marco por donde anta la resistencia, así sucesivamente hasta llegar la bolla a 23 Ohmios, que es lleno al 100 %.

¿Es así?
A mi me parece lo más sencillo de hacer.
 
cuando la bolla se inclina, no lo indica en el cuadro de instrumento, de forma inmediata, cada variación, tiene un tiempo, luego cambia.
No es tan así, algunas boyas como vos decis, tienen un amortiguador que puede ser un piston o electrico con un viscoelastico que se ablanda con la tensión, y otros hacen una medición por tiempo, y otros miden solo en contacto, y despues modifican el instrumento según el consumo, no toman señal de la boya.
 
Sergio, los vehiculos no tienen Caudalimetro y si no toman la señal del flotante como mencionas, dependería del tiempo de inyección más la presión de bomba, más la sección del caño, mas el largo del recorrido, más no sabría decirte cuántas variables más tendríamos que sumar para hacer tu cálculo engorroso, que no dejaría de ser una simple "estimación aproximada"....
El consumo pasa por el calculador; El reservorio o mejor dicho nivel, pasa por el sensor de nivel y filtran los movimientos con cantidad de muestras y tiempos de muestreos
 
Las cambiaron mucho en los autos en estos tiempos, por esa razón algunos autos con gnc, necesitan un emulador de medidor de nafta porque sino sigue bajando el nivel cuando no hay consumo, es un sistema que usan algunos autos franceses, si digo eso, es porque se que existen esos sistemas, no es un invento, porque además los he visto.
 
Sinceramente, no se a que vehículo te referís, pero el emulador es para cuando se interrumpe el suministro de combustible al motor durante el funcionamiento a GNC y además simula el funcionamiento de los inyectores, para que no se encienda el check engine... No lo sé Rick :unsure: me suena raro... Mí señora tiene un 208 modelo 2020 y tiene flotante... En la empresa tenemos Toyotas Hilux 2023 y tienen flotante... Yo tengo una frontier y tiene flotante...
 
Sinceramente, no se a que vehículo te referís, pero el emulador es para cuando se interrumpe el suministro de combustible al motor durante el funcionamiento a GNC y además simula el funcionamiento de los inyectores, para que no se encienda el check engine... No lo sé Rick :unsure: me suena raro... Mí señora tiene un 208 modelo 2020 y tiene flotante... En la empresa tenemos Toyotas Hilux 2023 y tienen flotante... Yo tengo una frontier y tiene flotante...
Todos usan el flotante, pero la manera en como se lee es lo que cambia, y hay muchos mas emuladores que los comunes de inyectores, sondas y map.

Esto es solo a titulo informativo.

1721214532605.png
 
Sergio, me estás dando la razón, el método de medición de "fabrica" sigue siendo el mismo y el sistema de emulación es uno solo con una o más funciones, pero la divina gloria de dios, hace el milagro de que no se encienda el check engine al no detectar consumo, impedancia en la salida inyectores, bomba , etc... Todo este milagro el emulador solo trabaja para los casos de emplear GNC,GLP o en modo híbrido (eléctrico)...
No le busques la 5ta para al gato, que en vez de aclarar, oscurece
 
El programa que hice, se trata a parte de leer el potenciómetro, debe hacerlo de dos cables, y no cuenta de 0 a 278 Ohmios, sino de 23 a 278 Ohmios.

Calcular de 0% al 100%, hay gente que se pensaba o sigue pensando que no se puede hacer del 0% porque indica 27 Ohmios y si se puede con cálculos matemáticos. También indicar una barra del 0 al 100 % en el LCD, pero esto, ya es otra historia.

Lo que te calcula al menos un coche he encontrado esto:

Este vehículo no lleva interruptor de inercia; lo sustituye la función denominada "fuel cut off" gestionada por la centralita Air Bag que, después de detectar una colisión, envía a la red la señal FPS (Fire Prevention System) que determina el corte de combustible por parte de la centralita del motor. Esta condición también se señala al tablero de instrumentos mediante el testigo "avería genérica" y un mensaje en la pantalla.
Tampoco voy a llegar a tanto. Mi idea es que funcione en los LCD del 0 al 100 % y poder conectar un potenciómetro de dos pines de la bolla, lo normal es tres pines que es más fácil. Aún no lo he probado.

¿Qué pasa si pongo la bolla directamente a la entrada analógica a Arduino y lo dejo a 23 Ohmios?

No olvidar que si se desactiva un pin, se suelta un cable, debe detectar cable suelto en pantalla.

if (bolla es menor que 23 Ohmios o cerca de cero)
{
Print("Cable desconectado o cortocircuito a masa");
}
 
Última edición:
Una vez todo aclarado, solo falta hacer la programación en Arduino que ya había comentado.

1) Al iniciar Arduino. Busca si hay dos datos guardados en la EEPROM. Si no lo hay, al paso 2) y pregunta introducción de datos.
2) Introduce valor mínimo:
3) 23
4) Introduce valor máximo:
5) 278
6) Guarda los valores en una EEPROM y al reiniciar o iniciar de nuevo Arduino, no te pide introducción de los datos otra vez.
7) En un pulsador como entrada digital, si lo pulsas durante tres segundos, automáticamente te pide introducción de datos como en el principio. Si no lo pulsas o lo ignoras, paso 8).
8) Lee entrada analógica donde está el potenciómetro. Lee valores del 0 al 1023, total 1024. Las resistencias de 23 a 278 Ohmios.
9) Todo bien si está entre el rango 23 = 100 % y 278 = 0%.
10) Si detecta en la entrada analógica 0 Ohmios, indica a Arduino que se encienda el Led 13, que significa error o cable suelto de la bolla o potenciómetro. Si tienes un LCD insertado, pues lo indica en la pantalla también.

A ver si encuentro una Web donde se pueda hacer un buen diagrama de flujo y se entienda bien de entrada para facilitar a la hora de hacer códigos después.
 
Tenés varias maneras de saber el valor de una resistencia; Dejando de lado el puente, eh implementa la tecnica del divisor resistivo donde la resistencia conocida va a +Vcc y la resistencia variable del flotante, a GND.
Sinceramente, yo no apuntaría mucho a leer el valor neto de la resistencia y más bien apostaría a trabajar en medir la caída de tensión y lo pasaría a porcentaje. Esto más que nada te lo digo, por qué si apostas medir la resistencia con un modelo básico de matemáticas, ante una caída de tensión de fuente o que con el tiempo se dañe y varíe un poco la resistencia del flotante, te va a dar cualquier cosa, menos el rango de resistencia que buscas leer.
En el foro de Arduino hay un tópico que habla sobre sensores de autos de los años 50.
Yo saqué de ahí justamente un par de ideas y logré tener una lectura más estable; En mi caso me refiero al sensor de temperatura, pero en el mismo tópico se habla del medidor de combustible.
 
Antes de hacer un diseño final, hacer planes de todo lo que se encuentra en el alcance de Internet para ver cual es el más adecuado.

Tampoco voy a comerte mucho el tiempo en calcular un tanque.

¿Sabes cómo funciona un aforador de un vehículo?

Hablando de la bolla, por supuesto.
 
Lo de presión que tiene que llegar al motor, entiendo que te refieres a eso, está el de baja y el de alta.

En cuando a un tanque de gasolina que no es cilíndrico, más bien no es uniforme, habrá que hacer el truco que dije arriba, por cada 0.5 Litros de gasolina, marcas la resistencia del estado de la bolla. Si quieres tener más precisión, por cada 0.1 L.

La verdad que para medir tanques hay muchas formas.


PD: Hasta Hi-Man se queja de la gasolina.
 
Hice un programa con voz incluido en modo consola cálculo sobre el volumen de un cilindro, nivel de agua y cantidad de tubos por si lo quieres unir. Me sirvió para un amigo en un balcón estrecho con 8 tubos de 1.5 m. de altura cada uno.

Cilindro.jpg

Dejo ejecutable para que lo prueben y si quieren sacar sus propias conclusiones.

Con esto, iba a usar depósitos de todo tipo para un GLCD con Arduino, este ejemplo de PC es una demo.

Seguiré haciendo el programa en Arduino lo de entradas de datos el 23 y 278, como indiqué arriba y si mide de 0 al 100 % con dichos valores.

Saludos.
 

Adjuntos

  • Calculo cilindro voz Consola 06.zip
    4.3 KB · Visitas: 3
Lo de presión que tiene que llegar al motor, entiendo que te refieres a eso, está el de baja y el de alta.

Sin irme por las ramas, cuando mencioné presión,me refería al proceso de medicion de nivel por presion hidrostatica, que consiste básicamente en la lectura de un sensor de presión colocado estratégicamente en la parte inferior del tanque o de un sifón ligeramente ligado a la estructura, y se mide la presión ejercida por el líquido sobre la superficie; O sea, cuanto mayor es el nivel del liquido, mayor será la presión aplicada a la membrana / diafragma del sensor de presión.
Pero en tu caso, para no hacerlo tan engorroso, sigamos con el sensor de nivel resistivo.
Estoy internado en la clínica y no me dejan usar la notebook; Calculo que voy a poder ver lo que compartiste más tarde. Te diste una vuelta por el topico que te recomendé?
 
Atrás
Arriba