| Obteniendo una mejor lectura de sensores en Arduino |
| Escrito por Nico | 13 de Julio de 2009 | ||||
|
Muchas veces, como sucede cuando utilizamos potenciómetros, tendremos valores oscilantes sobre un número aunque no estemos realizando nada sobre el sensor. Esto sucede porque el sensor puede estar sujeto a variaciones aleatorias, y la suma de estas actúa como ruido. Existirán varias formas de reducir esta cantidad de ruido, y en este caso mostraremos 2 de ellas que pueden implementarse directamente en el código del Arduino. Primero estableceremos un umbral (o threshold) que será la diferencia entre un valor y otro del sensor sin que este siendo hecho nada sobre el mismo. Esto es, si dejamos quieto el pote y empieza a variar entonces que punto tomamos como umbral para realizar otra acción (correción u otra cosa) Circuito
Esquemática
Código Threshold: Definimos una variable Threshold y no registramos un cambio a menos que el cambio sea superior a ese valor. Al principio del código, declaramos: Ahora vamos al void loop {} y hacemos que se chequee el valor del pote con el del umbral: La función abs() siempre nos devuelve un valor positivo, aunque la diferencia sea 2 y -2, nos ahorramos un if :P Smoothing Un ejemplo de esto podemos encontrarlo dentro del software del Arduino, en File->Sketchbook->Examples->Analog->Smoothing. Se toman varias mediciones, y se hace un promedio de ellas mediante un Array() Saludos, Nico!
Referencias: http://arduino.cc/en/Tutorial/Smoothing
¡Sólo los usuarios registrados pueden escribir comentarios!
Powered by !JoomlaComment 4.0 beta1
!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved." |
||||