Arduino Forum

International => Español => Software => Topic started by: VicenteCarlos on Jan 31, 2020, 07:35 pm

Title: Buscar valor a partir de una variable
Post by: VicenteCarlos on Jan 31, 2020, 07:35 pm
Buenas tardes a todos. No se si el título es acertado o no, pero paso a exponeros mi problema por si me podéis echar un cable.
Tengo un sensor que me da valores en un rango de 155 a -155. De estos 310 valores, que suponen 310 posiciones, me interesan únicamente 100. Serán el valor correspondiente a la posición 1, el de la 2, ….

Posición    Valor
1              155
2              147
3              125
.
.
.

El valor lo tengo asignado a la variable A.
Evidentemente, podría decirle mediante if que si a=155 posición=1 y así sucesivamente, pero quiero avanzar un paso.
Se me había ocurrido utilizar una SD con la tabla creada, pero por más que he leído los tutoriales que encuentro en internet sobre sd, todos ellos hablan de escritura y lectura, pero no de búsqueda de valor en determinada posición o línea y utilizarla como variable.

Disculpar si no me he expresado con la suficiente claridad.
Muchas gracias a todos.
Title: Re: Buscar valor a partir de una variable
Post by: Kike_GL on Feb 01, 2020, 01:40 am
Quote from: VicenteCarlos
Tengo un sensor que me da valores en un rango de 155 a -155. De estos 310 valores, que suponen 310 posiciones, me interesan únicamente 100.
Que tipo de sensor es ? imagino que algún tipo de sensor con salida digital, digo por los valores negativos...


En realidad podrías hacer:

Code: [Select]

const byte t = 3;                       //Cantidad de constantes
const int x[t] = {155,147,125}; //Tus constantes
int a = 100;                              //Sensor
for (byte i=0; i<t; i++){
   if (x(i) == a){
      Serial.println(i);                  //Imprime posición
      break;                               //Salir del for
   }
}


PD: Tener en cuenta que al ser los valores de tu sensor entre -155 y 155, no puedes usar el tipo char (-128 a 127) porque excedes su rango, por lo que estas obligado a usar int (-32,768 a 32,767).
Title: Re: Buscar valor a partir de una variable
Post by: VicenteCarlos on Feb 02, 2020, 08:51 am
Muchas gracias por tu ayuda Kike.
Te explico un poco más … Se trata de crear un indicador remoto de nivel de un depósito de glp. El nivel que lleva el propio depósito es un dial circular con una aguja que se mueve en función de un imán que gira en la misma vertical y en el interior del depósito, según el nivel varía.
Al crearse ese campo magnético cambiante, he utilizado el sensor HMC5883L, tomo los datos X e Y y calculo el arcotangente para crear una función con representación grafica lineal. Si tomo exclusivamente X o Y la representación en una gráfica es una campana, con lo que un valor será igual para dos posiciones.

He probado con un transistor 49E, pero evidentemente no sirve porque no hay modificación de distancia y por lo tanto tampoco modificación del campo magnético.

A lo mejor me he metido en un proyecto demasiado ambicioso, siendo una persona con conocimientos básicos en electrónica e informática, pero me van los retos y mantener el cerebro activo.

Title: Re: Buscar valor a partir de una variable
Post by: cescbit on Feb 02, 2020, 12:09 pm
esta idea me interesa... sería posible interpolar entre dos valores si el valor buscado no existe? por ejemplo , valor buscado 125, y en la tabla tuvieramos el 121 y 126.?
121---5
126---10

valor buscado 125, resultado->9

es posible?
Title: Re: Buscar valor a partir de una variable
Post by: surbyte on Feb 03, 2020, 03:57 am
Quote
He probado con un transistor 49E, pero evidentemente no sirve porque no hay modificación de distancia y por lo tanto tampoco modificación del campo magnético.
No entiendo nada de esto, que tiene que ver el transistor y como lo has conectado ?
Title: Re: Buscar valor a partir de una variable
Post by: Kike_GL on Feb 09, 2020, 05:10 am
Quote from: VicenteCarlos
Se trata de crear un indicador remoto de nivel de un depósito de glp. El nivel que lleva el propio depósito es un dial circular con una aguja que se mueve en función de un imán que gira en la misma vertical y en el interior del depósito, según el nivel varía.
Te estas refiriendo a esto (https://taurusenergycorp.com/el-sensor-de-nivel-para-el-uso-en-gas-licuado-de-petroleo/) ?
Title: Re: Buscar valor a partir de una variable
Post by: VicenteCarlos on Feb 09, 2020, 06:29 pm
Hola Kike. Muchas gracias por tu ayuda.
Title: Controlar la posición de un imán
Post by: VicenteCarlos on Feb 09, 2020, 06:45 pm
Buenas tardes a todos.

Tengo un imán que gira horizontalmente (y sobre un eje central) 360º a izquierda y/o derecha. Necesito monitorizar la posición. He probado con el 49E, pero como la distancia del campo magnético al sensor no varía, tampoco varía la información que facilita.

Sabe alguien qué sensor necesitaría utilizar?

Muchas gracias.
Title: Re: Controlar la posición de un imán
Post by: surbyte on Feb 09, 2020, 08:16 pm
Puedes poner un enlace al sensor 49E que mencionas? Usa etiquetas por favor!!
Title: Re: Controlar la posición de un imán
Post by: VicenteCarlos on Feb 09, 2020, 08:31 pm
En este enlace se puede ver la "data sheet" del sensor.
 

Gracias.

http://www.farnell.com/datasheets/2007294.pdf?_ga=2.82280287.857855812.1581276220-1467803858.1568374833 (http://www.farnell.com/datasheets/2007294.pdf?_ga=2.82280287.857855812.1581276220-1467803858.1568374833)
Title: Re: Controlar la posición de un imán
Post by: surbyte on Feb 09, 2020, 10:00 pm
Tienes dos hilos del mismo tema, a esto se le conoce como cross post o doble posteo.