agmue
March 23, 2018, 12:37pm
21
#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
michael_x:
Schwieriger ist übrigens, die Led auch wieder auszuschalten
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
"Schwieriger" war das falsche Wort:
"Nicht vergessen sollte man ..." wäre besser gewesen.