Ressources:Conversion de la lecture d’un potentiomètre en une valeur précise

De wikilab
Révision datée du 12 avril 2023 à 14:24 par Delphine (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Auteur

  • Rédacteur du tutoriel : Yves Le Chevalier

Étapes pas à pas

Conversion de la lecture d’un potentiomètre en une valeur précise (Programmation).

Quand on veut convertir les valeurs mesurées sur un potentiomètre en une plage de valeur très précises, l’instruction map ne convient pas car elle ne permet que de le faire sur valeurs entières.


Si on veut obtenir des valeurs très précise il faut les déclarer en décimal (float).


Soit un potentiomètre dont les valeurs mesurées varient de 0 à «valeur maxi ». On veut obtenir un nombre décimal , « coeff. », correspondant précisément à la valeur lue qui est fonction de la position du potentiomètre. La formule est :

coeff = ((mesure lue / valeur maxi) * (coeff.max – coeff.min)) + coeff.min

Exemple, la lecture d’un potentiomètre sur un port analogique varie de 0 à 3300 et je veux calculer le coefficient proportionnel à celui-ci dans la plage de 0,2 à 2,3 pour une mesure lue de 1089.

  • float valeur maxi = 3300
  • float coeff. min = 0,2
  • float coeff. Max = 2,3
  • int mesure lue = 1089

float coefficient = ((1089 / 3300) * (2,3 – 0,2) + 0,2 soit (0,33 * 2,1) + 0,2

  • coefficient = 0,893