# ¿Acondicionar señal del potenciometro de combustible?



## Jeronimo17 (Jun 10, 2018)

Hola

Tengo una pequeña duda, tengo un deposito donde el nivel esta indicado con una boya y un potenciómetro con solo 2 cables no modificable (reostato?).

El rango es de 0 a 300 ohm, el problema que tengo es que lleno son 0 ohm y vacío 300 ohm, tengo 12V continua y me gustaría tener una salida aproximada de 0V vacío y 12V lleno.

Si fuera 0 vacío y 300 lleno seria fácil con una resistencia de 1K mismo y un AO en modo amplificador, pero al revés no encuentro un modo fácil de hacerlo.




Gracias


----------



## Fogonazo (Jun 10, 2018)

Si haces R6 de 300 Ohms y alimentas con 24V sobre TP1 consigues tus 12V.
Si lo con salida inversa inviertes la posición de R6 con VR1
Si no quieres alimentar con 12V, agregas un operacional con ganancia 2


----------



## Jeronimo17 (Jun 10, 2018)

Gracias Fogonazo, pero esas cosa no me valen



Fogonazo dijo:


> Si haces R6 de 300 Ohms y alimentas con 24V sobre TP1 consigues tus 12V.



Tendría 12V cuando esta vacío y 0V cuando lleno, quiero justo lo contrario y quiero que pase menos intensidad de 20 mA, es un coche lo que tengo son ~12V



Fogonazo dijo:


> Si lo con salida inversa inviertes la posición de R6 con VR1



Es como esta a la derecha, se acerca mas a lo que quiero, pero no se que hacer para pasar  9,23-12V a 0-12V


----------



## Fogonazo (Jun 10, 2018)

Fogonazo dijo:


> . . . . Si no quieres alimentar con 12V, agregas un operacional con ganancia 2


----------



## Jeronimo17 (Jun 10, 2018)

Eso no lo he entendido, para alimentar con 6V?


----------



## Fogonazo (Jun 10, 2018)

Jeronimo17 dijo:


> Eso no lo he entendido, para alimentar con 6V?


¿ Donde escribí algo sobre alimentar con 6V ?


----------



## Jeronimo17 (Jun 10, 2018)

Fogonazo dijo:


> Si no quieres alimentar con 12V, agregas un operacional con ganancia 2


Si no es con 12 sera con otro voltaje

Bueno supongamos que alimento con 24V,



Sigue sin valerme de 0-8V en la izquierda y de 16-24V en la derecha, 

recuerda:
deposito lleno = 0 ohm      ->Quiero señal de 12V
deposito vacío = 300 ohm -> Quiero señal de 0V

y todos los valores intermedios


----------



## peperc (Jun 10, 2018)

sin saber mucho de AO , pero acaso no hay modo inversor y modo no inversor ?


----------



## Dr. Zoidberg (Jun 10, 2018)

Tenés que usar la parte derecha de este dibujo:







Y con un *amplificador diferencial* restás los 12V menos la tensión de salida del divisor, entonces:
12V - 12Vpote = 0V de salida
12V - 9.23Vpote = 2.76V de salida
Ahora, con 12V de alimentación *NUNCA* podés conseguir 12V de salida a menos que uses un A.O rail-to-rail que son mas bien caros, así que quedate contento si conseguís 10V de salida con un LM358 que vale dos mangos.
Ahora hay que calcular la ganancia del ampli diferencial --> 10V / 2.76V = *3.62* !!! Listo, problema resuelto por un trump 

(No sé por que wikipedia le llama *restador inversor*.... si no invierte nada )


----------



## Jeronimo17 (Jun 10, 2018)

Gracias, esto último si hace lo que quiero pero la tensión tal como pone en wikipedia si sale invertida  y necesitaria fuente simétrica y otro amplificador... ¿de verdad es la solución más sencilla que hay?


----------



## Dr. Zoidberg (Jun 10, 2018)

Jeronimo17 dijo:


> pero la tensión tal como pone en wikipedia si sale invertida



Intercambia las entradaaaaaasssssss!!!!!
Es una restaaaaaaa!!
Y no uses los TLxxx por que no soprtan la tension de modo comun. Usa un LM358,ya te lo dije y tambien es doble.
Y si necesitas alimentacion de doble polaridad tampoco es tan grave, podes usar esto: Pequeño y simple inversor de tensión (-Vcc)


----------



## Jeronimo17 (Jun 11, 2018)

¿Entonces el LM358 no necesita tensión negativa?, tengo de esos también

Y ayer me confundí no me vale tampoco ni restando en positivo ni restando en negativo:

Mira, ahora el deposito estaría vacío y me esta dando la salida alta +9V y lo que quiero es cercano a 0V y cuando la VR2 este a 0 tener +9V


----------



## Gudino Roberto duberlin (Jun 11, 2018)

Hola, pues intercambia de lugar el reostato con la resistencia R3.
Y posiblemente R6 por R4.


----------



## Dr. Zoidberg (Jun 11, 2018)

Jeronimo17 dijo:


> Y ayer me confundí


En que te confundiste??? No creas que acá tenemos la bola de cristal.



Jeronimo17 dijo:


> recuerda:
> deposito lleno = 0 ohm ->Quiero señal de 12V
> deposito vacío = 300 ohm -> Quiero señal de 0V


Con el mismo esquema de la derecha, *si medimos entre masa y el centro del divisor* (1K + el pote de 0..300 ohms), tenemos:
deposito lleno = 0 ohm -> centro del divisor --> 12V
deposito vacío = 300 ohm -> centro del divisor --> 9.24
Esto ultimo "se parece a lo que querés??" --> Hasta acá tenemos cero Op.Amp

OK. con un ampli diferencial le restamos a esa señal 9.24V (poné un trimpot entre Vcc y GND) --> tenemos un Op.Amp
deposito lleno = 0 ohm -> centro del divisor --> 2.76V
deposito vacío = 300 ohm -> centro del divisor --> 0V

y esta salida la multiplicamos por 3.62: --> Tenemos otro Op. Amp en configuración no-inversora
deposito lleno = 0 ohm -> centro del divisor --> 10V
deposito vacío = 300 ohm -> centro del divisor --> 0V

Resumen: Un ampli diferencial entre el centro del divisor y GND + un ampli no-inversor con Av= 3.62 a la salida del anterior.
Seguimos usando un LM358 y resolviendo el problema por un trump.

Vamos moviendo un poquito las neuronas por que es muy fácil decir "esto me sirve y esto no me sirve" pero poner un poco de esfuerzo...nada, ehhh??? Ya te dí las herramientas... aprendé a usarlas por tu cuenta.


----------



## Jeronimo17 (Jun 11, 2018)

Gracias Zoidberg, ahora si lo entiendo me estaba ya liando demasiado
.


----------



## Meta (Oct 18, 2019)

Hola:

Quiero hacer un divisor de tensión con resistencia regulable de dos polos que regule de 0 V. a 5 V. Para luego entregarlo a una entrada analógica de Arduino, pero esto es otro tema. Mientras me funcione, todo bien.

Usando una resistencia de tres polos como este.




O
Usaré dos polos, que en realidad su valor máximo es de 278 Óhmios. El mínimo no llega a 0 Óhmios, llega a 23 Óhmios en el cual regula de 23 a 278 Óhmios. Hay que tenerlo en cuenta.

Aquí un esquema que hice básico con Proteus pero me regula de 2.5 V. a 5 V. Cuando en realidad tiene que ser de 0 V. a 5 V.




¿Cuál es la mejor manera de tener 0 a 5V?

La resistencia regulable de es 23 a 278 Óhmios si o si para este caso.

Saludos.


----------



## DJ T3 (Oct 18, 2019)

Si numeramos los pines;



*A* al positivo
*B* al arduino
*C* a la resistencia de 278 ohms


----------



## Meta (Oct 18, 2019)

El problema que el potenciómetro que tengo solo usa dos polos, el A y B. No tiene C.

Ahí está la cuestión.

La resistencia que uso tiene dos cables y es de un aforador (boya) de un coche.






Si subo la boya se pone a 23 Ohms, si la dejo abajo se queda en 278 Ohms. Éste aforador te comprueba el nivel de gasolina. Simplemente eso. Quiero hacerlo bien para no cargarme Arduino. Por ahora me centro en la electrónica de de alguna forma tengo que hacerlo de 0 V. a 5V. para la entrada analógica.


----------



## capitanp (Oct 18, 2019)

Porque de 0 a 5V si con arduino después puedes ajustar los valores a donde quieras.
Yo colocaria el pote a tierra la otra terminal a una resistencia lo suficientemente alta para no quemar el pote que esta DENTRO DEL TANQUE DE COMBUSTIBLE y la variación entre "0" y "algo" al arduino


----------



## Dr. Zoidberg (Oct 18, 2019)

El error es que el sistema del auto trabaja en "modo corriente" mientras que acá intentan usarlo en "modo tension".
La solucion es usar una fuente de tension controlada por corriente y dejarse de hacer inventos raros con ese sensor que no está pensado para el uso que quieren darle. Esto es, lo usan tal como viene y le agregan una pequeña resistencia en serie desde la cual toman y amplifican la tension desarrollada por la corriente que la atraviesa.


----------



## TRILO-BYTE (Oct 19, 2019)

Lo bueno es que el Dr me salvó de decir leperada y media ¿Dónde están el botón me divierte y me indigna?
Exijo un botón.

A parte que deja de eso el tanque de gasolina se mueve todo el tiempo, necesitas hacer un programa que se a estabilizador es decir que haga el promedio continuamente del nivel.

Imagina caes en un hoyo, pasas un tope, atropellas un perrito o subes una pendiente no va a ser una medida como si estuviera estacionado el coche, verías una lectura toda aleatoria.

Algunos medidores de aguja usan un resorte para evitar eso y los digitales usan todo un mar de sistemas PID.
Un Arduino mal programado un mal planteamiento de electrónica  y los vicios del delay en el programa harán puros dolores de cabeza


----------



## Scooter (Oct 19, 2019)

Si quieres usar una resistencia variable de dos polos y quieres una tensión proporcional, usa un generador de corriente constante. Todo lo demás dará una curva que luego tendrás que linealizar.

Por otra parte linealizar curvas por software es de complicado como el mecanismo de un botijo, más o menos.

Depende de lo que quieras hacer y para que.


Leyendo con más detalle...
23 Ohm
278 Ohm

A 14V de batería con el motor en marcha 278Ohm darán 5V con 

278 > >> 5
X >>> 14
278 × 14 / 5 = 778,4 Ω como R total 778,4-278= 500Ω que no es estándard
Yo le pondría en serie una de valor estándard superior, 510 o mejor 560 tomaría el valor de la lectura del conversor
Así ya sabes el.maximo y el mínimo
Como el depósito tiene una forma de "vaya usted a saber que" lo lógico sería ir llenando de litro en litro o de cinco en cinco, depende de la paciencia que tengas, e ir anotando las lecturas...
Con eso tendrás la curva de llenado del depósito.
Cuando tengas eso haces un filtro pasa baaaaaaaaaajo por software.

A fin de cuentas. ¿A que velocidad consumes gasolina? 10l/h

Mides el nivel cuando pones el contacto y lo guardas, luego cuando arranque el motor vas haciendo media ponderada con la nueva lectura
Nivel = Nivel*0,99+lecturaNueva*0,01
De ese modo la lectura actual vale 1/100 como si hicieras el promedio de cien lecturas... Si no vale con 100, pues con 1000.


----------



## DJ T3 (Oct 19, 2019)

Y te consulto. No tiene OBD el auto? Asi te ahorras de hacer experimentos


----------



## Scooter (Oct 19, 2019)

Lo mismo tiene pero es más aburrido.


----------



## DOSMETROS (Oct 19, 2019)

¿ No se puede comenzar y titular "Medidor de combustible con Arduino" ? . . .  no digo los newbies , digo los foreros ya antiguos que saben perfectamente cómo funciona el Foro y siguen jugando a las adivinanzas , intrigas y demás !


----------



## TRILO-BYTE (Oct 19, 2019)

Se llama método de aleccionamiento autodidacta por ADIVINO METERÍA. primera edición, editorial foros de electrónica, ISBN 134.

No sé digo si ya no sirve el tablero compra otro usado


----------



## Meta (Oct 19, 2019)

Scooter dijo:


> Si quieres usar una resistencia variable de dos polos y quieres una tensión proporcional, usa un generador de corriente constante. Todo lo demás dará una curva que luego tendrás que linealizar.
> 
> Por otra parte linealizar curvas por software es de complicado como el mecanismo de un botijo, más o menos.
> 
> ...



Muy interesante el detalle que parece que puedes saber lo que muestran algunos coches, por ejemplos, los KM faltantes antes de gastarse la gasolina.

No se mucho de cuanto consume, pero es un coche pequeño de un depósito de combustible a 35 L.

El motor bomba de gasolina pone 12VDC y la resistencia o boya pasa hasta los 5V por ahí, no 12V o los 14 V cuando el motor está arrancado.

Sin comentar nada de Arduino que eso es para más adelante y no en esta sección del foro, obtener de alguna manera los 0 V. a 5 V.

Por alguna razón tiene un mínomo de 23 Óhmios. A lo mejor es bueno poner una resistencia de por medio como hice arriba, pero en serie, de esta manera.

Si lo meto directamente a Arduino lo más probable que se quemara.





(Al final tuve que meter Arduino por medio para que se hagan una idea).

Mi objetivo es ese, con esa resistencia con dos polos sacar de 0 a 5 V. No quiero que se queme nada. Por eso usar divisor de tensión o algo parecido y lo más sensillo posible.

Ya qu ehablan del  OBD, te muestra en una pantalla que se compró para el OBD todo, muestra todo menos el nivel de combustible. Por eso hacerlo a parte. 






También hay nivels de combustibles analógicos y digitales como estos, pero ninguto te avisa a nivel acústico cuando llega la luz de reserva a 1/4.






Por eso todo eso, más barato que pagar 600 € por una body para que funcione todo. Es otra historia que no voy a contar. A parte que también lo hacemos por temas didácticos.

Saludos.


----------



## Scooter (Oct 19, 2019)

Así no irá , evidentemente.

Así dará 0V y lectura 0 todo el rato.

Mejor que lo que he dicho sería alimentarlo de un potencial fijo, por ejemplo 12V regulados o mejor algo menos para que esté regulado siempre aunque el motor esté parado.
Así la lectura sería válida aunque esté el motor parado, que a lo mejor está la batería por debajo de 12V.

De todos modos ve cambiando de objetivo, como tu resistencia no se hace 0Ω no vas a conseguir 0V con un circuito sencillo, necesitarías corregir el offset y no merece la pena el esfuerzo, el conversor tiene 1024 posiciones y no necesitas tanto, de litro en litro ya sería hilar fino.


----------



## TRILO-BYTE (Oct 19, 2019)

Es como una vez ví la absurda idea de conectar un termopar directo a un adc por medio de divisor de voltaje.
investiga bien como funciona el tablero y el controlador para que te des una idea de lo que vaz a hacer.


----------



## Meta (Oct 19, 2019)

Buenas: 

El truco de tener los 12 V me gusta más. Ya que por ahí podría tener los 0 a 5V hacia la salida del divisor de tensión.

Para no haber problemas con los 14 V a la hora de arrancar el motor, se usa un regulador de tensión 7812 como este caso para tener estabilidad.






Siempre 12V. Lo que desde el 12V, quiero obtener de 0 a 5V. Voy a mirar si lo consigo. Un mini diseño.

Saludos.


----------



## juanma2468 (Oct 19, 2019)

Meta dijo:


> Buenas:
> 
> El truco de tener los 12 V me gusta más. Ya que por ahí podría tener los 0 a 5V hacia la salida del divisor de tensión.
> 
> ...


Tené en cuenta que la mínima tensión que necesita para que el 7812 pueda regular es de 14,5V en su entrada, de lo contrario no te regula nada.


----------



## Meta (Oct 19, 2019)

Aquí l atable, pondré por lo menos uno de 7809 o el otro un poco inferior.

http://www.farnell.com/datasheets/2...161.829289175.1571519701-633976552.1571519701

Como curiosidad para probar cálculos de divisor de tensión.
Calculadora divisor de tensión

Menudo jaleo esto de sacar los 0 a 5V, ajjajajajajjaja. Con usar resistencias de dos polos, no potenciómetros. Medio siglo, pero lo intentamos. Lo lograremos.

Saludos.


----------



## Gudino Roberto duberlin (Oct 19, 2019)

Hola, creo que es conveniente implementar un op-amp tipo open colector, entre sensor y Arduino. De esa manera proteges al Arduino de no sobrepasar 5v en el ADC.
También hay que añadir un filtro pasabajos.
Y por parte de alimentación al sensor, lo alimentas con fuente de corriente cte. cómo comentó el Dr.


----------



## DOSMETROS (Oct 19, 2019)

Y manejar todo desde los 5 V ?


----------



## TRILO-BYTE (Oct 19, 2019)

A mí no me gusta nada este hilo hay nos vemos 😬


----------



## juanma2468 (Oct 19, 2019)

Meta dijo:


> Hola:
> 
> Quiero hacer un divisor de tensión con resistencia regulable de dos polos que regule de 0 V. a 5 V. Para luego entregarlo a una entrada analógica de Arduino, pero esto es otro tema. Mientras me funcione, todo bien.
> 
> ...


Si volvemos al post original se me ocurre que se puede hacer uso del esquema inicial, pero haciendo uso de un AO1 con ganancia 1 para tomar la tensión del divisor y restarle 2,5V, de esa forma cuando el sensor tenga el mismo valor que la resistencia del divisor, entonces la tensión a la salida del AO1 va a ser de 0V y cuando el sensor esté en su menor valor (23 ohms) la salida del divisor va a ser cercana a los 5V y la del AO1 será cercana a los 2,5V. Luego con otro AO2 se aplica una ganancia "A" tal que cuando el sensor se encuentre en su menor valor, a la salida de este se obtenga los 5V necesarios y que cuando el sensor tiene el mismo valor de la resistencia del divisor la salida del AO2 será de 0V. Claro está que el IC hay que alimentarlo con una tensión mayor a 5V y con fuente partida de ser posible para lograr así bien el cero de salida (despreciando el offset del mismo). Posible IC a usar LM358, por ejemplo.


----------



## Dr. Zoidberg (Oct 19, 2019)

Con una fuente de corriente constante de 15mA el curcuito es algo como esto:

Con lo que vas a lograr una tension de salida entre 4.2V y 0.345V. Luego, por soft, ajustas entre el 0% y el 100%


----------



## Meta (Oct 20, 2019)

Gracias por los comentarios.

Se ve que este IC.
http://www.ti.com/lit/ds/symlink/lm2904-n.pdf
Que mensionaron.

Aquí hay un vídeo de ello con Arduino.


----------



## Scooter (Oct 20, 2019)

Ahí está la cuestión, hay métodos mejores.
Pero bueno, si se quiere entretener...


----------



## papirrin (Oct 20, 2019)

Yo nada mas hago una aclaracion
.. esos "potenciometros de dos patas" tengo entendido que sse llaman reostatos.


----------



## DOSMETROS (Oct 20, 2019)

Claro , porque además son de alambre !

Pregunta , y doblar un poco el cursor para que llegue a cero ? 

*P.D.:* Con un díodo en serie con el negativo del Arduino , podemos engañarlo respecto del 0 V que no es cero 

Luego , lo de la salida se verá . . .


----------



## Dr. Zoidberg (Oct 20, 2019)

Meta dijo:


> Gracias por los comentarios.
> 
> Se ve que este IC.
> http://www.ti.com/lit/ds/symlink/lm2904-n.pdf
> ...


Y que tiene que ver el video con la consulta de este tema????

Ya te dí arriba la solucion a tu problema, que mas estas buscando??


DOSMETROS dijo:


> Pregunta , y doblar un poco el cursor para que llegue a cero ?


Es probable que no llegue a cero a propósito, para evitar calentamiento/chispas en algo que casi está en contacto con el combustible.


----------



## TRILO-BYTE (Oct 20, 2019)

Pues según yo .
Los flotadores si son resistencias de carbón, pero el abanico es alargado con pistas de cobre con baño de niquel. Que es lo que hace contacto con la escobilla del flotador.

Y cuando está lleno el tanque la resistencia baja y cuando está vacío la resistencia sube al máximo.

Bueno eso es lo que ví en varios tanques que revise en sus días.


----------



## papirrin (Oct 20, 2019)

TRILO-BYTE dijo:


> Pues según yo .
> Los flotadores si son resistencias de carbón, pero el abanico es alargado con pistas de cobre con baño de niquel. Que es lo que hace contacto con la escobilla del flotador.
> 
> Y cuando está lleno el tanque la resistencia baja y cuando está vacío la resistencia sube al máximo.
> ...


Nop... o depende... la mayoria son de alambre para que el combustible no dañe al carbon... puede ser que ya sean de ese material pero los aantiguos todos eran de alambre.


----------



## TRILO-BYTE (Oct 20, 2019)

Yo he desarmado muchos flotadores, son de carbón pero las pistas son extendidas de pistas metalicas


----------



## papirrin (Oct 20, 2019)

TRILO-BYTE dijo:


> Yo he desarmado muchos flotadores, son de carbón pero las pistas son extendidas de pistas metalicas


Ok... puede ser que algunos y sobretodo modernos... estoy completamente seguro que se ponian de alambre. Incluso en modelos antiguos de autos el control de la velocidad de los limpiadores y faros era con reostatos de alambre... ni se conocian los de carbon.


----------



## peperc (Oct 20, 2019)

Meta dijo:


> Hola:
> 
> Quiero hacer un divisor de tensión con resistencia regulable de dos polos que regule de 0 V. a 5 V. Para luego entregarlo a una entrada analógica de Arduino, pero esto es otro tema. Mientras me funcione, todo bien.
> 
> ...



meta, haces es emismo circuito, pero las resistencias al revez, o sea el pote entre masa y el medio, asi tenes entre 0 y 2,5 v.
luego manejas todo desde el arduino con istrucciones.
el A/D de el arduino  le sobra sensibilidad y ademas tenes instrucciones para convertir esos 0 a 2,5 en minimo y maximo.

no te compliques .

ah.. luego lo de el programa, y eso de el nivel de combustible, que si se esta moviendo te marcara cualquier cosa, pues  haces que solo considere validas los valores  que sean iguales  durante 5 o 10 medicione sconsecutivas, sino , las descarta y no cambia.
si va por lugares donde el auto se mueve mucho las lectuas fluctuan, y no seran iguales.
cuando vaya por un lugar tranquilo ahi el nivel essera estable y todas las lecturas seran iguales.

el tema es si va suave pero por una pendiente, pues, solo mientras vaya por esa pendiente tendras error.
sino, bueno, es imaginacion, :
que no acepte cambios  bruscos  de valores.


----------



## ricbevi (Oct 21, 2019)

Con la consigna original(divisor resistivo y R entre 23Ω y 278Ω ) nunca se va a llegar a 0V.

Yo lo implementaría a partir de una tensión de 8V regulada para no tener problemas.

 Lo que no es valor comercial de resistencia se arma con resistencias en serie o paralelo o ambas o un preset multivueltas ajustado a dicho valor.


----------



## ricbevi (Oct 22, 2019)

Los valores serán de 5V de máximo y 0,68V mínimo. 

Con esa excursión de tensión y dependiendo de la capacidad de depósito de combustible y si el ADC es de 10bit(1023) puedes tener buena resolución aunque partas de dicho piso.


----------



## TRILO-BYTE (Oct 22, 2019)

Mi pregunta es:
Antes de inventar cada burrada.

¿Ya revisaron como funciona en el carro?
Digo.

1.- medir directamente del arnés del tanque de gasolina con flotador arriba y abajo.
2.- medir directamente del tablero que llega.
3.- del circuito del tablero cómo está formado.


----------



## Jeronimo17 (Oct 22, 2019)

¿Acondicionar señal del potenciometro de combustible?

Yo lo conseguí para un sistema similar para representarlo con una  array de led con un LM3914,

En mi caso el problema era el cuadro (que al final se fue otra cosa del cuadro y lo tuve que reparar ;D) y por no desmontar hice un circuito alternativo desconectando la conexión al cuadro y alimentando la resistencia de la boya a 5V en serie con otra, usé un regulador 7805 para alimentar todo el circuito, y no llegué a usar ningún AO a parte del LM3914 y ajuste a voltaje min y max (de acuerdo al voltaje calculado del divisor de tensión creado con la boya), con potenciómetros en el LM3914 y está funcionando en el coche de un amigo.

Te recomiendo que ponga un regulador de 5V como el 7805, desconectes la boya del coche y alimentes arduino y el divisor de tensión con los 5V del regulador, y por programacion del arduino pues cojas el voltaje min y max que saques con el divisor de tensión en la entrada analogica


----------



## DOSMETROS (Oct 22, 2019)

Unificados


----------



## sergiot (Oct 23, 2019)

Los flotantes son en su gran mayoria como trilo-byte, los de alambre se dejaron de usar hace varias decadas, los hay de las dos maneras, lleno poca resistencia o lleno maxima resistencia.


----------



## Meta (Oct 29, 2019)

Buenas:

Al final estoy probando que me suelte de 0 o cerca de 0V hasta los 2.5 V alimentado desde los 5V.

De 23 Óhmios a 278 Óhmios, nunca llegará a los 0V. Como quiero que en el LCD aparezca de 0 a 100 % hablando de porcentaje, tampoco llegará a 0 %. Parece que se puede hacer un truco. Si llega a 23 Óhmios, en el LCD que ponga 0 %, que lo indique de alguna manera.

De 23 a 28 Óhmios que sean de 0 % al 100 %, algún truco de programación se podrá hacer. Con un if else si indica que estás en los 23 Óhmios, que ponga 0%, hay que verlo.


```
#include <LiquidCrystal.h>

// Inicializa la librería con sus pines indicados.
// RS, RW, Enable, D4, D5, D6, D7.
LiquidCrystal lcd(8, NULL, 9, 4, 5, 6, 7);
// LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// Pin 10 para saber que es luz de fondo.
const byte LuzFondo = 10;

int valorPot = 0;
float voltajePot = 0;
float Porcentaje = 0;

void setup()
{
  Serial.begin(115200);     // Puerto serie 115200 baudios.
  lcd.begin(16, 2);         // Formato de pantalla.
  lcd.clear();      // Borra la pantalla y su posición superior izquierda.
  lcd.print("      FIAT      ");
  delay(2000);
  lcd.clear();
}

void loop()
{

  //voltajePot = valorPot * (5.0 / 1023.0);
  //Porcentaje = valorPot * (100.0 / 1023.0);

  //voltajePot = (valorPot * 2.5) * (2.5 / 512);

  valorPot = analogRead(1);

  lcd.setCursor(0, 0);
  Serial.print("P1 ");
  Serial.print(voltajePot);
  Serial.print(" V. ");
  lcd.setCursor(0, 1);
  Serial.print(Porcentaje);
  Serial.print(" % ");
  Serial.println(valorPot);
  delay(100);
}
```


----------



## Scooter (Oct 29, 2019)

Puedes usar map(xxx,yyy,0,100) que es mas sencillo.
Lo que pasa es que tu conversión no es lineal.


----------



## Meta (Oct 29, 2019)

Map lo uso por el tema de que no usa comoa flotante. 

Ahora si funciona como quiero.


```
#include <LiquidCrystal.h>

// Inicializa la librería con sus pines indicados.
// RS, RW, Enable, D4, D5, D6, D7.
LiquidCrystal lcd(8, NULL, 9, 4, 5, 6, 7);
// LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// Pin 10 para saber que es luz de fondo.
const byte LuzFondo = 10;

int valorPot = 0;
float voltajePot = 0;
float Porcentaje = 0;

void setup()
{
  Serial.begin(115200);     // Puerto serie 115200 baudios.
  lcd.begin(16, 2);         // Formato de pantalla.
//  lcd.clear();      // Borra la pantalla y su posición superior izquierda.
  lcd.print("      FIAT      ");
  delay(2000);
}

void loop()
{
valorPot = analogRead(1);
// voltajePot = valorPot * (5.0 / 1023.0);
  //Porcentaje = valorPot * (100.0 / 1023.0);

voltajePot = (valorPot * 2) * (2.5 / 512);
Porcentaje = valorPot * (100.0 / 511.0);

  //lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print("Gasolina ");
  lcd.print(voltajePot);
  lcd.print(" V. ");
  //Serial.print("P1 ");
  //Serial.print(voltajePot);
  //Serial.print(" V. ");

  lcd.setCursor(0, 1);
  lcd.print(Porcentaje);
  lcd.print(" % ");
  lcd.setCursor(8, 1);
  lcd.print("    ");
  lcd.setCursor(8, 1);
  lcd.print(valorPot);
  //Serial.print(Porcentaje);
  //Serial.print(" % ");
  //Serial.println(valorPot);
  delay(2000);
}
```

Ya haré la parte con Visual Studio para PC una interfaz para verlo desde el PC sin usar el Monitor Serial de Arduino IDE.

A lo largo de esta tarde, compraré los componentes necesarios para hacer ese divisor de tensión, y mostraré con fotos y vídeos lo que he hecho.

Saludos.


----------



## Jeronimo17 (Oct 29, 2019)

Si el rango es de 20 a 1000 por ejemplo:
(Variable-20)/980


----------



## Meta (Oct 29, 2019)

Para tenerlo claro. En mi caso es, 23 a 278 Óhmios.

(Variable - 23) / 255.

Por lo que entiendo, el 225 viene de 278 - 23.

La palabra Variable viene del valor la resistencia de la boya del aforador, de 23 a278 Óhmios.


----------



## Jeronimo17 (Oct 29, 2019)

¡No!, el Arduino interpreta la tensión analógica de 0 a 5V, con un valor de 0 a 1024 (uno, nano...), al hacer el divisor de tensión depende de la resistencias que pongas tendrás un voltaje mínimo y otro máximo, tendrás que saber a que valor digital corresponde en Arduino el mínimo y el máximo.

(Variable-ValorMin)/(1023-ValorMin-(1023-ValorMax))

Eso de 0 a 1, por 100 para %


----------



## Dr. Zoidberg (Oct 29, 2019)

Jeronimo17 dijo:


> ¡No!, el Arduino interpreta la tensión analógica de 0 a 5V, con un valor de 0 a 1024 (uno, nano...), al hacer el divisor de tensión depende de la resistencias que pongas tendrás un voltaje mínimo y otro máximo, tendrás que saber a que valor digital corresponde en Arduino el mínimo y el máximo.
> 
> (Variable-ValorMin)/(1023-ValorMin-(1023-ValorMax))
> 
> Eso de 0 a 1, por 100 para %


El problema con esa conversión ya lo comentó @Scooter : la relación desplazamiento del flotante vs. resistencia NO ES LINEAL!!! así que por más que ajusten el offset y el span de la medida lograda, el resultado de la operación no va a coincidir con el porcentaje real de combustible disponible. La unica forma de aproximar la realidad es mediante una tabla de búsqueda (lookup table).


----------



## Jeronimo17 (Oct 29, 2019)

¿Ni usando un AO en modo buffer?


----------



## Scooter (Oct 29, 2019)

Además la sección del tanque no tiene por qué ser homogénea


----------



## ricbevi (Oct 29, 2019)

El depósito de combustible tiene generalmente la forma que encuentra el fabricante para que colocandolo en el lugar donde lo ubican tenga la capacidad que necesita el diseño del automóvil para tener una autonomía que considera aceptable.

Suelen ser con molduras y formas que no es fácil de calcular mediante una fórmula la capacidad vs. nivel aunque el flotante y su parte electrónica tenga un desplazamiento totalmente lineal o ajustable matemáticamente por eso la solución ya se dio aquí y es aforar mediante volúmenes conocido lo desconocido.( lease tabla capacidad/nivel del flotante).

Eso no se compensa desde "afuera" con la implementación ni de un divisor resistivo, ni con un AO en el modo que quieras.

PD:nos cruzamos con *Scooter *en el concepto a mostrar


----------



## Scooter (Oct 29, 2019)

Jeronimo17 dijo:


> ¿Ni usando un AO en modo buffer?


Si no es lineal no es lineal, cuanto mas lo toques menos lineal será.
El único modo sería una fuente de corriente constante y la sección seguiría sin ser lineal

Puedes vaciar por completo el tanque, y estándo en plano, llenar de litro en litro y registrar la medida.


----------



## Jeronimo17 (Oct 29, 2019)

Bueno en principio tampoco necesitas tanta precisión, a quien se lo hice esta bastante conforme


----------



## Scooter (Oct 30, 2019)

Ciertamente los aforadores de los depósitos nunca han sido lineales, recuerdo que el primer cuarto me duraba x km el segundo cuarto y km etc, en su día me lo sabía y ya está.
La cuestión es que como ahora se puede ir ajustanto mejor, pues eso.

Se puede hacer también una "calibración de manos limpias" que por otra parte sería mejor:
Llenas a tope el depósito y apuntas, en el mismo arduino con una función específica 0km
Cada cuando te apetezca con el coche parado y estabilizado copias los km que llevas y se anotan con la lectura del conversor.
Eso lo haces todas las veces que quieras y tienes una relación lectura km...
Lo malo es que para aforar la parte final debarías de esperar a que se pare y eso en según que coche puede ser muy conflictivo; purgar la bomba y cosas así.
De este modo tendrías una relación de consumos interesante. Habría que hacerlo en diferentes modos de conducción, claro.

Mira, proyecto extendido, que otro pin del arduino reciba pulsos de cuenta km.


----------

