bonjour tout le monde,
je suis novice avec arduino et je bute sur un truc.
je souhaite faire un compteur avec 4 digits.
le câblage est bon mais lors de l’exécution du code les 4 digits restent allumés.
je vois que cela incrémente bien mais les chiffres se voient à peine.
je m’explique : les chiffres s’allume complètement, on voit un 8 avec point décimal.
lors du comptage le chiffre change mais je vois toujours le 8 affiché. un faible scintillement apparaît.
j’ai essayé de changer la valeur de " setBrightness " mais cela change rien .
quelqu’un pourrait me donner une idée ???
voici mon code :slight_smile:
#include “SevSeg.h”
SevSeg sevseg;
int pinA = 9;
int pinB = 8;
int pinC = 7;
int pinD = 6;
int pinE = 5;
int pinF = 4;
int pinG = 3;
int pinDP = 2;
int DIG1 = 13;
int DIG2 = 12;
int DIG3 = 11;
int DIG4 = 10;
void setup()
{
byte numDigits = 4; // Nombre de digits
byte digitPins[] = {13,12,11,10}; // digit de 1 a 4
byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Branchements des Pins
sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins);
sevseg.setBrightness(20);
pinMode(DIG1, OUTPUT); // pin 13
pinMode(DIG2, OUTPUT); // pin 12
pinMode(DIG3, OUTPUT); // pin 11
pinMode(DIG4, OUTPUT); // pin 10
pinMode(pinA, OUTPUT); // pin 9
pinMode(pinB, OUTPUT); // pin 8
pinMode(pinC, OUTPUT); // pin 7
pinMode(pinD, OUTPUT); // pin 6
pinMode(pinE, OUTPUT); // pin 5
pinMode(pinF, OUTPUT); // pin 4
pinMode(pinG, OUTPUT); // pin 3
pinMode(pinDP, OUTPUT); // pin 2
}
void loop()
{
// digitalWrite(DIG1, 0);
// digitalWrite(DIG2, 0);
// digitalWrite(DIG3, 0);
// digitalWrite(DIG4, 0);
static unsigned long timer = millis();
static int deciSeconds = 0;
if (millis() >= timer) {
deciSeconds++; // 100 milliSeconds = 1 seconde
timer += 100;
if (deciSeconds == 10000) { // Reset apres 1000 seconds
deciSeconds=0;
}
sevseg.setNumber(deciSeconds, 1);
}
sevseg.refreshDisplay();
}