Estuve revisando el diagrama y creo que está mal. ¿No?
Me parece que el pin 13 y el 14 están mal.
Deja hago una simulación y te comento, pero creo que va por ahí.
A ver si no me equivoco, porque se complica XD
Mira este vídeo que hice para que veas como funciona el 595
Prueba esto:
En proteus se obvian el pin 8 y 16, que son la alimentación, pero los conectas OBVIO.
Me parece que el pin 13 y el 14 están mal.
Deja hago una simulación y te comento, pero creo que va por ahí.
A ver si no me equivoco, porque se complica XD
Mira este vídeo que hice para que veas como funciona el 595
Código:
byte RelayDatos = 2;
byte RelayReset = 3;
byte RelayReloj = 4;
byte RelayOE=5;
byte Shift595 = 0b11011110;
void setup()
{
pinMode(RelayDatos, OUTPUT); //Se configuran los tres pines del
pinMode(RelayReset, OUTPUT); //74HC595 como salidas
pinMode(RelayReloj, OUTPUT);
pinMode(RelayOE, OUTPUT);
digitalWrite(RelayReset,1);
}
void loop()
{
Relay595(Shift595); //manda al primer 595
Relay595(Shift595); //manda al segundo 595
digitalWrite(RelayReloj,0); //Se hace un flanco de subida para
digitalWrite(RelayReloj,1); //enviar el Ultimo dato
delay(2000); //pausa
Resetea(); // resetea
delay(2000); //pausa
}
void Resetea()
{
digitalWrite(RelayReset,0);
digitalWrite(RelayReloj,0);
digitalWrite(RelayReloj,1);
digitalWrite(RelayReset,1);
}
void Relay595(byte A)
{
digitalWrite(RelayOE, 1); //Desactiva el 74HC595
digitalWrite(RelayReloj,LOW); //Flanco de subida
shiftOut(RelayDatos, RelayReloj, LSBFIRST, A); //Entran los
digitalWrite(RelayOE, 0); //Ahora activa el 74HC595
}
En proteus se obvian el pin 8 y 16, que son la alimentación, pero los conectas OBVIO.
Última edición por un moderador: