Commander 4 chiffres 7segment LED de l'Affichage à l'aide de registre à décalage 74HC595
Je vais avoir des problèmes en essayant d'utiliser deux 595 registres à décalage pour la sortie des numéros à 4 chiffres 7seg d'affichage.
J'ai obtenu au point d'afficher correctement les numéros, mais je suis maintenant la question que la sortie est de clignotant de certains déchets entre les chiffres affichés. Comment puis-je éviter cela?
Je suis sûr que le problème est que comme je suis à l'aide d'octets à envoyer à l'registres il est de verrouillage entre les octets en cours d'affichage.
Voici mon code
int latchPin = 5;
int clockPin = 6;
int dataPin = 4;
int i = 0;
int waitTime = 500;
//digits from the right
byte colDig[4] =
{
B00001000, //digit 1
B00000100, //digit 2
B00000010, //digit 3
B00000001, //digit 4
};
const byte digit[10] = //seven segment digits in bits
{
B11000000, //0
B11111001, //1
B10100100, //2
B10110000, //3
B10011001, //4
B10010010, //5
B10000010, //6
B11111000, //7
B10000000, //8
B10011000, //9
};
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void loop()
{
//step through each digit then increment
//the counter by one, until nine
for(int j = 0;j<9;j++){
updateShiftRegister(0, j);
delay(waitTime);
updateShiftRegister(1, j);
delay(waitTime);
updateShiftRegister(2, j);
delay(waitTime);
updateShiftRegister(3, j);
delay(waitTime);
}
}
void updateShiftRegister(int col, int num)
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, colDig[col]);
shiftOut(dataPin, clockPin, MSBFIRST, digit[num]);
digitalWrite(latchPin, HIGH);
}
- Pouvez-vous montrer à votre schéma de câblage ?
Vous devez vous connecter pour publier un commentaire.
Donc, on dirait que j'étais en quelque sorte de les corriger,
La fonction shiftOut de régler l'horloge pin à bas à la fin de la fonction, obligeant un loquet.
En modifiant légèrement le code sur cette page, j'ai été en mesure d'arrêter cela et ça fonctionne parfaitement maintenant.
http://arduino.cc/en/Tutorial/ShftOut23
Il vous suffit de commenter cette dernière digitalWrite fixe tout.