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...
Il valore di "j" lo devi calcolare tu.
Devi rifarti alla logica binaria, dove ogni numero nella memoria dei microcontrollori è memorizzato dividendolo in byte e questi ultimi in bit.
Avendo il 595 8 uscite, devi quindi usare 8 bit. 8 bit sono 1 byte. Quindi dichiari "j" di tipo byte.
A questo punto se metti in un bit il valore 0 quel pin sul 595 verrà messo su Low, se metti un bit a 1, quel bit indicherà che il corrispondente pin sul 595 dovrà essere messo su High.
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
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