.. note::
Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l'univers des Raspberry Pi, Arduino et ESP32 avec d'autres passionnés.
**Pourquoi rejoindre ?**
- **Support d'experts** : Résolvez les problèmes après-vente et les défis techniques avec l'aide de notre communauté et de notre équipe.
- **Apprendre et partager** : Échangez des astuces et des tutoriels pour améliorer vos compétences.
- **Aperçus exclusifs** : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.
- **Réductions spéciales** : Profitez de réductions exclusives sur nos produits les plus récents.
- **Promotions festives et cadeaux** : Participez à des cadeaux et des promotions de vacances.
👉 Prêt à explorer et à créer avec nous ? Cliquez [|link_sf_facebook|] et rejoignez-nous aujourd'hui !
.. _2.1.7_js:
2.1.7 Potentiomètre
======================
.. note::
.. image:: ../img/mcp3008_and_adc0834.jpg
:width: 25%
:align: left
Selon la version de votre kit, identifiez si vous disposez d’un **ADC0834** ou d’un **MCP3008** et suivez la section correspondante.
Introduction
---------------
La fonction ADC peut être utilisée pour convertir des signaux analogiques en signaux numériques,
et dans cette expérience, nous utilisons l'ADC0834 pour obtenir cette fonction impliquant l'ADC.
Ici, nous implémentons ce processus en utilisant un potentiomètre. Le potentiomètre modifie la
quantité physique - la tension, qui est convertie par la fonction ADC.
Composants nécessaires
----------------------
Dans ce projet, nous avons besoin des composants suivants.
.. image:: ../img/list_2.1.4_potentiometer.png
Il est certainement pratique d'acheter un kit complet, voici le lien :
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Nom
- ARTICLES DANS CE KIT
- LIEN
* - Kit Raphael
- 337
- |link_Raphael_kit|
Vous pouvez également les acheter séparément en utilisant les liens ci-dessous.
.. list-table::
:widths: 30 20
:header-rows: 1
* - INTRODUCTION DES COMPOSANTS
- LIEN D'ACHAT
* - :ref:`cpn_gpio_extension_board`
- |link_gpio_board_buy|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_resistor`
- |link_resistor_buy|
* - :ref:`cpn_led`
- |link_led_buy|
* - :ref:`cpn_potentiometer`
- |link_potentiometer_buy|
* - :ref:`cpn_adc0834`
- \-
Schéma de câblage
-------------------
.. image:: ../img/image311.png
.. image:: ../img/image312.png
Procédures expérimentales
----------------------------
**Étape 1 :** Construire le circuit.
.. image:: ../img/image180.png
.. note::
Veuillez placer la puce en vous référant à la position correspondante décrite dans l'image.
Notez que les encoches sur la puce doivent être à gauche lorsqu'elle est placée.
**Étape 2 :** Aller dans le dossier du code.
.. raw:: html
.. code-block::
cd ~/raphael-kit/nodejs/
**Étape 3 :** Exécuter le code.
.. raw:: html
.. code-block::
sudo node potentionmeter.js
Après l'exécution du code, tournez le bouton du potentiomètre, l'intensité de la LED
changera en conséquence.
**Code**
.. code-block:: js
const Gpio = require('pigpio').Gpio;
const ADC0834 = require('./adc0834.js').ADC0834;
const adc = new ADC0834(17, 18, 27);
const led = new Gpio(22, {mode: Gpio.OUTPUT});
setInterval(() => {
adc.read(0).then((value) => {
console.log(`Current analogVal: ${value}\n`);
led.pwmWrite(value);
}, (error)=>{
console.log("Error: " + error);
});
}, 100);
**Explication du code**
.. code-block:: js
const Gpio = require('pigpio').Gpio;
Importer le module ``pigpio``.
.. code-block:: js
const ADC0834 = require('./adc0834.js').ADC0834;
Nous importons un constructeur ``ADC0834`` pour utiliser le module adc0834.
.. code-block:: js
const adc = new ADC0834(17, 18, 27);
Instancier un objet ADC0834, les trois paramètres sont ses trois broches.
Ceci est un objet de promesse, vous devrez peut-être comprendre le concept à partir du lien suivant.
* `Promise `_
.. code-block:: js
setInterval(() => {
adc.read(0).then((value) => {
console.log(`Current analogVal: ${value}\n`);
led.pwmWrite(value);
}, (error)=>{
console.log("Error: " + error);
});
}, 100);
La valeur du canal 0 de l'ADC0834 (le canal 0 est connecté au potentiomètre) est lue toutes les 100ms, et la valeur sera stockée dans ``value``.
Afficher ``value`` et l'utiliser pour contrôler la luminosité de la LED. Vous pouvez maintenant voir que la luminosité de la LED change en fonction de la valeur du potentiomètre.
Photo du phénomène
------------------
.. image:: ../img/image181.jpeg