Autor Tema: Representar un rango con otro  (Leído 5000 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Eduardo Rodas

  • PIC12
  • **
  • Mensajes: 62
    • Kit electronica
Representar un rango con otro
« en: 17 de Mayo de 2022, 14:18:05 »
Hola a todos, quiero representar un rango de valores entre 1 a 16 pero con otro que va de 10 a 5
y no encuentro la formula matemática para hacerlo.

Quizás así se entienda mejor:

1---------------16
10--------------5

como puedo pasar de un rango a otro? Alguien por favor me puede ayudar?.
Muchas gracias.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Representar un rango con otro
« Respuesta #1 en: 17 de Mayo de 2022, 14:20:06 »
Hola a todos, quiero representar un rango de valores entre 1 a 16 pero con otro que va de 10 a 5
y no encuentro la formula matemática para hacerlo.

Quizás así se entienda mejor:

1---------------16
10--------------5

como puedo pasar de un rango a otro? Alguien por favor me puede ayudar?.
Muchas gracias.

¿Dos ecuaciones, dos incógnitas?

https://blog.unitips.mx/solucion-de-ecuaciones-con-dos-incognitas
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Eduardo2

  • PIC24H
  • ******
  • Mensajes: 1004
Re:Representar un rango con otro
« Respuesta #2 en: 17 de Mayo de 2022, 15:12:53 »
Hola a todos, quiero representar un rango de valores entre 1 a 16 pero con otro que va de 10 a 5
y no encuentro la formula matemática para hacerlo.

Quizás así se entienda mejor:

1---------------16
10--------------5

como puedo pasar de un rango a otro? Alguien por favor me puede ayudar?.
Muchas gracias.

La fórmula de interpolación de Lagrange para una recta queda:
x : x0...x1
y : y0...y1
y = y0*(x1-x)/(x1-x0) + y1*(x-x0)/(x1-x0)

Alplicado a lo tuyo:
x : 10...5
y :  1...16
y = 1*(5-x)/(5-10) + 16*(x-10)/(5-10)  = 31-3*x
 




Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Representar un rango con otro
« Respuesta #3 en: 17 de Mayo de 2022, 16:01:47 »
Hola a todos, quiero representar un rango de valores entre 1 a 16 pero con otro que va de 10 a 5
y no encuentro la formula matemática para hacerlo.

Quizás así se entienda mejor:

1---------------16
10--------------5

como puedo pasar de un rango a otro? Alguien por favor me puede ayudar?.
Muchas gracias.

La fórmula de interpolación de Lagrange para una recta queda:
x : x0...x1
y : y0...y1
y = y0*(x1-x)/(x1-x0) + y1*(x-x0)/(x1-x0)

Alplicado a lo tuyo:
x : 10...5
y :  1...16
y = 1*(5-x)/(5-10) + 16*(x-10)/(5-10)  = 31-3*x

Yo entendería que cuando tiene 1, quiere obtener 10 y cuando tiene 16, quiere obtener 5, suponiendo que fuera lineal todo. ¿O estoy equivocado?

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Eduardo Rodas

  • PIC12
  • **
  • Mensajes: 62
    • Kit electronica
Re:Representar un rango con otro
« Respuesta #4 en: 17 de Mayo de 2022, 16:02:36 »
Ok, gracias. Lo que quiero hacer es representar la escala de ESR de un medidor análogo en un display lcd 16x2,
pero la escala no es lineal como se ve en la imagen. hay tramos cortos con "mucha resistencia" y tramos largos
con poca resistencia. Imagine entonces que si tomara toda la escala ente 0 y 100% podría empezar a relacionar
cada tramo con un valor de resistencia.

Si se fijan, de 10 a 5 ohms hay como el 16% aprox de toda la escala... de ahí viene mi pregunta.
1---------16
10--------5


Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Representar un rango con otro
« Respuesta #5 en: 17 de Mayo de 2022, 16:09:40 »
Ok, gracias. Lo que quiero hacer es representar la escala de ESR de un medidor análogo en un display lcd 16x2,
pero la escala no es lineal como se ve en la imagen. hay tramos cortos con "mucha resistencia" y tramos largos
con poca resistencia. Imagine entonces que si tomara toda la escala ente 0 y 100% podría empezar a relacionar
cada tramo con un valor de resistencia.

Si se fijan, de 10 a 5 ohms hay como el 16% aprox de toda la escala... de ahí viene mi pregunta.
1---------16
10--------5

Si no es lineal, se va al carajillo todo lo anterior.

Ahí te toca interpolar con una tabla.

Por ejemplo para 7, tienes 10, 4, 20, para 3, tienes 30, para 2.1, tienes 40 etc.

Cuando tengas un valor que no está en la tabla, por ejemplo digamos 2.5, interpolas así:

(3 -2.5)/(30 - x) = (3-2.1)/(30-40) y despejas x.

Mientras mas datos tengas, es más preciso.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Eduardo Rodas

  • PIC12
  • **
  • Mensajes: 62
    • Kit electronica
Re:Representar un rango con otro
« Respuesta #6 en: 17 de Mayo de 2022, 16:21:20 »
Ok, gracias. Lo que quiero hacer es representar la escala de ESR de un medidor análogo en un display lcd 16x2,
pero la escala no es lineal como se ve en la imagen. hay tramos cortos con "mucha resistencia" y tramos largos
con poca resistencia. Imagine entonces que si tomara toda la escala ente 0 y 100% podría empezar a relacionar
cada tramo con un valor de resistencia.

Si se fijan, de 10 a 5 ohms hay como el 16% aprox de toda la escala... de ahí viene mi pregunta.
1---------16
10--------5

Si no es lineal, se va al carajillo todo lo anterior.

Ahí te toca interpolar con una tabla.

Por ejemplo para 7, tienes 10, 4, 20, para 3, tienes 30, para 2.1, tienes 40 etc.

Cuando tengas un valor que no está en la tabla, por ejemplo digamos 2.5, interpolas así:

(3 -2.5)/(30 - x) = (3-2.1)/(30-40) y despejas x.

Mientras mas datos tengas, es más preciso.

Ya había pensado lo de la tabla, pero no sabia como mostrar valores que no están en ella.
Probare tu método Dominus ...muchas gracias.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Representar un rango con otro
« Respuesta #7 en: 17 de Mayo de 2022, 16:23:21 »
Ok, gracias. Lo que quiero hacer es representar la escala de ESR de un medidor análogo en un display lcd 16x2,
pero la escala no es lineal como se ve en la imagen. hay tramos cortos con "mucha resistencia" y tramos largos
con poca resistencia. Imagine entonces que si tomara toda la escala ente 0 y 100% podría empezar a relacionar
cada tramo con un valor de resistencia.

Si se fijan, de 10 a 5 ohms hay como el 16% aprox de toda la escala... de ahí viene mi pregunta.
1---------16
10--------5

Si no es lineal, se va al carajillo todo lo anterior.

Ahí te toca interpolar con una tabla.

Por ejemplo para 7, tienes 10, 4, 20, para 3, tienes 30, para 2.1, tienes 40 etc.

Cuando tengas un valor que no está en la tabla, por ejemplo digamos 2.5, interpolas así:

(3 -2.5)/(30 - x) = (3-2.1)/(30-40) y despejas x.

Mientras mas datos tengas, es más preciso.

Ya había pensado lo de la tabla, pero no sabia como mostrar valores que no están en ella.
Probare tu método Dominus ...muchas gracias.

Más información por si acaso:

https://academiarafavilchez.com/como-realizar-una-interpolacion-lineal-simple/
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Eduardo Rodas

  • PIC12
  • **
  • Mensajes: 62
    • Kit electronica
Re:Representar un rango con otro
« Respuesta #8 en: 17 de Mayo de 2022, 17:17:02 »
Ok, gracias. Lo que quiero hacer es representar la escala de ESR de un medidor análogo en un display lcd 16x2,
pero la escala no es lineal como se ve en la imagen. hay tramos cortos con "mucha resistencia" y tramos largos
con poca resistencia. Imagine entonces que si tomara toda la escala ente 0 y 100% podría empezar a relacionar
cada tramo con un valor de resistencia.

Si se fijan, de 10 a 5 ohms hay como el 16% aprox de toda la escala... de ahí viene mi pregunta.
1---------16
10--------5

Si no es lineal, se va al carajillo todo lo anterior.

Ahí te toca interpolar con una tabla.

Por ejemplo para 7, tienes 10, 4, 20, para 3, tienes 30, para 2.1, tienes 40 etc.

Cuando tengas un valor que no está en la tabla, por ejemplo digamos 2.5, interpolas así:

(3 -2.5)/(30 - x) = (3-2.1)/(30-40) y despejas x.

Mientras mas datos tengas, es más preciso.

Ya había pensado lo de la tabla, pero no sabia como mostrar valores que no están en ella.
Probare tu método Dominus ...muchas gracias.

Más información por si acaso:

https://academiarafavilchez.com/como-realizar-una-interpolacion-lineal-simple/

Uff! ahora si se entiende mucho mejor. Gracias.  ((:-))

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Representar un rango con otro
« Respuesta #9 en: 17 de Mayo de 2022, 17:20:42 »
Ok, gracias. Lo que quiero hacer es representar la escala de ESR de un medidor análogo en un display lcd 16x2,
pero la escala no es lineal como se ve en la imagen. hay tramos cortos con "mucha resistencia" y tramos largos
con poca resistencia. Imagine entonces que si tomara toda la escala ente 0 y 100% podría empezar a relacionar
cada tramo con un valor de resistencia.

Si se fijan, de 10 a 5 ohms hay como el 16% aprox de toda la escala... de ahí viene mi pregunta.
1---------16
10--------5

Si no es lineal, se va al carajillo todo lo anterior.

Ahí te toca interpolar con una tabla.

Por ejemplo para 7, tienes 10, 4, 20, para 3, tienes 30, para 2.1, tienes 40 etc.

Cuando tengas un valor que no está en la tabla, por ejemplo digamos 2.5, interpolas así:

(3 -2.5)/(30 - x) = (3-2.1)/(30-40) y despejas x.

Mientras mas datos tengas, es más preciso.

Ya había pensado lo de la tabla, pero no sabia como mostrar valores que no están en ella.
Probare tu método Dominus ...muchas gracias.

Más información por si acaso:

https://academiarafavilchez.com/como-realizar-una-interpolacion-lineal-simple/

Uff! ahora si se entiende mucho mejor. Gracias.  ((:-))

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Eduardo Rodas

  • PIC12
  • **
  • Mensajes: 62
    • Kit electronica
Re:Representar un rango con otro
« Respuesta #10 en: 18 de Mayo de 2022, 11:21:15 »
ja ja ja!! buen gif. Funciono!!

Así quedo...

OHMS = (5 - 10) / (16 - 0) * (ESR - 0) + 10

Se puede quitar (ESR - 0) que no hace nada, pero quería seguir la formula tal cual es, porque hay que usar de 0 a 16 en lugar de 1 a 16.

El display esta un poco desordenado, porque estoy haciendo pruebas. Fijarse en el porcentaje y en la variable OH=

Muchas gracias nuevamente por la ayuda.



Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Representar un rango con otro
« Respuesta #11 en: 18 de Mayo de 2022, 12:28:05 »


Así quedo...

OHMS = (5 - 10) / (16 - 0) * (ESR - 0) + 10



Pero eso es algo lineal ya que ERS le multiplicas por una pendiente o ganancia y le sumas un valor o desplazamiento (offset) constantes (y = x*m + offset = OHMS = ESR*m + offset)

Con la interpolación es consular los valores más cercanos que existen en la tabla y en función de ellos generar una nueva pendiente y un nuevo desplazamiento. Es decir que para cada valor de ERS obtienes una pendiente y un offset diferentes.

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Eduardo Rodas

  • PIC12
  • **
  • Mensajes: 62
    • Kit electronica
Re:Representar un rango con otro
« Respuesta #12 en: 18 de Mayo de 2022, 14:03:01 »
Espero entender, pero la formula cambiaria según cada tramo de la escala o porcentaje de la misma.
Si funciona en proteus ... ahora falta probarlo en la realidad en un PIC16f1827.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Representar un rango con otro
« Respuesta #13 en: 18 de Mayo de 2022, 16:20:35 »
Espero entender, pero la formula cambiaria según cada tramo de la escala o porcentaje de la misma.
Si funciona en proteus ... ahora falta probarlo en la realidad en un PIC16f1827.

Eso mismo, la ecuación (fórmula) es dinámica, se adapta a cada valor. Estática sería si fuera lineal
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Eduardo Rodas

  • PIC12
  • **
  • Mensajes: 62
    • Kit electronica
Re:Representar un rango con otro
« Respuesta #14 en: 18 de Mayo de 2022, 19:09:31 »
Espero entender, pero la formula cambiaria según cada tramo de la escala o porcentaje de la misma.
Si funciona en proteus ... ahora falta probarlo en la realidad en un PIC16f1827.

Eso mismo, la ecuación (fórmula) es dinámica, se adapta a cada valor. Estática sería si fuera lineal

Probado en PIC16f1827 y funciona perfecto, falta hacer un código que calibre el ADC con la escala debido a
la tolerancia de los componentes ... para que todos los que haga midan lo mismo. No soy bueno en matemáticas y no lo
hubiese logrado sin usted, le doy mis mas sinceros agradecimientos ... y a los demás que me ayudaron.  ((:-))


 

anything