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.

-
-


Aucun commentaire:

Enregistrer un commentaire