Hallo zusammen, hab hier den folgenden code :
int lightPin = 0;
int latchPin = 11;
int clockPin = 9;
int dataPin = 12;
int leds = 0;
int reading;
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
Serial.begin (9600);
}
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}
void loop()
{
reading = analogRead(lightPin);
int numLEDSLit = reading / 57; //1023 / 9 / 2
;
if (numLEDSLit > 8) numLEDSLit = 8;
leds = 0; // no LEDs lit to start
for (int i = 0; i < numLEDSLit; i++)
{
leds = leds + (1 << i); // sets the i'th bit Dazu die frage
Serial.println (leds,BIN);
updateShiftRegister();
}
leds =0
versteh jetzt nicht wieso ich als Ergebnis 11111 raus bekomme. leds = leds + (1 << i); wenn jetzt i = 6 ist, wird die eins um 6 stellen verschoben also 100000. was hat jetzt die variable leds auf sich die ist grade 0. wie es aussieht ist 100000 + 0 = 11111???