oplossing looplicht met twee schuifregisters (16 bit)

 

const int patroon[]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768};
const int ds = 2;
const int stclk = 3;
const int shclk = 4;

void setup()
{
  for(int i=2; i<=4;i++) {
      pinMode(i, OUTPUT);
  }
}

void loop()
{
  int aantal=sizeof(patroon)/sizeof(patroon[0]);
  for(int i=0; i<aantal;i++) {
    for(int bit=0;bit<16;bit++) {
      if(bitRead(patroon[i],bit)==1) {
        digitalWrite(ds,1);}
      else {
        digitalWrite(ds,0);}
      // puls op shiftklok
      digitalWrite(shclk,HIGH);
      digitalWrite(shclk,LOW);
    }
    // puls op storage klok
    digitalWrite(stclk,HIGH);
    digitalWrite(stclk,LOW);
    delay(500);
  }
}