Problème 7 segments : hardware ou software

Voilà, mon scoreboard est monté: 8 7 segments (ruban de DELs 12V - 3 par segments).
J’ai utilisé des TIP 120 to 220 pour chacun des segments lesquels sont reliés à des 74HC595. Ceux-ci seront connectés à Arduino Mega. Les DELs seront alimentées avec un 12V 5A.

Mais pour l’instant, j’en suis à la période de tests et pour les effectuer, j’utilise une batterie 12V (8 piles 1.5V) pour les DELs et Arduino Uno 5V pour le shift register et les Transistors.

Je teste les 7 segments, un à la fois. Pour l’instant, ils ne sont reliés entre eux que par le ground, lequel est composé d’un ruban de cuivre qui rejoint toutes les pattes ground des TIPs et des 74HC595 ainsi que Arduino et la batterie 12V (à l’aide d’un breadboard).

Le test consiste à faire afficher les chiffres de 0 à 9 avec un programme trouvé sur le net que j’inclus ici.

Et là, je vois qu’il y a 2 problèmes:1) Le segment G de chacun des 7 segments n’allume pas et,
2) Chacun des 7 segments (excepté un qui affiche n’importe quoi) affiche 0 et rien d’autre. Autrement dit, les segments A, B, C, D, E et F s’allument et restent allumés indéfiniment.

J’aimerais que vous regardiez le programme et me dites si le problème est là ou ailleurs.

Merci pour votre aide,

Scoreboard_Quick_Test_without_IR.ino (737 Bytes)

Bonjour,

Seul le dernier nombre (number=63) est affiché (après le setup).
Pour les autres nombres, il n'y a aucun affichage (juste l'affectation).

hello
pour tester, il faut faire

// Scoreboard Quick Test
int dataPin = 2; 
int latchPin = 3;
int clkPin = 4;
int number = 0;

void setup(){
  pinMode(latchPin, OUTPUT);
  pinMode(clkPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin,clkPin,MSBFIRST,number);  
  digitalWrite(latchPin, HIGH);
}

void loop() {
  affichage(6);
  delay(1000);
  affichage(91); 
  delay(1000);
  affichage(79);
  delay(1000);
  affichage(102);
  delay(1000);
  affichage(109); 
  delay(1000);
  affichage(125);
  delay(1000);
  affichage(7);
  delay(1000);
  affichage(127);
  delay(1000);
  affichage(111);
  delay(1000);
  affichage(63);
  delay(1000);
}
void affichage(int number)
{
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin,clkPin,MSBFIRST,number);
  digitalWrite(latchPin, HIGH);
}

Merci beaucoup pour votre aide.

En ce qui concerne les segments G qui n'allument pas, eh bien j'ai trouvé la source du problème. Un court-circuit. Reste à dessouder et ressouder.

A suivre,