Allumage Led Wemos d1 mini

Bonjour,
je réalise un projet des capteurs de poids avec une esp8266 wemos d1 mini et je veux détecter un seuil de poids pour allumer une led , pour se faire j'ai brancher la led au GPIO5 et aux GND en utilisant une résistance et le problème c'est que la led s'allume jamais même en arrivant a ce seuil
voila la partie du code qui est sensé faire le boulot :
Le code :


//------------------------------------------------------------/
//              Variables globales                            /
//------------------------------------------------------------/
static const uint8_t D1   = 5;

pinMode(D1 , OUTPUT ); // Initialise la broche D1 comme sortie
                                  
//*============================================================*/
static int periode_poids = 0;
int seuil = 57;
void loop() 
{    
  poidsTmoins1=poidsCourant;
  seuilTmoins1=seuilCourant;
  
  reconnect();
  client.loop();

  delay(SBAG_CONFIG.intervalleMesure);                          // délai entre deux mesures de poids 200ms
  LectureBoutons();                     // surveillance boutons tare et calibration    

  //------  mesure poids--------------------    

  poidsCourant = weight.get_units(2);     // lecture poids 




  periode_poids ++;
  if(periode_poids == 5)
  {
    if(poidsCourant > seuil)
    {
      digitalWrite(D1, HIGH); // Met la broche D1 au niveau haut = allume la LED
    }
    else
    {
      digitalWrite(D1, LOW); // Met la broche D1 uu niveau Bas = allume la LED
    }
    periode_poids = 0;
  }

Merci pour votre aide :grinning:

:warning:

Post mis dans la mauvaise section, on parle anglais dans les forums généraux. ➜ déplacé vers le forum francophone.

:warning: La rédaction de votre message ne répond pas aux critères attendus. Il n’aura sans doute pas de réponse tant que vous n’aurez pas pris en compte et mis en application les recommandations listées dans “Les bonnes pratiques du Forum Francophone”

et en plus doublon...

Un code pour Arduino doit contenir a minima deux fonctions : setup() et loop(). Je ne vois pas la première.

Tu dois faire :

//------------------------------------------------------------/
// Variables globales /
//------------------------------------------------------------/
static const uint8_t D1 = 5;

//*============================================================*/
static int periode_poids = 0;
int seuil = 57;

void setup() {
pinMode(D1 , OUTPUT ); // Initialise la broche D1 comme sortie Main
}

La ligne
static int periode_poids = 0;
doit être déplacée dans la loop, je ne vois aucun intérêt à déclarer une variable globale en static.

si si j'ai le setup() et le loop() c'est moi j'ai copier juste la partie qui m’intéresse car le reste du programme est déjà en marche et aucun soucis d'ailleurs même en introduisant cette partie sa marche quand même mais par contre la led ne s'allume pas

OK, pas facile de dire où se trouve l'erreur sans voir le code entier.
Commence pas corriger ton premier message en plaçant les balises CODE (touche </>) autour de ton code STP.

Ta commande d'allumage de la LED se situe dans deux if imbriquées. Pour en savoir plus, il faut que tu affiches les valeurs de periode_poids et poidsCourant pour voir si elles vérifient les tests. Le problème est peut-être juste lié à ça, et nous on ne peut pas le savoir puisqu'on ne peut pas faire tourner le code.

D'accod merci , et alors c'est fait mais du coup c'est quoi la méthode pour pouvoir afficher les valeurs de periode_poids et poidsCourant

J’ai mis les balises de code correctement pour vous pour cette fois ci mais vous n’avez pas posté tout le code…

dsl j'ai pas su le faire je suis nouveau sur le forum

Lisez les recommandations listées dans « Les bonnes pratiques du Forum Francophone”

Dans le setup, tu initialises la communication avec :
Serial.begin(115200);
Puis, tu insères les instructions d'affichage avant le premier if :

Serial.print(periode_poids);
Serial.print('\t');
Serial.println(poidsCourant);

Ca permet d'afficher sur la même ligne les valeurs de periode_poids et poidsCourant, avec une tabulation entre les deux (attention, ça peut aller très vite...)
Après, tu ouvres la console et tu règles la vitesse de communication à 115200 (pas 9600) dans le menu déroulant tout en bas :
image

Ensuite tu uploades ton sketch et tu regardes si tu peux avoir des valeurs qui permettent d'allumer la LED, c'est à dire :

  • periode_poids = 5
  • poidsCourant > seuil (a priori 57)
    Normalement, si tu arrives à avoir ces deux conditions remplies, ta LED devrait s'allumer...
1 Like

D'accord merci beaucoup

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.