mi son rimesso a far prove con i 595 ma non capisco come si gestiscono in cascata
so mandare high o low solo le uscite del primo (contemporaneamente si accendono led a caso sugli altri 3 595) mi serve che qualcuno mi spieghi come comandare ogni singola uscita
altra cosa, msbfirst e lsbfirst praticamente mi invertono come manda il byte al 595?
//Pin connected to ST_CP of 74HC595
int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;
void setup() {
//set pins to output because they are addressed in the main loop
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, B00000011);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, B00001100);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, B00110000);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, B11000000);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, B00000000);
digitalWrite(latchPin, HIGH);
delay(2000);
}
codice che sto usando e comanda solo il primo 595 della cascata
Intanto partiamo da un presupposto: i pin latch e clock dei 4 chip devi collegarli tutti insieme.
Il pin Q7s del 1° chip va collegato al pin DS del 2° chip; il pin Q7s del 2° chip va collegato al pin DS del 3° chip, il pin Q7s del 3° pin va collegato al pin DS del 4° pin.
Lato codice, metti su Low il pin Latch, poi spedisci i 4 byte e solo dopo riattivi il latch.
MBF e LBF influiscono su come la sequenza di bit viene spedita: quindi con MBF il primo bit ad essere inviato ai chip è il bit più alto (l'8°) del byte di dati, con LBF viene invece spedito il 1°, quello più basso.
Il latch lo devi rendere quando hai spedito i 4 byte.
ok, funziona, ora sto capendo altre cose, in pratica consideravo i led (uscite) da 1 a 32 da destra a sinistra, invece e' il contrario, pure i 595... ora provo a mettere LSBfirst o al limite giro le connessioni data latch e clock, finche' non mi corrisponde da destra a sinistra
(come con la matrix 8x8... righe colonne destra sinistra alto basso dritto storto catodo anodo puffi folletti e chi piu' ne ha ne metta )
se hai un byte 11110000 e lo fai uscire con MSB nel registro entra come 1-1-1-1-0-0-0-0 ma te lo ritroverai come 00001111 proprio perché entra prima l'8° bit, poi il 7° ecc... andando nel 1° bit del registro, poi nel 2° ecc...
reizel:
ok, funziona, ora sto capendo altre cose, in pratica consideravo i led (uscite) da 1 a 32 da destra a sinistra, invece e' il contrario, pure i 595... ora provo a mettere LSBfirst o al limite giro le connessioni data latch e clock, finche' non mi corrisponde da destra a sinistra
Puoi anche ruotare la scheda oppure metterti allo specchio.
ora e' ok, devo mandare i byte con LSBFIRST e finalmente mi capisco, o meglio i led s'accendono come li scrivo finalmente
volevo fare un tix clock e con 5 595 avrei 40 led disponibili
(avevo provato con il charlieplexin ma pur funzionando con molti led accesi la luminosita' andava a zero piu' accensioi non volute, il charlieplexin va bene finche' ti serve 1 led su 20...)
grazie leo
Puoi anche ruotare la scheda oppure metterti allo specchio.
potrei pure riformattarmi il cervello e rimasterizzarlo dritto, cosi' risolvo pure tutte le altre cose
reizel: Puoi anche ruotare la scheda oppure metterti allo specchio.
potrei pure riformattarmi il cervello e rimasterizzarlo dritto, cosi' risolvo pure tutte le altre cose
Se dovesse funzionare, scrivi una Guida. Un domani potrei averne bisogno anche io.
PaoloP:
Se dovesse funzionare, scrivi una Guida. Un domani potrei averne bisogno anche io.
ok, ma io non la scrivo, chiedo a menniti di farla, guida all'autoformattazione del cervello a masterizzazione speculare inversa diremo a menni che puo' usarci per i test se poi ci nomina nella guida