Dans ce guide de démarrage, vous apprendrez à lire les entrées numériques comme un interrupteur à bouton et à contrôler les sorties numériques comme une LED à l’aide de l’ESP32 avec Arduino IDE.
Conditions préalables
Nous allons programmer l’ESP32 à l’aide de l’IDE Arduino. Assurez-vous donc que le module complémentaire des cartes ESP32 est installé avant de continuer :
Sorties numériques de contrôle ESP32
Tout d’abord, vous devez définir le GPIO que vous souhaitez contrôler en tant que SORTIR. Utilisez le PinMode() fonctionnent comme suit :
pinMode(GPIO, OUTPUT);
Pour contrôler une sortie numérique, il vous suffit d’utiliser le digitalWrite() fonction, qui accepte comme arguments, le GPIO (numéro int) auquel vous faites référence, et l’état, soit HAUT ou MEUGLER.
digitalWrite(GPIO, STATE);
Tous les GPIO peuvent être utilisés comme sorties sauf les GPIO 6 à 11 (connectés au flash SPI intégré) et les GPIO 34, 35, 36 et 39 (entrée uniquement GPIO) ;
En savoir plus sur les GPIO ESP32 : Guide de référence ESP32 GPIO
ESP32 lire les entrées numériques
Tout d’abord, définissez le GPIO que vous souhaitez lire comme SAISIRen utilisant le PinMode() fonctionnent comme suit :
pinMode(GPIO, INPUT);
Pour lire une entrée numérique, comme un bouton, vous utilisez le lecturenumérique() fonction, qui accepte comme argument, le GPIO (numéro int) auquel vous faites référence.
digitalRead(GPIO);
Tous les GPIO ESP32 peuvent être utilisés comme entrées, à l’exception des GPIO 6 à 11 (connectés au flash SPI intégré).
En savoir plus sur les GPIO ESP32 : Guide de référence ESP32 GPIO
Exemple de projet
Pour vous montrer comment utiliser les entrées et les sorties numériques, nous allons créer un exemple de projet simple avec un bouton-poussoir et une LED. Nous allons lire l’état du bouton-poussoir et allumer la LED en conséquence, comme illustré dans la figure suivante.
Diagramme schématique
Avant de procéder, vous devez assembler un circuit avec une LED et un bouton-poussoir. Nous connecterons la LED à GPIO 5 et le bouton poussoir pour GPIO 4.
Pièces requises
Voici une liste des pièces dont vous avez besoin pour construire le circuit :
Vous pouvez utiliser les liens précédents ou accéder directement à MakerAdvisor.com/tools pour trouver toutes les pièces pour vos projets au meilleur prix !
Code
Copiez le code suivant dans votre IDE Arduino.
// Complete Instructions: https://Raspberryme.com/esp32-digital-inputs-outputs-arduino/
// set pin numbers
const int buttonPin = 4; // the number of the pushbutton pin
const int ledPin = 5; // the number of the LED pin
// variable for storing the pushbutton status
int buttonState = 0;
void setup() {
Serial.begin(115200);
// initialize the pushbutton pin as an input
pinMode(buttonPin, INPUT);
// initialize the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// read the state of the pushbutton value
buttonState = digitalRead(buttonPin);
Serial.println(buttonState);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH
if (buttonState == HIGH) {
// turn LED on
digitalWrite(ledPin, HIGH);
} else {
// turn LED off
digitalWrite(ledPin, LOW);
}
}
Comment fonctionne le code
Dans les deux lignes suivantes, vous créez des variables pour attribuer des broches :
const int buttonPin = 4;
const int ledPin = 5;
Le bouton est connecté à GPIO 4 et la LED est connectée à GPIO 5. Lors de l’utilisation de l’IDE Arduino avec l’ESP32, 4 correspond à GPIO 4 et 5 correspond à GPIO 5.
Ensuite, vous créez une variable pour contenir l’état du bouton. Par défaut, c’est 0 (non pressé).
int buttonState = 0;
Dans le mettre en place()vous initialisez le bouton en tant que SAISIRet la LED en tant que SORTIR. Pour cela, vous utilisez le PinMode() fonction qui accepte la broche à laquelle vous faites référence et le mode : SAISIR ou SORTIR.
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Dans le boucler() est l’endroit où vous lisez l’état du bouton et réglez la LED en conséquence.
Dans la ligne suivante, vous lisez l’état du bouton et l’enregistrez dans le état du bouton variable. Comme nous l’avons vu précédemment, vous utilisez le lecturenumérique() une fonction.
buttonState = digitalRead(buttonPin);
L’instruction if suivante vérifie si l’état du bouton est HAUT. Si c’est le cas, il allume la LED à l’aide du digitalWrite() fonction qui accepte comme argument LEDPinet l’état HAUT.
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}
Si l’état du bouton n’est pas HAUT, vous éteignez la LED. Juste réglé MEUGLER comme deuxième argument dans le digitalWrite() une fonction.
else {
digitalWrite(ledPin, LOW);
}
Télécharger le code
Avant de cliquer sur le bouton de téléchargement, accédez à Outils > Conseil, et sélectionnez la carte que vous utilisez. Dans mon cas, c’est le Carte DOIT ESP32 DEVKIT V1.
Aller à Outils > Port et sélectionnez le port COM auquel l’ESP32 est connecté. Ensuite, appuyez sur le bouton de téléchargement et attendez le « Téléchargement terminé » message.
Si vous voyez beaucoup de points (…__…__) sur la fenêtre de débogage et le message « Échec de la connexion à ESP32 : Expiration du délai d’attente de l’en-tête de paquet », cela signifie que vous devez appuyer sur le bouton BOOT embarqué ESP32 après le des points commencent à apparaître.
Manifestation
Après avoir téléchargé le code, testez votre circuit. Votre LED doit s’allumer lorsque vous appuyez sur le bouton poussoir :
Et éteignez-le lorsque vous le relâchez :
Emballer
Avec ce guide de démarrage, vous avez appris à lire les entrées numériques et à contrôler les sorties numériques avec l’ESP32 à l’aide de l’IDE Arduino.
Si vous souhaitez apprendre à lire les entrées analogiques ou à émettre des signaux PWM, lisez les guides suivants :
Vous pouvez également trouver utile de consulter la référence GPIO ESP32 qui montre comment utiliser les GPIO ESP32 et ses fonctions.
Enfin, si vous souhaitez en savoir plus sur l’ESP32, jetez un œil à nos ressources :