Bonjour
Je suis en train de travailler sur un projet qui va utiliser 2 matrices de led bicolor (à anode commune)
Je travail actuellement sur une breadboard pour voir si mon driver fonctionne.
Pour simplifier, pour le moment j'essaye d'en piloter une seule et je la gère juste comme une matrice d'une seule couleur.
Je fais sur "col scanning":
Mon montage est à base de uln2003 et de 74hc595 (pour piloter les lignes et les colonnes)
Les deux 74hc595 partagent la même horloge et la même latch.
Évidement, leur "serial input" n'est pas la même.
Voici un test de code TRES SIMPLE que j'ai fais:
int latchPin = 6;
int clockPin = 7;
int colDataPin = 4;
int rowDataPin = 5;
byte index=B10000000;
void setup() {
Serial.begin(9600);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(colDataPin, OUTPUT);
pinMode(rowDataPin, OUTPUT);
}
void loop() {
digitalWrite(latchPin, 0);
shiftOut(colDataPin, clockPin,MSBFIRST, index);
shiftOut(rowDataPin, clockPin,MSBFIRST, index);
digitalWrite(latchPin, 1);
if(index == B00000001){
index = B10000000;
}else{
index = index >> 1;
}
//Serial.println(index, BIN);
}
Je debugge le tout avec un analyseur logique.
Voici à quoi son branché les pins:
Ch00: clock
Ch01: Serial IN des rangées
Ch02: Sortie QA du 1er registre à décalage
Ch03: Sortie QB du 1er registre à décalage
Ch04: Sortie QC du 1er registre à décalage
Ch05: Sortie QD du 1er registre à décalage
Ch06: Sortie QE du 1er registre à décalage
Ch07: Sortie QF du 1er registre à décalage
Ch08: Serial IN des colonnes
Ch09: Sortie QA du 2eme registre à décalage
Ch10: Sortie QB du 2eme registre à décalage
Ch11: Sortie QC du 2eme registre à décalage
Ch12: Sortie QD du 2eme registre à décalage
Ch13: Sortie QE du 2eme registre à décalage
Ch14: Sortie QF du 2eme registre à décalage
Ch15: Latch pin commune au DEUX registres
Voici le chronogramme:
https://dl.dropboxusercontent.com/u/138037/web/chrono.png
Je ne comprends pas pourquoi celui qui concerne le 2eme registre ne donne pas la même chose que le premier.
Si je change mon code et que je met en commentaire le shiftout des rangées pour ne laisser que celui des colonnes, cette fois ci le 2eme registre donne la bonne chose comme ici:
https://dl.dropboxusercontent.com/u/138037/web/chrono2.png
je ne comprend pas pourquoi le sur le premier, quand les deux shiftout sont ensemble, que les données du 2eme registre a décalage ne sont pas "dealé"
Est ce que quelqu'un est capable de me l'expliquer?
merci beaucoup