Paso 7: Mejora
Como con todos los proyectos, en cuanto he terminado, empiezo a pensar cómo puedo mejorarlo... Aquí le damos algunas ideas que tuve:1. la consistencia del valor devuelto por analogRead está determinada por un par de cosas:
-La fuente de alimentación. El valor podría variar drásticamente si su poder no está bien regulado. ¿En una fuente regulada, tal vez un condensador podría suavizar la fuente más?
-El botón. No sé por qué sería. Una cosa que noté es que los valores de saltan alrededor de la mayoría de derecha como los cambios de estado. Mi mejor conjetura es que podría ser causado por la espalda emf generada cuando el botón es presionado y liberado. Tal vez un diodo a través el botón podría limpiarlo un poco.
Por supuesto, tal vez se pregunte por qué tenemos que mejorar. Después de todo, funciona bien.
Si usted podría conseguir el rango de valores para cada botón hasta un mínimo, puede poner más botones en cada pin analógico.
Por ejemplo, si podría obtener los valores para cada botón en cerca de 60 puntos, podría fácilmente poner 12 botones en un perno y use cada resistencia de valor en el rango E12 entre 10K y 100K (10k, 12 k, 15k, 18 k, 22k, 27k, 33 k, 39k, 47k, 56 k, 68 k, 82k y 100 k)
Probablemente tendría que utilizar resistencias más precisas (o medirlas y utilizar las que están lo suficientemente cercanas para el valor objetivo) y puede que tenga que escoger con cuidado los botones, pero el hecho de que mi tercer botón está siempre en un rango de 2 puntos de prueba que debe ser capaz de hacer esto.
La segunda razón es para hacer que funcione con varios botones.
¿Por qué no funciona con varios botones? Una vez más, no voy a hacer de las matemáticas (resulta soy todavía perezoso), pero estoy bastante seguro de que eligiendo cuidadosamente sus resistencias, podrían calcular que botones fue presionado incluso si era más de uno.
Si nos fijamos en el circuito, veremos que pulsando los 2 botones al mismo tiempo, esencialmente están poniendo sus 2 resistencias en paralelo. Llamando tío Ohm , se tiene una fórmula para determinar la resistencia total de resistores paralelos.
Por ejemplo, si apreto los botones de mi segundo y terceros, vemos que una resistencia de 10K en paralelo con una resistencia de 33K le da una resistencia total de 7,6744 K (, yo busqué en Google que - aún sin matemáticas). Esto sería fácil de recoger en el código. Si sin embargo presioné el botón 1 y 2 aunque la resistencia de un resistor de 1K y 10K paralelo sería 900 ohmios, por lo que ahora estamos en el mismo rango en cuanto a botón 1.
Por supuesto, si dejaste a la resistencia de 1K, no habría ninguna forma de detectar si se presionó el botón 1 con cualquier otro botón. Puesto que no necesito detectar múltiples pulsar un botón, no voy en más detalles (en este momento al menos).