Múltiples botones en 1 analógico VS uno digital por botón: Consumo de energía

0

Estoy trabajando en un proyecto de reloj Bluetooth. Es posible que ya lo hayas visto en hackaday. enlace

Necesito agregar algunos botones al reloj. y la eficiencia energética es realmente importante en este proyecto. Así que me pregunto qué método consume menos energía? Múltiples botones en 1 analógico. Lee aquí: enlace o 1 digitalRead para cada botón

1 DigitalRead por botón: Contras: cada resistencia desplegable siempre gastará energía incluso cuando el botón no esté presionado. Pros: no hay necesidad de ajustar el intervalo pwm

Varios botones en 1 analógico: Contras: Cada botón pwm tiene que ser definido. Pros: Menos consumo de energía "creo" ...

No soy muy bueno con la electrónica ... Por favor, indíqueme qué método debo usar para agregar botones a mi reloj Gracias Smiley

    
pregunta Ahmet Yildirim

4 respuestas

3

Creo que puedes estar malinterpretando la publicación. Ese post no tiene en qué parte habla de PWM, sino que se trata de leer en el voltaje a través del divisor de voltaje. Aquí está el esquema que se encuentra en una de las publicaciones:

 Analog pin 5
            |
Ground--1K--|--------|--------|-------|-------|
            |        |        |       |       |
           btn1     btn2     btn3    btn4    btn5
            |        |        |       |       |
         220 Ohm  390 Ohm  680 Ohm   2.2K    4.7K
            |--------|--------|-------|-------|-- +5V

Todavía hay siempre una resistencia de arrastre hacia abajo, independientemente de las presiones de los botones.

Ahora, es cierto que si cambia al método digital, tendrá más resistencias desplegables, ya que necesitará una por conmutador en lugar de una total, sin embargo, la cantidad de potencia de la que habla es mínima, y para para alguien que no tiene mucha experiencia en electrónica, la potencia puede ser prácticamente 0. Además, están usando un menú desplegable de 1k para el método analógico, usted podría fácilmente obtener 10k o más para el método digital y estar bien.

Si el poder sigue siendo una preocupación para usted, entonces necesitará aprender más sobre su microcontrolador. Muchas veces los micros tendrán resistencias de activación internas, lo que significa que ni siquiera tiene que tener una única resistencia en su interruptor. También puede darse el caso de que ir con un pull up en lugar de un pull down sea más eficiente energéticamente, pero incluso así esto es específico del microcontrolador.

En general, diría que ir con un pull up que diga 10K o más y seguir con la vida. Si descubres que realmente está tirando demasiado poder, puedes considerar investigarlo más.

    
respondido por el Kellenjb
3

Quieres digital con un pull-up. La mayoría de los microcontroladores pueden proporcionar el pull-up internamente, pero también puede elegir una resistencia externa si desea un valor de resistencia más alto, por ejemplo. No es que este valor importe mucho porque no fluirá ninguna corriente si no se presiona el botón . Solo durante el corto tiempo que se presiona el botón habrá una pequeña corriente; si usa 100k \ $ \ Omega \ $ pull-ups, tendrá unas decenas de \ $ \ mu \ $ A con un ciclo de trabajo probablemente tan bajo como 0.001%.
También es posible un desplegable en lugar de un pull-up, pero es menos común. Si lo usas, asegúrate de apagar los pull-ups internos.

Es una buena idea, especialmente para los interruptores táctiles que no se operan a menudo, un capacitor de 100 nF paralelo a los contactos. El capacitor se cortocircuitará cuando se presione el botón, y el pico de corriente pequeño mantendrá los contactos limpios.

    
respondido por el stevenvh
1

Como regla general, los subsistemas analógicos consumen mucha energía, más que los subsistemas digitales. Entonces, si la solución analógica requiere que habilites un convertidor A / D que, de lo contrario, estaría apagado, solo eso podría hacer que se suelte.

Si su proyecto es crítico para el poder, ¿es cíclico su aplicación (activa .. dormida)? Si es así, la relación activo / sueño será muy importante para el uso de potencia promedio. La mayoría de los A / D son lentos, por lo que también podrían hacer que se suelte.

En cuanto a la corriente consumida por los pull ups digitales: dibujan corriente solo cuando se presiona el botón, lo que probablemente es un porcentaje de tiempo insignificante. Puede minimizarlo aún más conectándolos a un pin de E / S que se coloca alto solo durante la lectura.

    
respondido por el Wouter van Ooijen
1

A menos que los botones se mantengan durante un período prolongado de tiempo, es poco probable que la cantidad de corriente necesaria para leer las entradas de los botones digitales o codificados analógicamente sea un factor importante en el uso general de energía. Hay, sin embargo, algunas ventajas y desventajas de cada enfoque:

-1- Muchos procesadores pueden dormir hasta que una entrada digital cambia. Si bien estas técnicas pueden utilizarse con algunos métodos de cableado para botones codificados analógicamente, el uso de tales técnicas con botones analógicos a menudo agregará cierta complejidad.

-2- Cuando se usan botones analógicos, se debe tener mucho cuidado para evitar que los pulsos de los botones se malinterpreten. Presionar y soltar los botones justo en el momento adecuado puede hacer que la entrada se muestree en un valor incorrecto y, dependiendo del diseño del interruptor, presionar ligeramente un botón puede hacer que se conecte con una resistencia significativa. Por ejemplo, al presionar el botón unido a una resistencia de 2.2K de tal manera que el botón tenga una resistencia de 1K puede hacer que se identifique erróneamente como el botón conectado a la resistencia de 3.3K.

-3- Es posible que se pueda conectar un grupo de botones analógicos con menos cables que un grupo de botones digitales.

El enfoque que recomendaría para los botones analógicos sería tener una cadena de resistencia conectada entre un puerto de E / S digital y tierra, y que los botones conecten varios puntos de esa cadena a una entrada analógica que tiene un pull muy grande Resistencia superior y funcionalidad de despertador digital. Cuando la unidad está inactiva, los puertos de E / S digitales deben establecerse en un nivel bajo y el código debe esperar a que la entrada disminuya. Al presionar cualquier botón, el voltaje de entrada caerá a casi cero voltios. En ese momento, active el puerto de E / S digital y lea la tensión analógica varias veces hasta que parezca estable. La lectura de voltaje será casi independiente de la resistencia del interruptor, pero la cantidad de energía consumida por el circuito mientras está inactiva será esencialmente nula.

Editar/Addendum

Si tiene cuatro pines de E / S de triple estado, dos de ellos tienen ADC que pueden leer N niveles distintos, y uno (puede o no ser uno de ADC) tiene una capacidad de activación tras cambio, es posible para usarlos para leer la matriz de conmutadores NxN utilizando resistencias 2N + 3 y corriente quiescente cero. Empareje los pines de E / S, incluido un ADC en cada par. Conecte cadenas de resistencias N + 1 entre los pines de cada par y adjunte un pull-up débil al extremo sin ADC de la cadena que tiene la función de activación ante cambio. Conecte las filas y columnas de la matriz de interruptores entre los puntos N medios en las dos cadenas de resistencia.

Cuando esté inactivo, coloque los pines que no se activan durante el cambio, y deje flotar el lado de activación tras el cambio. Hasta que se presione un botón, ambos pines en el lado de activación tras cambio serán altos. Suponiendo que el pullup sea lo suficientemente grande, al presionar cualquier botón se reducirán ambos.

Para ver qué botón se presiona, coloque un pasador en el lado de la 'fila' de la matriz alto y el otro bajo, mientras que los pasadores de la 'columna' flotan. Luego lea el voltaje en uno de los pines de la columna, espere un poco si es necesario para que se estabilice (si no se estabiliza muy rápidamente, considere la presión aparente del botón como falsa). Luego, haga flotar los pines de la "fila", maneje los pines de la "columna" y lea el voltaje en uno de los pines de la "fila" (asegurándose de nuevo de que esté estable). Conduzca las filas y lea las columnas al menos una vez más, y si el valor coincide con el anterior, registre una pulsación de tecla.

Tenga en cuenta que este enfoque no permite ninguna combinación útil de dos teclas o de múltiples teclas, pero ofrece la clara ventaja de permitir el manejo de casi cualquier tamaño de teclado utilizando solo cuatro cables y un pin de activación tras cambio. . Al igual que con la sugerencia anterior, la resistencia del botón, dentro de lo razonable, no será un factor.

    
respondido por el supercat

Lea otras preguntas en las etiquetas