Voici de post de blog qui décrit les différentes erreurs à éviter. Oui, en effet, ces choses arrivent. Vous savez ce moment ou “ça ne marche pas” pis, on ne sait pas pourquoi ? est-ce mon code ? mon circuit ? ma carte de développement ? la saison 8 de GOT ?
Allez, parcourons ici certains pièges dans quoi je suis tombé.
LE GPIO 12 de l’ESP32
Il m’est arrivé d’utiliser le GPIO 12 dans mes circuits électroniques. J’y ai branché par exemple un détecteur de mouvement (PIR). Le SH-SR501. Dans ma programmation, la pin 12 est déclarée comme suit
pinMode(GPIO_12, INPUT_PULLUP);
Bon jusqu’à là rien de bien méchant.
Or… il m’est arrivé à plusieurs reprises de ne pas réussir à déployer mon code vers la carte ESP32, avec une erreur lamentable du style USB connection failure, blablabla
le genre d’exception qu’on laisse passer 1 fois ou deux mais qui devient frustrante à la longue, surtout que de temps en temps ça passe. Alors quoi ?
Eh bien, il faut lire la spec de l’ESP32… la GPIO est dédié entre autres pour les opérations VDD_FLASH
. Voir la doc de l’ESP32 Dev Kit v4.
Un GPIO doit se dédier à une unique opération. Pas deux. Dans mon cas, il n’est pas possible de flasher la carte et de déclencher un mouvement en même temps.
Logique hein ? Oui logique… Ne pas utiliser la GPIO 12 lorsque l’on développe son code. En voilà une solution.
Bande de LED qui se comporte bizarrement.
Dans mon récent projet de bande de LED à installer sous le lit, j’ai dû passer par une alimentation externe pour donner plus de puissance a l’allumage de la bande de LED.
Lorsque l’on fait ça, en général, on remplace l’alimentation 3V3 de l’ESP32 par un 5V provenant d’un transformateur. L’effet qui se voit immédiatement est que la bande de DEL allume des pixels aléatoirement ou alors à des intensités non prévues…
La réponse est présente dans le précédent paragraphe. En effet, l’ESP32 fournis 3,3 volts à chaque GPIO. Or maintenant la bande de DEL est alimenté en 5 volts. Ceci a pour effet de brouiller les signaux reçus par l’ESP32 sur le GPIO qui contrôle la bande de DEL.
La solution: utiliser un Convertisseur de niveau logique. L’objectif de cette pièce est d’harmoniser des courants. on branche du 3V3 sur un bord de la carte, du 5V sur l’autre bord de la carte et la magie se produit, le signal est maintenant stabilisé. La data émise sur le GPIO de la bande de LED est convertie de 3V3 en 5V pour opérer la bande de LED puis convertie de 5V en 3V3 pour être lu par l’ESP32.
Résultat, notre bande de DEL ne présente plus les anomalies que l’on constatait.