Precisión lectura Analoga

hola amigos, espero que estén bien.

Estoy realizando un proyecto que consta de leer un sensor de temperatura por la entrada análoga de un arduino nano, y visualizarlo en un display LCD 16x2.

Bueno, en si ya todo funciona muy bien.

la lectura del sensor se guarda en un valor int

int temperatura =0;

lo que quiero lograr es cambiar la "precisión", ejemplo.

valor es 1000 a 1002 que lo redondea a 1000
valor es 1003 a 1006 que lo redondea a 1005
valor es 1007 a 1009 que lo redondea a 1010

en otras palabras quiero que la división mínima sea de 5.

he tratado de buscar pero creo que no se cual es el termino correcto esta petición.

Muchas gracias.

you can

  1. convert the integer temperature to a double
  2. divide by 5.0
  3. round() to nearest integer
  4. multiply by 5.0
  5. cast back to an integer
    e.g.
#include <math.h>
#include <stdio.h>
int main(void)
{
   while(1) {
    int temperature;
    scanf("%d", &temperature);
    int approx=(int)(round((double) temperature/5.0)*5.0);
    printf("temperature %d x%d\n", temperature, approx);
    }
}

gives

1000
temperature 1000 x1000
1001
temperature 1001 x1000
1002
temperature 1002 x1000
1003
temperature 1003 x1005
1004
temperature 1004 x1005
1005
temperature 1005 x1005
1006
temperature 1006 x1005
1007
temperature 1007 x1005
1008
temperature 1008 x1010
1009
temperature 1009 x1010
1010
temperature 1010 x1010

Muchas gracias amigo.

Resolvió mi problema. :slight_smile: :slight_smile: