Régler le problème de fluctuation
15 jours pour comprendre les contrôleurs MIDI - Jour 4
Je règle le problème, rencontré précédement, de la fluctuation de la valeur du potentiomètre.
Le code
L’idée principale est de comparer des moyennes de valeurs, plutôt que des valeurs ponctuelles.
Pour faire une moyenne il faut une division. Mais je n’ai pas envie d’introduire de
division dans le code si je peux l’éviter, pour le garder le plus rapide possible.
C’est pourquoi je me contente de comparer l’addition des deux anciennes valeurs
d’un côté, avec l’addition de la valeur courante et de la dernière d’un autre
côté (penultimate + last != last + current
).
int penultimate = 0;
int last = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
int current = analogRead(A0) >> 3;
if (last != current) {
if (penultimate + last != last + current) {
Serial.println(current);
penultimate = last;
last = current;
}
}
delay(10);
}
Grâce à cela, les fluctuations sont maintenant très rares.
Références
Cet article fait partie d’une série :
- Envoyer une note par le cable MIDI
- Lire un potentiomètre
- Lire un potentiomètre II
- Régler le problème de fluctuation
- Envoyer le message Control Change
- Six potentiomètres
- Six potentiomètres - Code objet
- Prototype en carton
- Surveiller la consommation
- Une solution hardware au problème de fluctuation ?
- Multiplexeur
- Multiplexeur II
- Multiplexeur III
- Moniteur MIDI
- Le bilan
Commentaires
Pas encore trouvé de solution simple et non-invasive pour avoir des commentaires sur le blog. En attendant vous pouvez laisser votre Commentaire sur mastodon@lkdjiin