Hallo,
ich habe ein programm das 8x das gleiche tut, im moment habe ich 8 if mit fast dem gleichen Code.
Ich zähle mit for von 0 bis 7, jetzt würde ich gerne immer das x aus der for schleife über geben und daraus
dann verschiedene variable generieren, evtl. so wie im Beispiel:
In einem anderen Beispiel hat das jemand mit +variable gemacht, das funzt bei mir aber nicht,
was mach ich falsch?
stepnr = activestep +1 ;
if (currentSwitchState+stepnr == 1) {
AnalogValue+stepnr = analogRead(activestep);
notestepnr = AnalogValue+stepnr/8;
noteOn(0xB0, 0x7B, 0x00);
noteOn(0x90, note+stepnr, 0x7F);
//einstellen wie lange der sound ausklingt
// 81 2B 4D
digitalWrite(LEDpin+stepnr, HIGH);
delayNI(50);
digitalWrite(LEDpin+stepnr, LOW);
delayNI(currentTime);
} else {
delayNI(currentTime);
}
Das was du suchst ist denke ich mal ein Array. Du kannst die Werte dann in array[i+1] speichern.
Um etwas genaues zu sagen wäre der ganze Code Hilfreich damit man sich ein bisschen rein denken kann. Dies ist ja nur der Auszug der 8* gemacht wird
Um etwas genaues zu sagen wäre der ganze Code Hilfreich damit man sich ein bisschen rein denken kann. Dies ist ja nur der Auszug der 8* gemacht wird
Genau !
Und um eine 8-fache Fallunterscheidung zu machen, sind die Switch / Case - Befehle hilfreich
Beispül:
switch (var) {
case 1:
//do something when var equals 1
break;
case 2:
//do something when var equals 2
break;
default:
// if nothing else matches, do the default
// default is optional
}
Du kannst auch eine Funtion schrieben.
ausserhalb
int z=0;
void setup(){
}
void loop(){
MeineFunktion(6); // übergibt eine 6 an deine geschrieben Funktion d.h. der Analogausgang 6 wird mit dem Wert 6 beschreiben und macht 6ms pause
MeineFunktion(250); // übergibt eine 250 an deine Funktion Analogausgang wird mit 250 beschrieben und 250ms gewartet
z=MeineFunktion2(8); // z wird hier dann eine 24 erhalten da du eine 8 übergibt diese dann in der Funtkion mal 3 grechnet wird und dann das ergebniss zureückgegebn wird (du kannst ausserhalb dern MeineFunktion2 nicht auf y zugreifen also nur innerhalb MeineFunktion2(),
}
void MeineFunktion(int x){ // diese Funktion kann nichts zurückgeben in die Main void==leer
analogWrite(6,x);
delay (x);
//Hier kommt dein Code rein der gleich ist und indem Wert X (hier ein integer geht auch long byte also alle Datentypen)
}
int MeineFunktion2(int x){ // diese Funktion gibt eine Intergervariable zurück
int y;
y=x*3;
return y;
}