samedi 10 octobre 2026

Ajouter 8 entrées analogiques à l'ESP32 CYD

Vous désirez mesurer des signaux analogiques au moyen du module ESP32-2432S028 (Cheap Yellow Diplay)? Le CYD ne comporte que 3 broches GPIO facilement accessibles: GPIO22, GPIO27 et GPIO35:

  • GPIO35 peut être utilisée comme entrée analogique.
  • GPIO27 peut être utilisée comme entrée analogique seulement si le WiFi est inactif.
  • GPIO22 ne peut pas être utilisée comme entrée analogique, n'étant liée à aucun convertisseur analogique-numérique.
Que faire si vous avez besoin d'un plus grand nombre d'entrées analogiques pour, par exemple, brancher plusieurs potentiomètres au CYD?

Dans cet article, nous ajoutons 8 entrées analogiques supplémentaires au CYD, grâce au MCP3008, un convertisseur analogique-numérique à 8 canaux.


Le MCP3008


Le MCP3008 de la compagnie Microchip se présente sous la forme d'un circuit intégré de 16 broches. Il s'agit d'un convertisseur analogique numérique à 8 canaux, présentant une résolution de 10 bits (ce qui signifie que la tension maximale de 3,3 V sera subdivisée en 210 = 1024 valeurs possibles). Vous pouvez donc l'utiliser pour mesurer simultanément jusqu'à 8 tensions analogiques avec une incertitude de l'ordre de 5 mV.

Le circuit

Puisque le MCP3008 communique avec le protocole SPI, j'ai encore une fois utilisé le microSD Sniffer de Sparkfun pour rendre accessibles les broches du lecteur de carte microSD. (J'ai brièvement présenté le microSD Sniffer dans mon récent article traitant du lecteur RFID).



J'ai branché le MCP3008 au CYD de la façon suivante:
  • Les broches 1 à 8 du MCP3008 reçoivent chacune une tension analogique située entre 0 et 3,3 V: potentiomètre, microphone, photorésistance, thermistance, etc.
  • La broche 9 du MCP3008 est branchée à la broche GND du microSD Sniffer
  • La broche 10 du MCP3008 est branchée à la broche CD (GPIO 5) du microSD Sniffer*
  • La broche 11 du MCP3008 est branchée à la broche CMD (GPIO 23) du microSD Sniffer
  • La broche 12 du MCP3008 est branchée à la broche DAT0 (GPIO 19) du microSD Sniffer
  • La broche 13 du MCP3008 est branchée à la broche CLK (GPIO 18) du microSD Sniffer
  • La broche 14 du MCP3008 est branchée à la broche GND du microSD Sniffer
  • La broche 15 du MCP3008 est branchée à la sortie 3,3 V du microSD Sniffer
  • La broche 16 du MCP3008 est branchée à la sortie 3,3 V du microSD Sniffer
* Si vous désirez utiliser le lecteur de carte microSD, il faudra brancher la broche 10  du MCP3008 à une autre broche du CYD (GPIO22 ou GPIO27).


...en n'oubliant pas d'insérer le microSD Sniffer dans le lecteur de carte microSD du CYD.

Installation de la bibliothèque Adafruit MCP3008

Il existe un assez grand nombre de bibliothèques spécialement conçues pour faciliter l'utilisation du MCP3008. J'ai essayé celle d'Adafruit (Adadruit MCP3008) et puisqu'elle a très bien fonctionné, je n'ai pas porté attention aux autres possibilités.


Pour vérifier le bon fonctionnement de votre circuit vous pouvez exécuter l'exemple "simpletest" fourni avec la bibliothèque. 

(Menu Fichier - Exemples - Adafruit MCP3008 - simpletest)


La mesure de chacune des 8 entrées analogiques s'affichent sous forme de tableau dans le moniteur série de l'IDE Arduino.

Exemple de sketch

J'ai produit ce sketch qui présente sur l'écran du CYD 8 jauges présentant la tension sur chacune des 8 entrées analogiques du MCP3008.

-

-

Yves Pelletier

Ces articles pourraient également vous intéresser:


mardi 6 octobre 2026

Module RFID-RC522 et ESP32 CYD

Dans cet article, nous lisons le numéro de série d'une carte ou d'un tag RFID grâce à un module RFID-RC522 branché à un Cheap Yellow Display (ESP32-2432S028).


J'ai déjà eu l'occasion d'explorer le module RFID-RC522 dans le passé, l'ayant utilisé tour à tour avec un Arduino Uno, un Raspberry Pi, un Raspberry Pi Pico, un ESP32 et un ESP8266, un MSP430 Launchpad et un STM32 Nucleo!


Mais l'utilisation d'un tel module avec l'ESP32 CYD présente un défi particulier: puisque le module communique par le protocole SPI, 4 connecteurs sont nécessaires (SCLK, MOSI, MISO et CS). Mais le CYD ne comporte que trois broches GPIO réellement utilisables (22, 27 et 35).

Pour contourner cette difficulté, des petits malins ont eu l'idée d'utiliser un "microSD Sniffer". Ce dispositif a été mis au point par la compagnie américaine Sparkfun afin d'intercepter et analyser les signaux impliqués dans la communication avec une carte microSD.   Des fabricants asiatiques ont copié le concept et vendent un produit identique pour une fraction du prix initial.


Il s'agit d'insérer le sniffer dans le lecteur de carte microSD du CYD pour avoir accès aux broches GPIO 5, 18, 19 et 23. Si votre projet ne nécessite aucune lecture ou écriture d'une carte microSD, vous pouvez faire ce que vous voulez de ces 4 broches: allumer des LEDS, lire des boutons, etc. (vous ne pouvez pas lire un signal analogique, par contre).


Dans notre cas, puisque le module RFID-RC522 utilise le protocole SPI, nous pouvons même continuer d'utiliser la carte microSD (qui sera insérée dans le "microSD Sniffer") à la condition de ne pas utiliser la même broche CS (chip select).

Connexions

Supposons dans un premier temps que notre projet ne nécessite pas l'utilisation d'une carte microSD.



On peut brancher le module RFID-RC522 au microSD Sniffer de cette façon:

  • Broche SDA du RC522 : Broche CD (GPIO 5) du Sniffer
  • Broche SCK du RC522 : Broche CLK (GPIO 18) du Sniffer
  • Broche MOSI du RC522 : Broche CMD (GPIO 23) du Sniffer
  • Broche IRQ du RC522 : Pas branchée
  • Broche GND du RC522 : Broche GND du Sniffer
  • Broche RST du RC522 : Pas branchée
  • Broche 3.3 V du RC522 : Broche VCC du Sniffer

Et le microSD Sniffer, bien entendu, est inséré dans le lecteur de carte microSD du Cheap Yellow Display.

Installation de la bibliothèque RFID_MFRC522v2

J'ai ensuite installé la bibliothèque RFID_MFRC522v2 par GithubCommunity.


La façon la plus rapide de vérifier que tout fonctionne correctement est d'essayer l'exemple "DumpInfo" fourni avec la bibliothèque:

Menu Fichier - Exemples - RFID_MFRC522v2 - DumpInfo


Vous devez simplement vous assurer, à la ligne 43 de l'exemple, de remplacer la broche #10 par la broche #5:    MFRC522DriverPinSimple ss_pin(5);

Si tout va bien, lorsque vous approchez une carte ou un tag RFID du module RC522, les informations de la carte s'affichent dans le moniteur série.

Sketch #1: affichage du numéro de série (UID) de la carte à l'écran du CYD

J'ai écrit le sketch ci-dessous spécialement pour le CYD: lorsque vous approchez un tag RFID du module RC522, le numéro de série de la carte (UID), constitué de 4 octets,  s'affiche sur l'écran du CYD.

-

-

Sketch #2: utilisation simultanée du RC522, de l'écran tactile et d'une carte microSD

Ce deuxième sketch est un prétexte pour vérifier que la présence du module RC522 n'empêche pas l'utilisation d'une carte microSD (insérée dans le sniffer) ni du capteur tactile XPT2046 (puisque tous ces dispositifs communiquent en SPI).

Petite modification aux connections: puisque le broche GPIO #5 est utilisée par le lecteur de carte microSD, elle ne peut pas servir au module RC522. La broche SDA du RC522 sera plutôt connectée au GPIO 27 du CYD (fil jaune du connecteur CN1).


Nous continuons par contre d'utiliser les mêmes broches MOSI, MISO et SCLK, qui seront partagée avec le lecteur de carte microSD.


-

-

Au démarrage, le programme se comporte de la même façon que le précédent: un message demandant de présenter sa carte s'affiche à l'écran du CYD.


Lorsqu'on approche un tag RFID du module RC-522, le numéro de série du tag s'affiche à l'écran, ainsi qu'un bouton intitulé "photo".


Si l'utilisateur touche le bouton "photo", l'écran affiche une image se trouvant sur la carte SD, ainsi qu'un bouton "retour"  qui permet de tout reprendre à partir du début.


Pour que ça fonctionne, vous devez avoir placé une petite image en format jpg intitulée "image.jpg" sur votre carte microSD. L'Image que j'ai utilisée était de 133 pixels de large par 100 pixels de hauteur.

Je ne sais pas exactement dans quel contexte ce programme pourrait s'avérer utile, mais j'ai atteint mon but: j'ai vérifié qu'on peut utiliser le module RC522 (lecture du tag RFID), le capteur tactile (boutons "photo" et "retour") et la carte microSD (lecture d'un fichier jpeg se trouvant sur la carte) dans le même programme!

Yves Pelletier


À lire également:

mercredi 30 septembre 2026

Récepteur radio FM RDA5807M et ESP32 CYD

Dans cet article, je décris l'assemblage d'un récepteur radio FM constitué d'un circuit intégré spécialement conçu à cette fin, le RDA5807M, qui sera piloté par un ESP32-2432S028 CYD (Cheap Yellow Display)­.


Le circuit

Le RDA5807M combine, dans un minuscule circuit intégré, tout ce qui est nécessaire pour capter le signal des stations de radio FM. Il suffit de brancher à sa sortie un casque d'écoute ou des enceintes amplifiées, et de lui envoyer des instruction par i2c au moyen d'un microcontrôleur. Les commerçants chinois l'offrent pour un prix dérisoire sous la forme de minuscules modules carrés d'environ 1,2 cm de côté. Il faut souder des fils séparés d'une distance inférieure à 2 mm, ce qui demande une certaine habileté. 


Quant au Cheap Yellow Display, il combine un microcontrôleur ESP32 et un écran tactile. On pourra donc programmer un script qui permettra à l'utilisateur de modifier la fréquence et le volume en appuyant sur l'écran tactile.

Nous utiliserons le connecteur CN1 du CYD, situé juste à côté du lecteur de cartes microSD, puisqu'il comporte deux des rares broches GPIO disponibles (22 et 27) ainsi qu'une alimentation de 3,3 V.


J'ai branché le module RDA5807M au CYD de la façon suivante:
  • Sortie 3,3 V (fil rouge sur la photo): connecteur #5 du RDA5807M.
  • Broche GPIO 27 (fil jaune sur la photo): sera désignée comme broche SDA: connecteur #1 du RDA5807M.
  • Broche GPIO 22 (fil bleu sur la photo): sera désignée comme broche SCL: connecteur #2 du RDA5807M.
  • Broche GND: connecteur #6 du RDA5807M.
Un casque d'écoute est branché aux sorties audio (#7 et #8) du RDA5807M. J'ai ajouté à chaque sortie un condensateur de 100 µF et une résistance de 100 Ω. 

Installation des bibliothèques dans l'IDE Arduino

Pour la communication entre l'ESP32 et le RDA5807M, j'ai utilisé la bibliothèque Radio de Matthias Hertel, qui peut évidemment être installée à partir du gestionnaire de bibliothèques de l'IDE Arduino.

Comme d'habitude avec le CYD, j'ai utilisé la bibliothèque TFT_eSPI de Bodmer pour la gestion de l'affichage à l'écran, et  la bibliothèque NPT2046_Bitbang_Slim pour la gestion du capteur tactile.




Un premier test

La façon la plus efficace de vérifier le bon fonctionnement du module est d'utiliser l'exemple intitulé "TestRDA5807M" qui est distribué avec la bibliothèque Radio.

(Menu Fichier - Exemples - Radio - TestRED5807M)



Il faut toutefois effectuer une modification au sketch: puisque la broche GPIO 27 de l'ESP32 n'est généralement pas utilisée pour la communication i2c, il faut indiquer dans notre programme que la communication i2c s'effectuera par les broches 27 (SDA) et 22 (SCL).

J'ai donc ajouté l'instruction "Wire.begin(27,22);" à l'intérieur du setup(), avant les premiers appels à la bibliothèque Radio.


Il faut également modifier la valeur numérique de la fréquence indiquée à la ligne 45: choisissez la fréquence d'une station FM locale que vous pouvez capter.


Si tout va bien, lorsque vous exécutez ce sketch, vous pouvez entendre l'émission diffuée par la station choisie.


Mon sketch 



Vous pouvez voir ci-dessous un sketch que j'ai réalisé spécialement pour le CYD: il permet de changer de station et de modifier le volume grâce à des boutons sur l'écran tactile.

-
-