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.
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:
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).
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.
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?
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 ?
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/) ?
Hola Kike. Muchas gracias por tu ayuda.
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.
Puedes poner un enlace al sensor 49E que mencionas? Usa etiquetas por favor!!
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)
Tienes dos hilos del mismo tema, a esto se le conoce como cross post o doble posteo.