¿Funcionaría esto? Estoy bastante seguro de que en teoría debería, pero no lo veo a menudo o en absoluto. En teoría, el divisor de voltaje de 2: 1 a 1: 2 debería dar 3.3v en un extremo y 1.6v en el otro extremo del bote, dando al ADC un amplio rango para trabajar. Y si se presiona el botón, el R1 + RV actuará como un pullup máximo de 20k, por lo que la línea se reducirá a 0v, que el ADC se puede codificar para reconocer como un evento único, permitiendo que existan un botón y un bote. en el mismo pin de entrada, permitiendo que el ADC sirva para ambos propósitos.
Se guarda un pin de entrada, sin cambios significativos en el código, ya que el adc ya se está sondeando para el bote.
simular este circuito : esquema creado con CircuitLab
¿Funcionaría? Y si es así, como curiosidad, ¿por qué no es esto más popular?
fuente
Respuestas:
Sí, debería funcionar, aunque hay algunos problemas a tener en cuenta.
El problema es que debes tener cuidado de detectar e ignorar las transiciones entre el nivel del interruptor de 0 V y el nivel del bote. Algunos de ellos se verán como niveles de bote válidos, por lo que debe tener en cuenta varias muestras para decidir si lo que parece ser un nivel de bote es real o solo un voltaje intermedio mientras se mueve entre el interruptor y el bote. Tenga en cuenta que los interruptores reales rebotan, por lo que esto es más complicado de lo que probablemente imagina. Una cosa que sabes sobre un voltaje de pote válido es que no puede cambiar tan rápido. Esto debería ayudar a eliminar las lecturas intermedias.
Otro problema es que no se puede leer el bote cuando se presiona el interruptor. No hay nada que pueda hacer al respecto con esta configuración. Si eso importa depende del sistema y cuál es el significado de la posición del bote y un interruptor presionado.
No puedo decir si esto se hace "a menudo" o no. Las entradas de bote en sí mismas son inusuales, pero por supuesto existen. Para que este esquema tenga sentido, debe tener un sistema que necesite un botón y una configuración continua del usuario, y en el que realmente no quiera gastar el pin adicional. Si esta es la diferencia entre encajar en un micro de 28 pines o tener que usar un micro de 44 pines, probablemente lo haría. Si me sobran otros pines, no haría esto porque es mejor mantener baja la complejidad. Los pines separados para el bote y el botón serán más fáciles y, por lo tanto, menos propensos a tener errores en el firmware.
fuente
He usado ADC como entradas sin problema, en una topología muy similar a la suya.
No tenía el bote, pero tenía un divisor de dos resistencias para reducir el voltaje de entrada (estaba en un ATxmega, que tiene una entrada ADC máxima de 2/3 Vcc), y un interruptor para tirar de la entrada a suelo.
Creo que funcionará bien.
Una cosa que probablemente deberías tener en cuenta es que el botón puede no llevarte completamente al suelo. Dependiendo de la resistencia del interruptor, aún puede tener algunos milivoltios en la entrada, por lo que no debe suponer que el botón que se presiona da como resultado un valor de ADC de 0, sino más bien un valor de ADC de <~ 10 recuentos, o por ahí ( prueba esto!).
fuente
Todas estas respuestas y sus comentarios son buenos y agregan mucha información. Estoy tratando de ver cuál merece la recompensa, pero también quería agregar esto.
Encontré una nota de aplicación detallada sobre esto mismo. No solo cambia, sino que cambia más un potenciómetro en la misma entrada de adc. Versión PDF con gráficos
El artículo incluye fórmulas (y una hoja de cálculo de Excel 2007 para automatizar las cosas) sobre cómo seleccionar las resistencias de polarización y la olla, aunque el código de ejemplo para un microcontrolador ya no está disponible.
Hilo de comentario de Hackaday en esta nota de aplicación .
Más de un botón en el mismo pin también es una buena pregunta de recursos.
fuente
Esto funcionará para detectar la posición de una olla que no está conectada a tierra, o con otras fuentes analógicas que sabe que no se acercarán a tierra, siempre que no le importe perder alguna resolución ADC.
En el caso más general, muchas entradas de sensores analógicos se referenciarán a tierra, y pueden ir a tierra en algunas circunstancias, por lo que este esquema no podría utilizarse. Además, muchas fuentes analógicas pueden oponerse a la conexión a tierra, a menudo emitiendo el humo mágico.
Este circuito podría usarse si realmente estás desesperado por una entrada digital más y conoces las limitaciones, pero no lo recomendaría para uso general.
fuente
Esto debería funcionar. Pero podría mejorarlo, por lo que dudo que sea común.
Suponiendo que tiene un ADC de rango completo (0 a 5V), la reducción de R1 y R2 aumentará su rango dinámico y, por lo tanto, la resolución de la posición del potenciómetro. Por supuesto, no puede reducir R2 a cero o perder la distinción de una activación del interruptor.
No es tan baja potencia como podría ser. Si puede permitirse un condensador de cerámica, digamos 10nF, para conectarse a través del interruptor, puede aumentar fácilmente sus resistencias en un factor de 10 o incluso 100, reduciendo el consumo de energía en consecuencia. El condensador también ayudará a la precisión y la repetibilidad, al filtrar el paso bajo del voltaje visto por el ADC y proporcionar una fuente de voltaje de baja impedancia. Y, finalmente, eliminará el interruptor (probablemente sepa que casi todos los interruptores mecánicos exhiben rebote de contacto, haciendo contacto rápidamente y rompiéndolo varias veces cuando se opera una vez, lo que requiere un rebote ya sea en software o hardware). Como se señaló anteriormente, dicho condensador también es importante para obtener un comportamiento bien definido cuando se gira el potenciómetro, ya que esto puede producir transitorios, al menos en forma de alta impedancia intermitente.
Por supuesto, con dicho condensador, C * R será su constante de tiempo (por lo tanto, cuando desee una precisión (1-e) ^ 3 dentro de 0.1 s de la liberación de un interruptor, será mejor que se mantenga por debajo de la combinación de 10 nF y 3 Mega- ohm...)
Su software requiere un poco de cuidado. Verá transitorios, tanto del interruptor como del movimiento mecánico dentro del potenciómetro. No es difícil codificar, pero es más complicado que simplemente consultar un único resultado de conversión de ADC. Al menos deberá verificar si el valor que lee es lo suficientemente estable en varias conversiones para asumir que no está en un transitorio.
Puede incluir componentes innecesarios:¿para qué sirve R1(suponiendo que su rango de entrada ADC llegue hasta el riel positivo)?Si se supone que R1 limita el voltaje de salida máximo para que se ajuste a su rango de ADC, entonces ¿por qué el potenciómetro no funciona con un voltaje de referencia en o cerca del riel de ADC positivo? Eso requeriría una resistencia limitadora de corriente en la salida del potenciómetro, pero sería mejor. Como tal voltaje de suministro analógico podría fácilmente hacerse mucho más estable que el voltaje de suministro de IC (que supongo que su batería de 5 V debe simbolizar), puede obtener menos ruido técnico en sus conversiones de ADC.Y finalmente, incluso si R1 no es necesario para reducir el voltaje de salida máximo, el mismo cambio en el circuito, si se combina con un movimiento a una fuente analógica que podría ser tan simple como conectarse a + 5V en otro lugar, trae el beneficio combinado de arriba y de utilizar mejor su rango de entrada ADC sin ningún componente adicional.
fuente
Yo no lo recomendaría divisor de tensión por una razón:
Cuando conecte cualquier dispositivo de alta impedancia para medir, tendrá una resistencia equivalente entre el dispositivo y cualquier resistencia del circuito (equivalencia paralela), cambiando la relación de las resistencias.
Por ejemplo, si configura las resistencias y la olla en un 50-50%, cuando conecte el dispositivo tendrá un 49-51%. No cambiará demasiado debido a la alta impedancia del ADC, pero perderá precisión. Quiero decir, puedes ver el ADC como otra resistencia que cambiará la resistencia equivalente.
simular este circuito : esquema creado con CircuitLab
fuente