Ciao a tutti
in questi giorni sto facendo test (ma soprattutto ricerche) sul funzionamento di ShiftOut....
La mia idea era di andare a pilotare 6 uscite sfruttando solo 3 digital output di arduino...
Benissimo allora tanto per provare ho inserito un LED per ciascuna delle seguenti uscite:
Qb, Qc, Qd, Qe, Qf, Qg

e avendo letto qui:
http://arduino.cc/en/Reference/shiftOut e avendo chiara la sintassi
shiftOut(dataPin, clockPin, LSBFIRST, j);
non mi è chiaro come e dove ricavo i valori di
j per pilotare in modo corretto le uscite...
se qualcuno potesse farmi chiarezza, perchè tutti gli esempi del web usano cicli for ma io non devo fare un ciclo, a seconda delle necessità devo attivare 0,1,2,3,4,5,6 uscite...
lo stesso mio problema di una volta
allora ceerco di aiutarti
innanzitutto prima di dare il comando shiftOut devi abilitare il latch per poter aprire la ricezione dei dati
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, j);
digitalWrite(latchPin, HIGH);
quella j non è altro che un byte dove in ogni bit lo zero corrisponde a led spento e a 1 led aceso;
se per esempio vuoi accendere tutti i led basterà mettere al posto di j questo: 0b11111111 (in binario), in esa 0xFF, in decimale 255
in quel codce del reference la j non è altro un numero da 0 a 255 che fa accendere in una certa sequenza i led
Altro esempio:
vuoi accendere un led si e uno no allora fai cosi
digitalWrite(latchPin, LOW); //apri trasmissione
shiftOut(dataPin, clockPin, MSBFIRST, 0b10101010); //invia i valori di Qx
digitalWrite(latchPin, HIGH); //chiudi trasmissione e imposta i valori di Qx
spero di non aver detto niente di sbagliato

ciao
