74HC595 pilotare uscite singolarmente

Buongiorno a tutti, non so se questa sia la sezione giusta, e nemmeno se debba scrivere in italiano o in inglese, comunque mi trovo qui per un problema sul quale non trovo pace. Sostanzialmente io vorrei comandare le uscite di uno shift register (il 74hc595, appunto) singolarmente (ovvero: accendere solo la prima, solo la terza, solo la sesta...). Premetto che per quanto riguarda le connessioni sono a posto, non ho idea di quale sia il codice necessario, o, meglio, visto che sono all'inizio con gli shift register, sapreste fornirmi un codice funzionante o un link serio? Grazie!

Prima di tutto, nella sezione in lingua Inglese si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione ...

... poi, essendo questo il tuo primo post nella sezione Italiana del forum, nel rispetto del regolamento di detta sezione, ti chiedo di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Il tuo post è stato spostato nell'opportuna sezione del forum "Italiano"

ciao luca93,

il seguente sketch attiva in sequenza i pin 1; 1-2; 1-2-3 etc fino ad avere tutti gli 8 pin attivi; questo lo fa il ciclo for settando il bit relativo al valore della variabile "i" e chiamando ad ogni ciclo la funzione di contenete lo shiftOut.

int latchPin = 5;
int clockPin = 6;
int dataPin = 4;

byte leds = 0;

void setup() 
{
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);
}

void loop() 
{
  leds = 0;
  updateShiftRegister();
  delay(500);
  for (int i = 0; i < 8; i++)
  {
    bitSet(leds, i);
    updateShiftRegister();
    delay(500);
  }
}

void updateShiftRegister()
{
   digitalWrite(latchPin, LOW);
   shiftOut(dataPin, clockPin, LSBFIRST, leds);
   digitalWrite(latchPin, HIGH);
}

in pratica a te basterebbe modificare leggermente la funzione updateShiftRegister passandogli quello che vuoi.