Así que estoy practicando registros de cambio.
Estoy tratando de dibujar una imagen sonriente en el LED 8x8.
Al principio, estaba bien porque configuré el retraso de escaneo en 1 segundo. pero en realidad, esto debe configurarse en un retraso más rápido (más cercano a ningún retraso) para que pueda ver la imagen sonriente de forma permanente.
Así que configuré 10 microsegundos para el retraso, pero cuando ejecuto el programa, la imagen sonriente ya no aparecerá. ¿Es el programa demasiado rápido para que el software Proteus maneje esto?
Por cierto, estoy viendo este tutorial para mi referencia y ambos hicimos lo mismo, excepto que estoy usando otro registro de desplazamiento (HEF4094) con una matriz de transistores (UL2003A). enlace
aquí está mi código:
int dataPin1 = 2;
int dataPin2 = 3;
int clockPin1 = 4;
int clockPin2 = 5;
int latchPin = 8;
int delayTime = 5;
int scan[]={1,2,4,8,16,32,64,128,256};
int smile[]={0,36,36,36,0,66,60,0};
void setup() {
pinMode(dataPin1,OUTPUT);
pinMode(dataPin2,OUTPUT);
pinMode(clockPin1,OUTPUT);
pinMode(clockPin2,OUTPUT);
pinMode(latchPin,OUTPUT);
}
void loop() {
for(int i=0;i<7;i++){
shiftOut(dataPin2,clockPin2,LSBFIRST, scan[i]);
shiftOut(dataPin1,clockPin1,MSBFIRST, smile[i]);
disp();
}
}
void disp(){
digitalWrite(latchPin, HIGH);
delay(delayTime);
digitalWrite(latchPin, LOW);
delay(delayTime);
}