problème d'affichage avec Sevseg

Bonsoir à tous,

Je code occasionnellement sur arduino depuis maintenant deux ans pour créer des œuvres interactives. Cela fait un moment que je lis les lignes de ce forum pour me faire la main sur arduino, mais depuis cette semaine, je me retrouve dans un problème insoluble. Alors, j'ai décidé d'ouvrir la porte de ce forum pour trouver un brin d'aide :slight_smile:
J'espère que vous pourrez me guider dans ce problème technique

Alors, voilà, en ce moment je suis amener à créer un générateur de nombre aléatoire que j'affiche sur un afficheur 7 segments (4 nombres et cathode commune). Pour arriver à ce résultat, j'utilise la librairie Sevseg.
Le générateur de nombre aléatoire fonctionne bien et le nombre s'affiche au bon endroit de l'afficheur, à un petit détail prêt : quand j'insert par exemple 1245 ou 4216 j'obtient ce que je vous décrit sur ce schéma. (les bandes rouges sont celles qui s'affiches en plus et les blanches au contour rouge celle qui manque).

Voici aussi la partie du code correspondant à sevseg :

#include "SevSeg.h"                            // Démarrage de la bibliothèque afficheur
SevSeg sevseg;

void setup() {

  // 0 = Boutons
  // 14 et 15 = Boutons
  // 16 et 17 = Eclairage des boutons
  // 13 = Tir des solenoids

  pinMode(0, INPUT);

  pinMode(Boutons, INPUT);                          // déclarer les boutons
 
  int affichage = 0;                                // Nombres de points a 0

  byte numDigits = 4;   
  byte digitPins[] = {8, 11, 12, 7};
  byte segmentPins[] = {9, 13, 5, 3, 2, 10, 6}; 
  
  sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins);

  sevseg.setBrightness(eclairage);                     //parametre d'éclairage;
  

}

J'ai également tester les exemples donnés par sevseg (version 2.0) pour tester l'affichage et le résultat est le même.

Merci pour votre aide !
A bientôt !

afficheur1.png

hello
tu es sur de n'avoir pas inversé les segments A et F

byte segmentPins[] = {9, 13, 5, 3, 2, 10, 6};

as tu testé en faisant :

byte segmentPins[] = {10, 13, 5, 3, 2, 9, 6};

balise code

pour dfgh :
Merci de ta réponse, je viens de vérifier, les pins sont bien en ordre (comme le second digit s'affiche bien, je peux voir que le chiffre se mélange quand je change l'ordre des pins sur arduino)

Le problème pourrait être matériel ?
Comment pourrais-je vérifier si c'est mon afficheur qui est défectueux ?

pour infobarquee :
Désolé du dérangement, je viens de régler le problème de balise

Tu peux tester l'afficheur avec une pile (oou une alimentation) et une résistance et tu fais toutes les combinaisons commun-segments pour vérifier chaque segment de l'afficheur. Tu verras bien si un seul segment s'allume ou plusieurs.
Mais avant de faire ça, fais une inspection visuelle pour t'assurer que tu n'as pas une bavure de soudure ou un fil qui relierait 2 broches de l'afficheur.

Salut fdufnews,

Je viens de vérifier les leds du digit l'une après l'autre et j'ai remarqué que les leds "incriminés" ne s'allument que partiellement. J'opte donc pour un problème lié à mes soudures (qui n'ont pas un look qui respire le savoir-faire :slight_smile:
Je vais donc tenter d'utiliser un autre afficheur pour voir si le problème persiste !

Ou refaire des soudures propres....