Afficher les zéros sur un afficheur 7 segments 4 digits

Bonjour à tous,
Comment afficher les zéros avant les chiffres sur un afficheurs 7 segments 4 digits?
J'utilise la fonction sevseg.
Merci de votre réponse.
Gerard

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

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

En gérant l’affichage à la main.

Je ne connais pas la fonction sevseg(), si c’est une bibliothèque donnez des liens et décrivez aussi votre matériel et montage comme indiqué dans le lien ci dessus

Bonjour

si c'est cette lib qui est utilisée :

Il faut passer à 'true' ce parametre

bool leadingZeros = false; // Use 'true' if you'd like to keep the leading zeros

Merci de vos réponses.
Oui c'est bien cette lib, j'ai bien true au paramètre: leadingZeros et j'ai fait une mise à jour de la lib. Mais toujours le même problème. Le zéros ne s'affiche pas.
Voici mon code:

#include <SevSeg.h> //Libreria inclus

SevSeg sevseg; //Creazione dell'oggetto "sevseg"
int i;
int number;
char data[4];
char *result = malloc(4);

void setup(){
  Serial.begin(9600); // ouvre le port s�rie et fixe le d�bit � 9600 bauds
  
 byte numDigits = 4;     //7segments avec 4 digits
byte digitPins[] = {A0, A1, A2, A3};  //Correspondance 7segments : Digit1 Digit2 Digit3 Digit4
byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; //Correspondance 7segments : A B C D E F DP
bool resistorsOnSegments = false; //'false' => resistances sur les pins digitales
byte hardwareConfig = COMMON_CATHODE; // Utiliser un tube numérique à cathode commune
bool updateWithDelays = false; // Default. Recommended
bool leadingZeros = true; // Mettre 'true' pour afficher les 0 'avant' les chiffres
bool disableDecPoint = false; //Si votre point décimal n'existe pas ou n'est pas associé, veuillez utiliser true
 
  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, leadingZeros, disableDecPoint);//Add parameters
   sevseg.setBrightness(90);
 
   }

 void loop() {
      while(Serial.available()>0){
      Serial.readBytes(data,4)-'0';
     sscanf(data, "%04d", &i);
     
      //sprintf(result, "%04d", i);
      //Serial.println(result);

      }

{
   sevseg.setNumber(i,2);     // Définir les données à afficher,
         sevseg.refreshDisplay();  // Doit être réexécuté pour rafraîchir l'affichage numérique du tube
} 
}

Cordialement
Gerard

Si tu compares le prototype de la fonction et ton apel à begin(), tu verras qu'il manque un arguments ( updateWithDelaysIn ) du coup tout se décale derrière.

begin(uint8_t hardwareConfig, uint8_t numDigitsIn, const uint8_t digitPinsIn[],
          const uint8_t segmentPinsIn[], bool resOnSegmentsIn=0,
          bool updateWithDelaysIn=0, bool leadingZerosIn=0,
		  bool disableDecPoint=0);

Merci de vos reponses.
Cordialement.
Gerard

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