Étape 7: Améliorer
Comme dans tout projet, dès que j’ai terminé, j’ai commencer à penser à comment je peux l’améliorer... Voici quelques réflexions que j’ai eu :1. la consistance de la valeur retournée par analogRead est déterminée par un certain nombre de choses :
-L’alimentation électrique. La valeur peut varier considérablement, si votre alimentation n’est pas bien réglementée. Sur une alimentation régulée, peut-être un condensateur pourrait lisser l’approvisionnement en peu plus ?
-Le bouton. Je ne sais pas pourquoi cela serait. J’ai remarqué une chose, c’est que les valeurs de sautent partout la plupart droit comme les changements d’État. Ma meilleure supposition est qu’il pourrait être causé par l’emf arrière généré lorsque le bouton est pressé / publié. Peut-être une diode dans le bouton pourrait le nettoyer un peu.
Bien sûr, vous pourriez vous demander pourquoi nous avons besoin de l’améliorer. Après tout, il fonctionne très bien.
Si vous pouviez obtenir la plage de valeurs pour chaque bouton à un minimum, vous seriez en mesure de mettre beaucoup plus de boutons sur chaque broche analogique.
Par exemple, si vous pouvez obtenir les valeurs pour chaque bouton dans environ 60 points, vous pourriez facilement mettre 12 boutons sur une épingle et utiliser chaque résistance de valeur dans la gamme E12 entre 10K et 100K (10k, 12 k, 15k, 18 k, 22k, 27k, 33 k, 39k, 47k, 56 k, 68 k, 82k et 100 k)
Vous devrez probablement utiliser des résistances plus précis (ou juste les mesurer et utiliser ceux qui est assez proche de la valeur de la cible) et vous devrez choisir vos boutons avec soin, mais le fait que mon troisième bouton est toujours dans une fourchette de 2 points prouve que vous devriez être capable de le faire.
La deuxième raison est de faire fonctionner avec plusieurs boutons.
Pourquoi il ne devrait pas travailler avec plusieurs boutons ? Encore une fois, je ne vais pas réellement faire les maths (s’avère que je suis toujours paresseux), mais je suis sûr que vous pourriez comprendre en choisissant avec soin vos résistances, quelles touches ont été enfoncées, même s’il s’agissait plus d’un.
Si vous regardez le circuit, vous pouvez voir que, en appuyant sur 2 boutons en même temps, vous sont essentiellement mettre leurs 2 résistances en parallèle. En appelant sur oncle Ohm encore une fois, vous avez une formule pour déterminer la résistance totale pour les résistances parallèles.
Par exemple, si j’ai appuyé sur les boutons de ma deuxième et troisième, vous pouvez voir qu’une résistance de 10K en parallèle avec une résistance de 33K vous donne une résistance totale de 7,6744 K (Nope, j’ai googlé il - enseigner les maths encore). Ce serait facile à ramasser dans le code. Si toutefois, j’ai poussé le bouton 1 et 2, cependant, la résistance d’une résistance de 1K et 10K parallèle serait 900 Ohms, alors maintenant nous sommes dans la même gamme pour la touche 1.
Bien sûr, si vous avez laissé sortir la résistance de 1K, il n’y aurait aucun moyen de détecter si le bouton 1 a été activé avec n’importe quel autre bouton. Étant donné que je n’avez pas besoin de détecter les touches multiples, je ne vais pas dans le détail (à ce stade en tout cas).