ESP32 - potentiomètre

Ce tutoriel vous montre comment utiliser un potentiomètre avec l'ESP32 et MicroPython. En détail, nous apprendrons :

Potentiomètre ESP32 MicroPython

À propos du potentiomètre

Un potentiomètre rotatif, également appelé capteur d'angle rotatif, est utilisé pour régler manuellement des paramètres tels que le volume stéréo, la luminosité d'une lampe ou le niveau de zoom sur un oscilloscope.

Schéma des broches du potentiomètre

Schéma des broches

Un potentiomètre a généralement trois broches.

  • Broche GND : connectez-la à GND (0 volt).
  • Broche VCC : connectez-la à VCC (5 volts ou 3,3 volts).
  • Broche de sortie : envoie la tension à la broche d'entrée de l'ESP32.
Brochage du potentiomètre

※ Note:

Vous pouvez permuter les positions de la broche GND et de la broche VCC.

Comment ça fonctionne

L'arbre du potentiomètre tourne de 0 degrés, près de la masse (GND), jusqu'à une position maximale près de la broche VCC, appelée ANGLE_MAX.

La tension à la broche de sortie va de la tension de masse (GND) à la tension d'alimentation (VCC). En tournant l'arbre, la tension de sortie change en conséquence.

  • Si l'angle est de 0 degrés, il n'y a pas de tension (0 volts) à la broche de sortie.
  • Si l'angle est ANGLE_MAX, la tension à la broche de sortie est la même que la tension de VCC.
  • Pour les angles compris entre 0 degrés et ANGLE_MAX, la tension de sortie est calculée comme : angle × VCC / ANGLE_MAX.

※ Note:

La valeur de ANGLE_MAX varie en fonction du fabricant. Normalement, nous ne nous concentrons pas sur la valeur de ANGLE_MAX, sauf si nous avons besoin de calculer l'angle de rotation (voir la section des cas d'utilisation).

Comment fonctionne un potentiomètre

ESP32 - potentiomètre rotatif

Les broches ADC de l'ESP32 peuvent fonctionner comme des entrées analogiques, convertissant une plage de tension comprise entre 0 volt et VCC en nombres entiers entre 0 et 4095. Ces nombres sont appelés valeurs ADC ou valeurs analogiques.

Vous pouvez connecter la broche de sortie d'un potentiomètre à l'une des entrées analogiques de l'ESP32, ce qui permet à l'ESP32 de lire la valeur ADC et de la convertir en un nombre utilisable.

Le nombre obtenu par l'ESP32 ne représente ni un angle ni une tension continue, mais plutôt un entier compris entre 0 et 4095. Cette valeur peut ensuite être mappée ou convertie dans une plage différente selon les besoins des applications spécifiques.

Cas d'utilisation

  • Convertir la valeur ADC en un angle.
  • Convertir la valeur ADC en tension.
  • Convertir la valeur ADC en une valeur que vous pouvez contrôler (comme le volume d'un système stéréo, la luminosité de quelque chose, ou la vitesse d'un moteur). C'est souvent l'utilisation la plus courante.

Ajuster l'échelle de la plage

FROM TO
Anglerotated by userANGLE_MAX
Voltagefrom potentiometer's pin 0V3.3V
ADC valueread by ESP32 04095
Other valueconverted by ESP32 VALUE_MINVALUE_MAX

Diagramme de câblage

  • Comment connecter l'ESP32 et le potentiomètre en utilisant breadboard
Schéma de câblage du potentiomètre ESP32 MicroPython

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Comment connecter l'ESP32 et un potentiomètre

Code MicroPython pour ESP32

/* * Ce code ESP32 MicroPython a été développé par newbiely.fr * Ce code ESP32 MicroPython est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-micropython/esp32-micropython-potentiometer */ from machine import ADC, Pin import time # Define a function to map a value from one range to another def map_value(x, in_min, in_max, out_min, out_max): return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min # Initialize the analog pin for reading adc = ADC(Pin(36)) # The ESP32 pin GPIO36 (ADC0) connected to the light sensor # Set the ADC width (resolution) to 12 bits adc.width(ADC.WIDTH_12BIT) # Set the attenuation to 11 dB, allowing input range up to ~3.3V adc.atten(ADC.ATTN_11DB) # Infinite loop while True: # Retrieve analog value from pin A0: adc_value = adc.read() # Convert the analog value to a voltage (0-3.3V range): voltage = map_value(adc_value, 0, 4095, 0, 3.3) # Output the analog value and corresponding voltage to the console: print("Analog: {}, Voltage: {:.2f}V".format(adc_value, voltage)) # Wait for a second before repeating the loop: time.sleep(1)

Étapes rapides

Voici des instructions sur la façon de configurer et d’exécuter votre code MicroPython sur l’ESP32 en utilisant l’IDE Thonny :

  • Assurez-vous que l'IDE Thonny est installé sur votre ordinateur.
  • Confirmez que le firmware MicroPython est chargé sur votre carte ESP32.
  • Si c'est la première fois que vous utilisez un ESP32 avec MicroPython, consultez le guide ESP32 - Premiers pas. pour des instructions étape par étape.
  • Branchez la carte ESP32 au potentiomètre selon le schéma fourni.
  • Branchez la carte ESP32 à votre ordinateur avec un câble USB.
  • Ouvrez Thonny IDE sur votre ordinateur.
  • Dans Thonny IDE, allez dans Outils Options.
  • Sous l'onglet Interpréteur, choisissez MicroPython (ESP32) dans le menu déroulant.
  • Assurez-vous que le bon port est sélectionné. Thonny IDE le détecte généralement automatiquement, mais vous devrez peut-être le sélectionner manuellement (par exemple COM12 sur Windows ou /dev/ttyACM0 sur Linux).
  • Copiez le code MicroPython fourni et collez-le dans l'éditeur de Thonny.
  • Enregistrez le code sur votre ESP32 en:
    • En cliquant sur le bouton Enregistrer ou en appuyant sur Ctrl+S.
    • Dans la boîte de dialogue d'enregistrement, choisissez Périphérique MicroPython.
    • Nommez le fichier main.py.
  • Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script.
  • Ajustez le potentiomètre.
  • Consultez le message dans le Shell en bas de Thonny.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot Analog: 0, Voltage: 0.00V Analog: 0, Voltage: 0.00V Analog: 504, Voltage: 0.41V Analog: 1124, Voltage: 0.91V Analog: 2068, Voltage: 1.67V Analog: 3016, Voltage: 2.43V Analog: 3624, Voltage: 2.92V Analog: 4092, Voltage: 3.30V Analog: 4092, Voltage: 3.30V
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

※ Note:

Ce tutoriel montre comment utiliser la fonction adc.read() pour lire des valeurs d'un ADC (convertisseur analogique-numérique) connecté à un potentiomètre. L'ADC de l'ESP32 est adapté aux projets qui n'exigent pas une grande précision. Cependant, si votre projet nécessite des mesures précises, gardez à l'esprit les points suivants :

  • L'ADC de l'ESP32 n'est pas parfaitement précis et peut nécessiter un étalonnage pour des résultats précis. Chaque carte ESP32 peut différer légèrement, il est donc nécessaire d'étalonner chaque carte individuellement.
  • L'étalonnage peut être difficile, surtout pour les débutants, et pourrait ne pas produire exactement les résultats souhaités.

Pour les projets nécessitant une grande précision, envisagez d'utiliser un ADC externe (par exemple ADS1115) avec l'ESP32 ou optez pour un Arduino, qui dispose d'un ADC plus fiable. Si vous souhaitez toujours calibrer l'ADC de l'ESP32, reportez-vous au Pilote d'étalonnage de l'ADC ESP32.

Vidéo

Tutoriels connexes

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !