Skip to Content

Correction du brownout de l’ESP32-CAM

Correction du brownout de l’ESP32-CAM

Ce tutoriel vous aidera à résoudre les problèmes de brownout avec votre ESP32-CAM carte. Les symptômes d’un brownout sont un fonctionnement instable de la carte ESP32-CAM avec des réinitialisations aléatoires, dues à une alimentation instable ou insuffisante.

Comme l’ESP32-CAM est un module microcontrôleur intégrant le Wi-Fi et une caméra embarquée, il consomme pas mal d’énergie et les erreurs de brownout ne sont pas rares. L’ESP32 dispose d’un détecteur qui surveille la basse tension et, en cas de détection, réinitialise la carte et affiche le message d’erreur suivant dans le Moniteur Série :

Brownout detector was triggered

Ce tutoriel vous expliquera ce qu’est un brownout, pourquoi il se produit, et comment le corriger avec des solutions matérielles et logicielles.

Qu’est-ce qu’un Brownout ?

Un brownout se produit lorsque la tension d’alimentation descend en dessous du seuil minimum requis par l’ESP32. Dans ce cas, le microcontrôleur active un détecteur de brownout qui le réinitialise pour éviter un dysfonctionnement.

Les symptômes d’un brownout sont la réinitialisation ou le redémarrage de la carte, le message d’erreur « Brownout detector was triggered » ou l’échec de la connexion Wi-Fi ou de l’initialisation de la caméra.

Les brownouts sont généralement causés par une alimentation faible ou instable, des chutes de tension dues à des câbles longs ou des connexions défectueuses, ainsi que par des pics de courant soudains du module caméra ou Wi-Fi.

Exigences d’alimentation de l’ESP32-CAM

L’ESP32-CAM consomme plus d’énergie qu’un ESP32 standard à cause du module caméra. En interne, il fonctionne en 3,3 V mais la carte possède un AMS1117-3.3 régulateur de tension qui accepte une tension d’entrée jusqu’à 15 V et supporte un courant jusqu’à 1A.

Lorsque la caméra et/ou le Wi-Fi sont utilisés, la carte peut consommer jusqu’à 500 mA. Si l’alimentation ne peut fournir ce courant et que la tension chute, un brownout se produit.

Problèmes courants menant aux brownouts

  • Utilisation d’adaptateurs USB-série fournissant moins de 500 mA
  • Alimentation de l’ESP32-CAM via la broche 3,3 V au lieu de la broche 5 V
  • Utilisation de câbles longs ou fins qui introduisent résistance et chutes de tension
  • Alimentation via une breadboard avec des connecteurs de mauvaise qualité
  • Utilisation de batteries externes avec fonction d’arrêt automatique
  • Régulateur de tension AMS1117 défectueux

Solutions

Utiliser une source d’alimentation stable

  • Utiliser un adaptateur secteur régulé 5 V 2 A
  • Alimenter l’ESP32-CAM via la broche 5 V, pas la broche 3,3 V
  • Éviter d’alimenter directement depuis un port USB d’ordinateur sauf si vous utilisez un hub alimenté

Ajouter des condensateurs

Vous pouvez compenser les pics soudains de consommation en ajoutant un condensateur de forte capacité. Connectez un condensateur électrolytique de 470 µF ou plus entre 5 V et GND comme montré ci-dessous. Faites attention à la polarité.

Capacitor to stabilize power supply
Condensateur pour stabiliser l’alimentation

Vous pouvez aussi essayer d’ajouter un condensateur céramique de 0,1 µF pour filtrer les bruits haute fréquence si vous observez des erreurs erratiques, par exemple une connexion Wi-Fi instable.

Améliorer le câblage

Utilisez des câbles courts et épais (par exemple, 22 AWG ou plus) et évitez d’alimenter via des breadboards. Si vous alimentez via une breadboard, doublez les câbles jumper pour assurer une alimentation correcte.

Contourner le régulateur de tension

Si le régulateur AMS1117 sur la carte est défectueux, vous pouvez essayer d’alimenter la carte directement via la broche 3,3 V. Ce n’est généralement pas recommandé mais peut aider dans ce cas. Bien sûr, vous pouvez aussi souder un remplacement pour l’AMS1117 défectueux.

Désactiver le détecteur de brownout dans le logiciel

Vous pouvez désactiver le détecteur de brownout temporairement avec du code pour des tests :

#include "soc/soc.h"             // Access system control
#include "soc/rtc_cntl_reg.h"    // Access RTC control registers

void setup() {
  WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); // Disable brownout detector
  // Other initialization code...
}

Cependant, cela ne résout pas vraiment le problème. Au lieu de l’erreur de brownout, vous risquez alors d’avoir d’autres erreurs erratiques beaucoup plus difficiles à diagnostiquer, comme une connexion Wi-Fi instable, des échecs sporadiques de la caméra, une vidéo bruitée, etc.

Conclusion

En conclusion, les brownouts sont des réinitialisations de l’ESP32-CAM causées par une alimentation instable ou insuffisante. L’ESP32-CAM est plus sensible aux brownouts que d’autres cartes ESP32 à cause du module caméra qui augmente la consommation. La meilleure solution pour éviter les brownouts est d’assurer une alimentation stable d’au moins 1A à 5V.

Si vous débutez avec l’ESP32-CAM, lisez notre Programming the ESP32-CAM tutoriel et si vous avez d’autres questions, n’hésitez pas à les poser dans la section commentaires.

Bon bricolage ; )