Estoy haciendo una actividad y necesito ayuda. Así que estoy practicando sobre los registros de cambio ... El objetivo que quiero lograr es iluminar uno por uno en secuencia todos los 16 leds.
Pero lo que sucede es que el segundo conjunto de 8 leds conectados al registro de segundo turno está copiando la secuencia del primer conjunto de 8 leds conectados al primer registro de turno.
En otras palabras, el resultado de los primeros 8 leds es también el resultado de los 2dos leds. Se está duplicando. ¿Por qué esto es tan? dado que conecté el QS 'del primer registro a la D del segundo registro de desplazamiento. Estoy confundido. Tal vez un error de Proteus?
De todos modos aquí está mi código
unsigned char sequence[] = {1, 2, 4, 8, 16, 32, 64, 128};
unsigned char sequence2[]= {128, 256, 512, 1024, 2048, 4096, 8192, 16384}; //added
int latchPin = 8; //Pin connected to STR(pin 1) of HEF4094
int clockPin = 12; //Pin connected to CP(pin 3) of HEF4094
int dataPin = 11; //Pin connected to D(pin 2) of HEF4094
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop()
{
for (int i = 0; i < 16; i++)
{ //added
if(i<8){
shiftOut(dataPin, clockPin, MSBFIRST, sequence[i]); //Send the data
digitalWrite(latchPin, HIGH); //Pull latch HIGH to send data
}
else if (i>=8){
shiftOut(dataPin, clockPin, MSBFIRST, sequence2[i]); //Send the data
}
}//added
}
y este mi circuito diseñado.
Cualquier ayuda será apreciada gracias!