ShiftOut vs. digitalWrite

Hallo Serenifly,

danke - das erklärt, warum nur die ersten beiden LED leuchten. Und shiftOut kann nur 8 LED, muss also verdoppelt werden (bzw. die Anzahl der LED auf 8 begrenzt). Aber wie bekomme ich die Zustände aus dem Array in leuchtende/nicht leuchtende LED übersetzt?

Ich lasse mir die so ermitteln

RawValue = analogRead(potIn); //Auslesen Poti - Eingang
int LEDlevel = map (RawValue, 0, EndWert, 0, ledCount); //Mapping Rohwert auf LEDs
  int ledArray[ledCount] = {}; // Array für die LED-Zustände
  //Wenn der Index des Array kleiner ist als das dem Rohwert entsprechende Led-Level, dann setze Wert auf 1, sonst 0:
  for (int aktLED = 0; aktLED < ledCount; aktLED++) {
    if (aktLED < LEDlevel) {
      ledArray[aktLED] = 1;
    }
    else {
      ledArray[aktLED] = 0;
    }
  }

Dann hab ich nun versucht, die ohne die Schleife zu übergeben:

digitalWrite(speicherPin, LOW); 
shiftOut(datenPin, taktPin, MSBFIRST, ledArray);
digitalWrite(speicherPin, HIGH);
delay(200);

Nun leuchten irgendwelche LED, unabhängig vom Rohwert am analogen Eingang.

Irgendwo hängts - aber wo?

Lutz