Fehler beim Lagersystem Code - Komprimieren?

#define ledpin1 11
#define ledpin2 12
#define ledpin3 13
#define ledpin4 14
#define ledpin5 15
#define ledpin6 16
#define ledpin7 17
#define ledpin8 18
#define ledpin9 19
#define ledpin10 20
#define ledpin11 21
#define ledpin12 22
#define ledpin13 23
#define ledpin14 24
#define ledpin15 25
#define ledpin16 26
#define ledpin17 27
#define ledpin18 28
#define ledpin19 29
#define ledpin20 30
#define ledpin21 31
#define ledpin22 32
#define ledpin23 33
#define ledpin24 34
#define ledpin25 35
#define ledpin26 36
#define ledpin27 37
#define ledpin28 38
#define ledpin29 39
#define ledpin30 40
#define ledpin31 41
#define ledpin32 42
#define ledpin33 43
#define ledpin34 44
#define ledpin35 45
#define ledpin36 46
#define ledpin37 47
#define ledpin38 48
#define ledpin39 49
#define ledpin40 50

Diese Informationen gehören in ein Feld, wo Du mittels Index fach die LED ansprechen kannst:

uint16_t fach = lpNummer / produkte;
digitalWrite(ledpins[fach], HIGH);

Felder fangen bei 0 an zu zählen.

Diese Informationen gehören in ein Feld, wo Du mittels Index fach die LED ansprechen kannst:
Felder fangen bei 0 an zu zählen.

Kleine Ergänzung und Klarstellung:

const byte produkte = 23; // Anzahl je Fach
const byte ledpins[40] = {11, 12, 13, 14, .... }; // erlaubt auch "wilde" Zuordnungen

  uint16_t lpNummer;  // 1 .. 920 


  lpNummer = 900; // Beispiel


  uint8_t fach = (lpNummer-1) / produkte;  // 0 .. 39
  digitalWrite(ledpins[fach], HIGH);

Wenn für ledpins gar keine "wilde" Zuordnung gebraucht wird, braucht man auch kein Zuordnungsarray.

// liefert die Pin-Nummer der LED je Fach ( 0 .. 39 ) -> ( 11 .. 50 )
inline byte ledpin(byte fach) {
   return (fach + 11);
}

das kostet keine 40 byte

Schwieriger ist übrigens, die Led auch wieder auszuschalten :wink:

michael_x:
Schwieriger ist übrigens, die Led auch wieder auszuschalten :wink:

Man könnte sich die Led merken die angemacht wurde um diese nach der nächsten Eingabe wieder zu auszumachen,
oder noch einfacher: alle Leds ausschalten, dann die neue Led einschalten.

Richtig :wink:

"Schwieriger" war das falsche Wort:

"Nicht vergessen sollte man ..." wäre besser gewesen.