Introduction Dans ce cours on va voir comment lire les valeurs venant d’un potentiomètre sur la Beaglebone Black en utilisant les pins analogiques de celle-ci. Un potentiomètre est une résistance variable dont la valeur va être modifié en tournant le bouton ou la vis situé sur celui-ci. Ceci va permettre de laisser plus où moins de courant passer et donc faire de varier la tension. Comment fonctionnent les pins analogiques ? La Beaglebone Black possède 7 pins analogiques qui vont permettre de récupérer la valeur de capteurs, ou bien de contrôler des composants en analogique. Les pins sont reliés à un convertisseur analogique-numérique (8 bits) afin de rendre lisible les valeurs par la Beaglebone Black.Les pins analogiques fonctionnent en +1.8V maximum ! Vous ne pouvez donc pas utiliser des composants nécessitant une tension de +5V ou +3.3V. Dans la suite du cours nous allons connecter le potentiomètre au VDD et GND de l’ADC afin d’avoir la bonne tension. Schéma électronique Voici le programme qui me permet de lire les valeurs de tension venant du potentiomètre et de les convertir en pourcentage : Programmation Le programme suivant permet de récupérer les valeurs analogiques venant de l’ADC, notamment la pin ou se situe notre potentiomètre. Pour cela vous aurez besoin d’installer la librairie Adafruit_BBIO.Vous pouvez l’installer avec la commande suivante : sudo pip3 install Adafruit_BBIO import Adafruit_BBIO.ADC as ADC import time # Configuration du canal ADC potentiometer_pin = "P9_36" # Vous pouvez ajuster le numéro de broche en fonction de votre configuration ADC.setup() try: while True: # Lecture de la valeur analogique du potentiomètre pot_value = ADC.read(potentiometer_pin) # Convertir la valeur en une plage plus significative (par exemple, de 0 à 100) scaled_value = int(pot_value * 100) # Afficher la valeur print("Valeur du potentiomètre : {}".format(scaled_value)) # Attendre un court laps de temps avant la prochaine lecture time.sleep(0.1) except KeyboardInterrupt: # Arrêter le programme proprement en cas d'interruption (Ctrl+C) pass finally: # Nettoyer les ressources ADC ADC.cleanup() On peut voir qu’en tournant le potentiomètre le pourcentage est modifié. A 100%, la tension est 1.8V et à 0% celle-ci est 0V :