Falsos positivos en la entrada de Arduino

He usado entradas analógicas y digitales para una multitud de aplicaciones con la placa Arduino Uno. Continuamente ha dado lecturas extremadamente no confiables, donde la entrada analógica siempre fluctúa, o la lectura digital será verdadera incluso si no está conectada a nada. ¿Hay alguna forma de conectar un pin de entrada digital o analógica que elimine ese problema? como un condensador? No estoy muy versado en electrónica, entiendo los conceptos básicos de transistores, diodos, resistencias, etc. Pero no sé mucho sobre cómo eliminar el ruido de la señal eléctrica. Siento que con tantos falsos positivos mi capacidad para crear proyectos más complejos está completamente disparada.

¿Alguna sugerencia sobre cómo eliminar todos los falsos positivos/ruido adicionales al recibir entrada analógica/digital en un Arduino Uno?

Respuestas (2)

Parece que le faltan resistencias pull up o pull down en sus entradas. Si deja flotando sus entradas, obtendrá resultados poco confiables.

http://en.wikipedia.org/wiki/Pull-up_resistor <== lea esto para obtener más información

ingrese la descripción de la imagen aquí

Si su entrada normalmente está apagada, usaría una resistencia desplegable y si normalmente está encendida, usaría una resistencia desplegable. Esta es una forma simplificada de pensar en ello, pero facilita saber qué esperar al leer la entrada.

Cuando observa el pequeño esquema, muestra un interruptor abierto y una resistencia de extracción. Esto significa que cuando el interruptor esté abierto, Vin irá a través del búfer a Vout. Vout = Vin aquí. Cuando el interruptor esté cerrado, Vin pasará a través de la resistencia pull up al interruptor y a tierra. La entrada de la puerta lógica tendría 0 voltios y estaría conectada directamente a tierra. Por lo tanto, Vout = Tierra.

Eso es exactamente lo que necesitaba saber, haré que esta sea la respuesta en 5 minutos cuando me lo permita. Gracias por la respuesta súper rápida. Pero para asegurarme de que estoy entendiendo correctamente el artículo de wikipedia; ¿Solo necesito agregar suficiente resistencia directamente a mi línea de entrada para cancelar los falsos positivos?
No, debe tener una respuesta predeterminada para su entrada. respuesta actualizada
Para las entradas digitales, en general, no se requiere una resistencia externa ya que está integrada en el controlador y solo necesita habilitarse desde el software. Compruebe la respuesta de helloworld922.
@jippie es correcto. La MCU tiene resistencias pullup/pulldown internas, pero debe encenderlas. Alternativamente, puede usar resistencias externas si no desea confiar en el firmware para configurarlas.

Las entradas digitales que puedan abrirse deben tener una resistencia pullup/pulldown para que su estado quede definido. De lo contrario, tendrán un voltaje indeterminado entre [0,5V], lo que generará lecturas digitales esporádicas (como habrá notado). Los microcontroladores utilizados por Arduinos tienen resistencias pullup internas que se pueden habilitar.

No estoy completamente seguro de cuál es el método recomendado, ya que diferentes partes del sitio web de Arduino brindan información diferente sobre cómo habilitar las resistencias pullup.

La página de pines digitales sugiere configurar el modo pin para ingresar y escribir un valor alto en el pin.

Sin embargo, la referencia de la función PinMode tiene una INPUT_PULLUPconstante, lo que tendría más sentido de usar en lugar del método circular usado anteriormente.

La misma recomendación sobre el uso de resistencias pullup/pulldown se aplica a los pines analógicos que pueden abrirse. Además, también puede intentar agregar un filtro de paso bajo a sus entradas analógicas para reducir el ruido de alta frecuencia.